MySQL 数据库操作指南

一、数据库操作

1. 查看数据库

1
2
3
4
5
-- 查看所有数据库
SHOW DATABASES;

-- 查看指定数据库
SHOW CREATE DATABASE 数据库名;

2. 创建数据库

1
2
3
4
5
-- 默认创建数据库
CREATE DATABASE 数据库名;

-- 创建数据库时指定字符集和排序规则
CREATE DATABASE 数据库名 DEFAULT CHARSET 字符集 COLLATE 排序规则;

常用字符集与排序规则组合:

  • utf8 字符集 + utf8_general_ci 排序规则
  • gbk 字符集 + gbk_chinese_ci 排序规则

3. 修改数据库

1
2
-- 修改指定数据库的字符集和排序规则
ALTER DATABASE 数据库名 CHARACTER SET 字符集 COLLATE 排序规则;

4. 删除数据库

1
DROP DATABASE 数据库名;

二、数据表操作

1. 查看表

1
2
3
4
5
6
7
8
-- 查看所有表
SHOW TABLES;

-- 查看表结构
DESC 表名;

-- 查看表的创建语法
SHOW CREATE TABLE 表名;

2. 创建表

1
2
3
4
5
CREATE TABLE 表名(
字段名1 数据类型 约束,
字段名2 数据类型 约束,
...
);

常用数据类型:

  • 数值类型: INT
  • 字符串类型: CHAR, VARCHAR, SET, ENUM
  • 时间类型: DATE

常用约束:

  • PRIMARY KEY:主键
  • FOREIGN KEY:外键
  • UNIQUE:唯一约束
  • NOT NULL:非空约束
  • DEFAULT:默认值
  • AUTO_INCREMENT:自增长

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-- 主表
CREATE TABLE user(
id INT(8) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(10) UNIQUE,
sex CHAR(2) DEFAULT '男',
csrq DATE NOT NULL
);

-- 从表
CREATE TABLE student(
stu_id CHAR(8) PRIMARY KEY,
stu_name VARCHAR(10),
id INT(8),
FOREIGN KEY(id) REFERENCES user(id)
);

3. 修改表(ALTER)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
-- 1. 改表名
ALTER TABLE 旧表名 RENAME 新表名;

-- 2. 改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型;

-- 3. 改字段名
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;

-- 4. 添加字段
ALTER TABLE 表名 ADD 新字段名 新数据类型;

-- 5. 删除字段
ALTER TABLE 表名 DROP 字段名;

-- 6. 修改字段位置
ALTER TABLE 表名 MODIFY 字段名1 数据类型 FIRST;
ALTER TABLE 表名 MODIFY 字段名1 数据类型 AFTER 字段名2;

-- 7. 约束操作
-- 主键
ALTER TABLE 表名 ADD PRIMARY KEY(字段名);
ALTER TABLE 表名 DROP PRIMARY KEY;

-- 外键
ALTER TABLE 表名 ADD CONSTRAINT 外键约束名 FOREIGN KEY(外键字段) REFERENCES 关联表名(关联字段);
ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名;

-- 唯一约束
ALTER TABLE 表名 ADD CONSTRAINT 唯一约束名 UNIQUE(字段名);
ALTER TABLE 表名 DROP INDEX 唯一约束名;

4. 删除表

1
DROP TABLE 表名;

三、表数据操作

1. 插入数据

1
INSERT INTO 表名 (字段列表) VALUES (值列表);

2. 修改数据

1
UPDATE 表名 SET 字段名1 =1, 字段名2 =2... WHERE 条件;

3. 删除数据

1
DELETE FROM 表名 WHERE 条件;

4. 查看数据

1
2
3
4
5
SELECT 查询字段列表, 聚集函数
FROM 表名
WHERE 条件
GROUP BY 字段名 HAVING 条件
ORDER BY 字段名;

WHERE 条件语法

语法 说明 示例
> < >= <= != = 比较运算符 age > 18
IN 匹配值列表 字段名 IN (值1, 值2)
BETWEEN AND 区间查询 字段名 BETWEEN 值1 AND 值2
LIKE 模糊查询 字段名 LIKE '_值%' (_:单字符,%:多字符)
IS NULL 空值查询 字段名 IS NULL
AND 逻辑与 条件1 AND 条件2
OR 逻辑或 条件1 OR 条件2
DISTINCT 去重查询 SELECT DISTINCT 字段名
LIMIT 限制结果数量 LIMIT 位置偏移量, 行数

聚集函数

函数 说明 示例
AVG() 求平均值 AVG(字段名)
COUNT() 求数据条数 COUNT(字段名)
MAX() 求最大值 MAX(字段名)
MIN() 求最小值 MIN(字段名)
SUM() 求和 SUM(字段名)

其他功能

1
2
3
4
5
-- 排序
ORDER BY 字段名 [ASC|DESC] -- ASC升序(默认),DESC降序

-- 分组
GROUP BY 字段名 HAVING 条件 -- 先分组,再用HAVING筛选分组结果