SQL 语句分类
-
DDL:数据定义语言,用来定义数据库对象(数据库,表,字段 )
-
DML:数据操作语言,用来对数据库中的数据进行增删减
-
DQL:数据查询语言,用来查询数据库中表的记录
-
DCL:数据控制语言,用来创建数据库表,用来控制数据库的访问权限
DDL-数据库操作
查询
SHOW DATABSES; 查询所有数据库
SELECT DATABASE(); 查询当前数据库
DESC 表名; 查询表结构
SHOW CREATE TABLE 表名;查询指定表的建表语句
创建
CREATE DATABSE[IF NOT EXISTS]数据库名[DEFAULT CHARSET 字符集] [COLLATE 排序规则];
CREATE TABLE 表名(
字段1 字段1类型[COMMENT 字段1注释],
.......
字段n 字段n类型[COMMENT 字段n注释]
)[COMMENT 表注释];
注意:[......]为可选参数,可有可无
删除
DROP DATABASE[LE EXISTS]数据库名
使用
USE 数据库名
DML-增删改
添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度)[COMMENT 注释] [约束];
修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);
修改字段名和字段类型
ALTER 表明 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
删除字段
ALTER TABLE 表名 DROP 字段名;
修改表名
ALTER TABLE 表名 RENAME TO 新表名;
删除表
DROP TABLE [IF EXISTS]表名;
删除表,并重新创建该表
TRUNCATE TABLE 表名;
-
添加数据 INSERT
-
修改数据 CUPDATE
-
删除数据 CDELETE
添加数据
给指定字段添加数据
INSERT INTO 表名(字段名1,字段名2......) VALLUES(值1,值2.....);
给全部字段添加数据
INSERRT INTO 表名 VALUES(值1,值2....);
批量添加数据
INSER INTO 表名(字段名1,字段名2.....) VALUESC (值1,值2.....),(值1,值2.....)(值1,值2......).....;
INSER INTO 表名 VALUES(值1,值2.......),(值1,值2).....;
修改数据
UPDATE 表名 SET 字段名1=值1,字段名2=值2,.....[WHERE 条件];
删除数据
DELETE FROM 表名[WHERE 条件];
DQL-数据查询
-
SELECT 字段列表
-
FROM 表名列表
-
WHERE 条件列表
-
GROUOP BY 分组字段列表
-
HAVING 分组后条件列表
-
ORDER BY 排序字段列表
-
LIMIT 分页参数
-
查询多个字段
SELECT 字段1,字段2.....FROM 表名;
SELECT * FROM 表名;
设置别名
SELECT 字段1[AS 别名1],字段2[AS 别名2].....FROM 表名;
去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
运算符
比较运算符
-
> 大于
-
>= 大于等于
-
< 小于
-
<= 小于等于
-
<>或!= 不等于
-
BETWEEN....AND....在某个范围之内(含最大,最小值)
-
IN(......) 在IN之后的列表中的值,多选一
-
LIKE 占位符 模糊匹配(_单个字符,%任意个字符)
-
IS NULL 是NULL
逻辑运算符
-
AND或&& 并且(多个条件同时成立)
-
OR或|| 或者(多个条件任意一个成立)
-
NOT或! 非,不是
聚合函数
-
COUNT 统计数量
-
MAX 最大值
-
MIN 最小值
-
AVG 平均值
-
SUM 求和
SELECT 聚合函数(字段列表)FROM 表名;
分组查询
SELECT 字段名 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组过滤条件];
执行顺序:WHERE>聚合函数>HAVING
分组之后,查询的字段一般为聚合函数和分组字段查询其他字段无意义