一、数据库操作
1.1 创建数据库
# 如果不存在MY_NAME数据库,则创建,否则不创建
CREATE DATABASE IF NOT EXISTS MY_NAME;
1.2 删除数据库
DROP DATABASE IF EXISTS MY_NAME;
1.3 输出当前数据库名称
SELECT DATABASE();
二、数据表操作
2.1 创建数据表
CREATE TABLE table_name
(
id INT NOT NULL,
age INT NOT NULL,
first VARCHAR(255),
last VARCHAR(255),
col_name 数据类型,
PRIMARY KEY ( id )
);
- 数据类型
2.2 删除数据表
DROP TABLE table_name;
2.3 查询数据表的结构信息
DESC table_name;
2.4 数据库中有哪些表
SHOW DATABASES;
2.5 修改表属性
2.5.1 添加一列
ALTER TABLE table_name ADD col_name 数据类型;
2.5.2 修改某列数据类型
ALTER TABLE table_name MODIFY col_name new_数据类型;
2.5.3 修改某列名字和数据类型
ALTER TABLE table_name CHANGE col_name new_col_name new_数据类型;
2.5.4 删除某列
ALTER TABLE table_name DROP col_name;
2.5.5 修改表的名称
ALTER TABLE table_name TRNAME TO new_table_name;
2.6 修改表中数据
2.6.1 增
INSERT INTO table_name VALUES(100,18,'Zara','Ali');
2.6.2 删
DELETE FROM table_name WHERE id = 100;
2.6.3 改
UPDATE table_name SET id = 99, last = 'newAli' WHERE id = 100;
2.6.4 查
- 条件符号
2.6.4.1普通查
SELECT id as 序号, last as 名 FROM table_name WHERE id = 100;
2.6.4.2去重
SELECT DISTINCT id WHERE FROM table_name ;
2.6.4.3排序
SELECT column_name FROM table_name ORDER BY column_name [排序方式:ASC(升序默认) DESC(降序)];
2.6.4.4聚合函数
count(col) # 个数
max(col) # 最大
min(col) # 最小
sum(col) # 和
avg(col) # 平均
2.6.4.5分组查询
SELECT column_name FROM table_name [where 条件] GROUP BY 分组字段名 [HAVING 分组后条件过滤];
# 执行顺序where > 聚合函数 > having
2.6.4.6分页查询
SELECT column_name FROM table_name LIMIT 起始索引, 查询条目数;
# 起始索引从0开始
2.6.4.7查询公式
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段
HAVING
分组后条件
ORDER BY
排序字段
LIMIT
分页限定
三、数据库约束
CREATE TABLE table_name
(
id INT PRIMARY KEY,
age INT NOT NULL UNIQUE,
first VARCHAR(255),
last VARCHAR(255),
col_name 数据类型,
CONSTRAINT fk_ FOREIGN KEY (age) REFERENCES prime_table_name(col_name)
);
3.1 添加外键约束
ALTER TABLE table_name ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称)
3.2删除外键约束
ALTER TABLE table_name DROP FOREIGN KEY 外键名称;
3.3 自动增长
CREATE TABLE table_name
(
id INT PRIMARY KEY auto_increment,
age INT NOT NULL UNIQUE,
first VARCHAR(255),
last VARCHAR(255),
col_name 数据类型,
PRIMARY KEY ( id )
);
3.4 添加主键约束
ALTER TABLE table_name ADD PRIMARY KEY(col_name);
3.5 删除主键约束
ALTER TABLE table_name ADD PRIMARY KEY;
3.6 添加非空
ALTER TABLE table_name MODIFY col_name 数据类型 NOT NULL;
3.7 删除非空
ALTER TABLE table_name MODIFY col_name 数据类型;
3.8 添加唯一
ALTER TABLE table_name MODIFY col_name 数据类型 UNIQUE;
3.9 删除唯一
ALTER TABLE table_name MODIFY col_name 数据类型;
3.10 添加默认
ALTER TABLE table_name ALTER col_name SET DEFAULT 默认值;
3.11 删除默认
ALTER TABLE table_name DROP INDEX col_name;
四、多表查询
SELECT * FROM table_name1, table_name2;
# 笛卡尔积
4.1 连接查询
)
4.1.1 内连接查询
# 隐式内连接
SELECT * FROM table_name1, table_name2 WHERE table_name1.col_name = table_name2.col_name;
# 显式内连接
SELECT table_name1.col_name1, table_name2.col_name2 FROM table_name1 [INNER] JOIN table_name2 ON table_name1.col_name = table_name2.col_name;
4.1.2 外连接查询
# 左外连接查询
SELECT * FROM table_name1 LEFT [OUTER] JOIN table_name2 ON table_name1.col_name = table_name2.col_name;
# 右外连接查询
SELECT * FROM table_name1 RIGHT [OUTER] JOIN table_name2 ON table_name1.col_name = table_name2.col_name;
4.2 子查询
4.2.1 单行单列
# 单行单列
SELECT * FROM table_name WHERE col_name = (子查询)
4.2.2 多行单列
# 多行单列
SELECT * FROM table_name WHERE col_name in (子查询)
4.2.3 多行多列
# 多行多列
SELECT * FROM (子查询) WHERE WHERE col_name = 100;
五、事务
# 开启事务
START TRANSACTION;
# 或者
BEGIN;
# 提交事务
COMMIT;
# 回滚事务
ROLLBACK;