IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> [数据库] MySQL基本操作(增、删、查、改)以及数据库的备份还原操作 -> 正文阅读

[大数据][数据库] MySQL基本操作(增、删、查、改)以及数据库的备份还原操作

背景:本科的时候学过数据库这门课,奈何学了之后没用过,两三年过去了,只知道数据库的基本概念,具体的指令操作早已忘光,所以整理了一些基础知识,回顾一下,也希望能帮到有需要的人

SQL基本语法

一、基础

SQL语句不区分大小写,但是数据库表名、列名和值是否区分依赖于具体的DBMS以及配置

SQL支持三种注释:

# 注释
SELECT *
FROM mytable; -- 注释
/*注释1
  注释2*/

数据库的创建与使用:

CREATE DATABASE test;
USE test;

二、创建表

CREATE TABLE mytable (
  # int 类型,不为空,自增
  id INT NOT NULL AUTO_INCREMENT,
  # int 类型,不可为空,默认值为 1,不为空
  col1 INT NOT NULL DEFAULT 1,
  # 变长字符串类型,最长为 45 个字符,可以为空
  col2 VARCHAR(45) NULL,
  # 日期类型,可为空
  col3 DATE NULL
  # 设置主键为 id
  PRIMARY KEY ('id'));

三、修改表

1、添加列

ALTER TABLE mytable
ADD col CHAR(20);

2、删除列

ALTER TABLE mytable
DROP COLUMN col;

3、删除表

DROP TABLE mytable;

四、插入

1、普通插入

INSERT INTO mytable(col1, col2)
VALUES(val1, val2);

2、插入检索出来的数据

INSERT INTO mytable1(col1, col2)
SELECT col1, col2
FROM mytable2

3、将一个表的内容插入到一个新表

CREATE TABLE newtable AS
SELECT * FROM mytable;

五、更新

UPDATE mytable
SET col = val
WHERE id = 1;

六、删除

DELETE FROM mytable
WHERE id = 1;

清空表,也就是删除所有行

TRUNCATE TABLE mytable;

使用更新和删除操作时一定要用WHERE子句,不然会把整张表的数据都破坏。可以先用SELECT语句进行测试,防止错误删除

七、查询

DISTINCT,相同值只会出现一次,它作用于所有列,也就是所有列的值都相同才算相同

SELECT DISTINCT col1, col2
FROM mytable;

LIMIT,限制返回的行数。可以有两个参数,第一个参数为起始行,从 0 开始;第二个参数为返回的总行数

返回前5行

SELECT *
FROM mytable
LIMIT 5;
SELECT *
FROM mytable
LIMIT 0, 5;

返回3-5行

SELECT *
FROM mytable
LIMIT 2, 3;

八、备份数据库(比如test)

1、常用sql语句

mysql -u username -p password;-- 输入用户名和密码登录mysql
show databases;-- 查看mysql服务器中的数据库情况(会罗列出mysql中所有数据库信息)
use databases;-- 选择使用默认数据库
show table;--查看默认数据库中的表情况

2、备份整个数据库

直接进入后台,MySQL默认目录/var/lib/mysql

输入命令

mysqldump -u username -p test > /home/bak/2021-09-01/test.sql 
  • 参数解析

    username:用户名

    test:要备份的数据库的名字,上面表示备份整个test数据库

    test.sql:表示将数据库备份到指定的这个文件中,文件名前面可添加绝对路径

此时,已经成功将数据库test备份到/home/bak/2021-09-01目录下的test.sql中

3、备份数据库中的指定表

-- table1 table2参数表示需要备份的数据库表的名称,为空则表示需要备份整个数据库
mysqldump -u username -p test table1 table2 > /home/bak/2021-09-01/test.sql 

4、备份多个数据库

mysqldump -u username -p --databases test1 test2 > /home/bak/2021-09-01/test.sql

–databases用于指定多个数据库

5、备份所有数据库

mysqldump -u username -p --all-databases > /home/bak/2021-09-01/test.sql

–all-databases用于指定备份所有数据库

6、直接赋值整个数据库项目

MySQL有一种非常简单的备份方法,就是将MySQL中的数据库文件直接复制出来。这是最简单,速度最快的方法

在此之前要停止服务,确保在复制期间数据库的数据不会发生变化

九、还原数据库(比如test)

首先将原表old_test删除

SELECT * FROM old_test;--查询old_test数据库,会显示数据库内容
DELETE FROM old_test;--删除原来的数据库,如果不存在老的数据库,则不需要删除操作
SELECT * FROM old_test;--提示数据库为空

然后还原新数据库

  • 方法1

    mysql -u username -p test < /home/bak/2021-09-01/test.sql
    

    然后输入密码

    还原到备份数据

  • 方法2

    先登录mysql数据库,输入命令

    mysql -u username -p 密码
    

    再使用数据库test

    use test;
    

    导入备份文件

    source /home/bak/2021-09-01/test.sql;
    

    还原到备份数据

  • 方法3

    直接复制

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:36:52  更:2021-09-04 17:38:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:06:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码