一、DDL
1.创建库:
CREATE DATABASE 库名;
删除数据库:
DROP DATABASE 库名;
查询数据库:
- 查询所有库:
SHOW DATEBASES;
- 查询库里所有表:
SHOW TABLE;
使用数据库:
USE 库名;
2、 表操作:
创建表:
CREATE TABLE 表名(
字段1 字段1类型 [COMMENT 字段1注释],
字段2 字段2类型 [COMMENT 字段2注释],
字段3 字段3类型 [COMMENT 字段3注释],
...
字段n 字段n类型 [COMMENT 字段n注释]
)[ COMMENT 表注释 ];
删除表:
DROR TABLE 表名;
修改表:
ALTER TABLE 表名
[ADD 字段名 类型(长度) [COMMENT 注释] [约束];]//添加字段
[DROP 字段名;]//删除字段
[TRUNCATE TABLE 表名;]//删除表,并重新创建该表
[CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];]//修改字段民和类型
[MODIFY 字段名 新数据类型(长度);]//修改数据类型
[ALTER TABLE 表名 RENAME TO 新表名;]//修改表名
查询表:
//查看表所有数据
select * from 表名;
//查询表结构
DESC 表名;
//查询表的建表语句
SHOW CREATE TABLE 表名;
二、DML
1、 添加数据
- 插入元组
//指定字段
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);
//全部字段
INSERT INTO 表名 VALUES (值1, 值2, ...);
//批量添加数据
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
INSERT INTO 表名 VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
- 插入子查询结构
//格式1:(该语句需要先建立表,然后将子查询结果集插入)
INSERT INTO 表名 (字段名1, 字段名2, ...) select...;
//格式2:(不需要建立表,执行语句同时建立与查询字段同类型数据的表)
select... INTO 新表名 FROM ...;
2、删除数据
DELETE FROM 表名 [ WHERE 条件 ];
3、修改数据
UPDATE 表名 SET 字段名1 = 值1, 字段名2 = 值2, ... [ WHERE 条件 ];
三、DQL
1、单表查询:
- 选择表中的列
//查询多个字段
SELECT 字段1, 字段2, 字段3, ... FROM 表名;
SELECT * FROM 表名;
//去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
//设置别名
SELECT 字段1 [ AS 别名1 ], 字段2 [ AS 别名2 ], 字段3 [ AS 别名3 ], ... FROM 表名;
SELECT 字段1 [ 别名1 ], 字段2 [ 别名2 ], 字段3 [ 别名3 ], ... FROM 表名;
条件查询:
SELECT 字段列表 FROM 表名 WHERE 条件列表;
- 聚合函数查询:
SELECT 聚合函数(字段列表) FROM 表名;
-分组查询
SELECT 字段列表 FROM 表名 [ WHERE 条件 ] GROUP BY 分组字段名 [ HAVING 分组后的过滤条件 ];
-排序查询:
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1, 字段2 排序方式2;
-分页查询:
SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数;
-合并查询(笛卡尔积,会展示所有组合结果):
select * from employee, dept;
外连接查询:
-左外连接:
SELECT 字段列表 FROM 表1 LEFT [ OUTER ] JOIN 表2 ON 条件 ...;
-右外连接:
SELECT 字段列表 FROM 表1 RIGHT [ OUTER ] JOIN 表2 ON 条件 ...;
子查询: SQL语句中嵌套SELECT语句,称谓嵌套查询,又称子查询。
SELECT * FROM t1 WHERE column1 = ( SELECT column1 FROM t2);