语句类型
DDL数据定义语言:
创建、删除数据库和表等对象
CREATE创建数据库和表等对象DROP删除数据库和表等对象ALTER修改数据库和表等对象的结构
DML数据操纵语言:
查询、变更表中的记录:
SELECT查询表中数据INSERT插入新数据UPDATE更新表中数据DELETE删除表中数据
DCL数据控制语言:
确认、取消对数据库中数据的更改
COMMIT将SQL语句的执行结果写入数据库表中ROLLBACK撤销SQL语句的执行结果
重点是DML数据操纵语言。
单表查询
从一个数据表中,查询出一列或多列数据:
SELECT[列名]FROM[表名];SELECT[列名1],[列名2],[列名3]FROM[表名];SELECT*FROM[表名];
可以使用[表名].[列名]的方式代替列名,比较方便。
-
AS 别名设置:
SELECT[列名1],[列名2]AS[别名],[列名3]AS[别名]…FROM[表名]; -
常数添加:
SELECT‘常数’AS[别名]FROM[表名]; -
四则运算:
SELECT[四则运算表达式]FROM[表名];
sale_price - in_price AS profit
-
CONCAT 字符拼接:
SELECTCONCAT([列名1],[列名2],…)FROM[表名];
不仅可以拼接列,还可以拼接文本。 -
CONCAT_WS 指定拼接符:
SELECTCONCAT_WS(‘拼接符’,[列名1],[列名2],…)FROM[表名];
多字段拼接,字段间使用同样的拼接符
会自动跳过NULL -
DISTINCT 取出不重复的列值:
SELECTDISTINCT[列名]FROM[表名]; -
ORDER BY 结果排序:(非必须语句)
应该写在查询语句的最末尾,列名可以用索引代替;
ORDER BY[列名1],[列名2],…;在列名后面加上关键字
ASC或者DESC可以指定排序方式DESC只对紧跟着的关键字起作用如果要被指定为排序的列是文本类型,需要使用
CONVERT([列名] USING gbk)语句。
SELECT * FROM [表名] ORDER BY CONVERT([列名] USING gbk);
-
WHERE 数据过滤
SELECT[列名]FROM[表名]WHERE[条件]; -
IFNULL 函数,如果是空值,则替换成一个值
IFNULL([列名],替换值)
SELECT[列名]FROM[表名]WHEREIFNULL([列名],0)!=15 ; -
BETWEEN…AND…选出两个值之间的行,包含两端
WHERE[列]BETWEEN[前端值]AND[后端值] ; -
IS NULL 空值过滤
WHERE[列]IS NULL; -
IS NOT NULL 过滤非空值
WHERE[列]IS NOT NULL;
- LIKE 模糊查询
-
通配符
_,一个代表一个字符
知道字符位置和数目
WHERE[列]LIKE‘…_…’; -
通配符
%
知道字符位置,不知道数目,%可以代表任意个
WHERE[列]LIKE‘…%…’;
-
以通配符开头,查询效率比较低
转义字符为\
过滤条件可以有多个,用AND或OR连接,可以加括号防止优先级混淆
WHERE [条件1] AND [条件2] OR [条件3]…;
-
IN 明确而不连续的取值
WHERE[字段]IN(值1, 值2, …); -
NOT 否定条件
WHERENOT[条件1];
只否定紧跟着的条件
SELECT*FROMmilk_teaWHERENOTprod_nameIN(‘奶茶’,‘薯片’); 表示除了奶茶和薯片
本文详细介绍了SQL中的数据操纵语言(DML),包括SELECT、INSERT、UPDATE和DELETE语句,用于查询和修改数据库中的数据。同时讲解了AS别名、四则运算、CONCAT函数、DISTINCT、ORDER BY、WHERE条件过滤、BETWEEN、ISNULL和LIKE等高级查询技巧,为数据库操作提供了全面的指导。

被折叠的 条评论
为什么被折叠?



