1. DDL(操作数据库)
查询
SHOW DATABASES;
创建数据库
CREATE DATABASE 数据库名称;
CREATE DATABASE IF NOT EXISTS 数据库名称;
删除数据库
DROP DATABASE 数据库名称;
DROP DATABASE IF EXISTS 数据库名称;
使用数据库
USE 数据库名称;
查看当前使用的数据库
SELECT DATABASE();
2. DDL(操作表)
查询当前数据库下所有表名称
SHOW TABLES;
查询表结构
DESC 表名称;
show columns from 表名;
删除表
DROP TABLE 表名;
删除表时判断表是否存在
DROP TABLE IF EXISTS 表名;
修改表名
ALTER TABLE 表名 RENAME [AS|TO] 新的表名;
-- 将表名student修改为stu
alter table student rename to stu;
添加一列
ALTER TABLE 表名 ADD [column] 列名 数据类型 [first|after 列名];
修改数据类型
ALTER TABLE 表名 MODIFY 列名 新数据类型 [first|after 列名];
修改列名和数据类型
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型 [first|after 列名];
删除列
ALTER TABLE 表名 DROP 列名;
3. DML(操作数据-增删改)
增:
给指定列添加数据
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,…)…;
删:
删除数据语法
DELETE FROM 表名 [WHERE 条件] ;
-- 注意:如果不加条件, 所有数据都被删除了 很严重
改:
修改表数据
UPDATE 表名 SET 列名1=值1,列名2=值2,… [WHERE 条件] ;
DQL(操作数据-查)
查询多个字段
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名; -- 查询所有数据
去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
条件查询
SELECT 字段列表 FROM 表名 WHERE 条件列表;
-- 语句中 && 和 and 都表示并且的意思。建议使用 and 。
-- 可以使用 between ... and 来实现范围查询。
-- null值的比较不能使用 = 或者 != 。需要使用 is 或者 is not
模糊查询
SELECT 字段列表 FROM 表名 WHERE 字段 LIKE '%指定包含字段%';
-- _ : 代表单个任意字符
-- % : 代表任意个数字符
排序查询
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2] …;
-- ASC : 升序排列 (默认值)
-- DESC : 降序排列
聚合函数
SELECT 聚合函数名(列名) FROM 表;
-- count(列名) 统计数量(一般选用不为null的列)
-- max(列名) 最大值
-- min(列名) 最小值
-- sum(列名) 求和
-- avg(列名) 平均值
分组查询
SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定]
GROUP BY 分组字段名 [HAVING 分组后条件过滤];
分页查询
SELECT 字段列表 FROM 表名 LIMIT 起始索引 , 查询条目数;
-- 起始索引计算公式
-- 起始索引 = (当前页码 - 1) * 每页显示的条数
多表查询(内连接查询 )
-- 隐式内连接
SELECT 字段列表 FROM 表1,表2… WHERE 条件;
-- 显示内连接
SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 条件;
多表查询(外连接查询 )
-- 左外连接
SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件;
-- 右外连接
SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件;
多表查询(子查询 )
-- 子查询语句的编写位置(子查询就是查询嵌套查询)
select * from 表1 , (sql语句) where 条件
select * from 表1 join (sql语句) on 条件
select * from 表1 where id = (sql语句)
select * from 表1 where id in (sql语句)
注释:
如有不足之处,欢迎评论区补充学习交流。