都是一些基础知识:
1. 检索数据
SELECT语句的返回表中的行,但是数据没有过滤(过滤将得出结果集中的一个子集),也没有排序。
mysql命令行,必须加上分号来结束SQL语句。
SQL语句不区分大小写,但是,为了易于阅读,关键字大写,列和表名用小写。
LIMIT 1 总是从第一行开始,给出的数为返回的行数。
LIMIT 1,1
LIMIT:行0,检索出来的第一行为行0而不是行1
LIMIT检索出第二行而不是第一行。
2. 排序检索数据
ORDER BY 子句取一个或多个列的名字,据此对输出进行排序。
SELECT pro_id, pro_price, pro_name
FROM products
ORDER BY pro_price DESC, pro_name
排序方向:默认为升序,即为ASC, 也可为降序DESC
在字典排序顺序中,A被默认为与a相同。也是MySQL的默认行为 。
选出最贵物品:
SELECT pro_price
FROM produts
ORDER BY pro_price DESC
LIMIT 1;
ORDER BY 必须在FROM之后,LIMIT必须在ORDER BY之后。
过滤数据
WHERE子句
ORDER BY应当位于WHERE之后
MySQL在执行匹配时默认不区分大小写
不匹配检查<>或者!=两种
范围值检查BETWEEN 5 AND 10
NULL与字段包含0、空字符串或仅仅包含空格不同
WHERE pro_name IS NULL
数据过滤
组合WHERE子句
AND OR
SELECT pro_id, pro_price, pro_name
FROM products
WHERE vend_id=1003 AND pro_price<=10
在处理OR操作符前,会先处理AND
IN操作符
指定条件范围,范围中的每个条件都可以进行匹配
功能与OR相同
SELECT pro_name, pro_price
FROM products
WHERE id IN (1002, 1003)
ODER BY pro_name
优点是快,并且最大优点是可以包含其他SELECT语句
NOT操作符
否定它之后跟的任何条件
SELECT pro_name, pro_price
FROM products
WHERE id NOT IN (1002, 1003)
ODER BY pro_name
MySQL支持使用NOT对IN、BETWEEN和EXISTS子句取反
本文详细介绍SQL的基础知识,包括SELECT语句的使用、数据检索、排序与过滤的方法。深入探讨了WHERE子句的应用,以及如何利用ORDER BY和LIMIT进行数据排序与限制。此外,还介绍了组合WHERE子句、IN操作符和NOT操作符的使用,帮助读者掌握更复杂的SQL查询技巧。

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



