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

本文回顾了SQL的基本语法,包括数据库创建与使用、表的创建、修改与删除,以及数据的插入、更新和删除操作。重点介绍了查询语句,如DISTINCT和LIMIT的使用,并详细讲解了数据库的备份与还原方法。对于数据库管理员和开发者来说,这些是日常工作中必备的基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

    直接复制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值