单表查询 :
查询所有字段
SELECT * FROM <表> ;
查询指定字段:
SELECT 字段1,字段2... FROM <表> ;
查询指定记录:
SELECT 字段1,字段2...
FROM 表名
WHERE 查询条件
查询判断符有:
= 等于
<> 或 != 不等于
< 小于
> 大于
>=大于等于
<=小于等于
BETWEEN 位于两值之间
- 带IN关键字查询:
IN操作符用来满足指定范围的条件记录.
SELECT s_ id ,s_name FROM s WHERE s_ id IN (10,11);
查询表s中s_id值为10 或 11 的记录.
IN 前面加 NOT,表示范围之外的值,范围之外的值被返回.
- 带BETWEEN AND的范围查询:
SELECT s_ id ,s_name FROM s WHERE s_ id BETWEEN 10 AND 20;
包括首尾
查询表s中 s_id 值在10到20之间并且包括10和20的记录;
- 带LIKE的字符匹配查询
能和LIKE一起使用的通配符有: “%” 和 “_”
“%” 匹配任意长度的字符,包括零字符
SELECT * FROM s WHERE s_ name LIKE ‘b%’; //查询表s中s_ name为以b开头的记录.
SELECT * FROM s WHERE s_ name LIKE ‘%b’; //查询表s中s_ name为以b结尾的记录.
SELECT * FROM s WHERE s_ name LIKE ‘%b%’; //查询表s中s_ name内存在b的记录.
“_” 一次只能匹配一个字符
SELECT * FROM s WHERE s_ name LIKE ‘b_’; //例如可以匹配到 s_ name 值为 bs、bq、bo…这样的记录
同”%”用法一样,不再一一举例.
BETWEEN END操作符前加NOT,表示范围之外的值,范围之外的值被返回
带AND或 OR的多条件查询
SELECT查询时,增加限制条件使得查询结果更为精确
在WHERE子句中使用AND或者OR操作符将多个条件表达式分开.
AND操作符,只有满足所有查询条件的记录才会被返回
OR 操作符,只要满足其中一个条件的记录就会被返回
SELECT * FROM s WHERE s_ id = 10 AND s_ name=’huajji’; //返回s_ name 为huaji 并且s_ id为 10记录;
查询结果不重复:
在查询的字段前加DISTINCT关键字修饰可以去除重复的记录SELECT DISTINCT s_ id FROM s;
对查询结果进行排序:
- 单列排序:
SELECT * FROM s ORDER BY s_ id; //查询表s全部记录,并按照s_ id升序排序.(默认按升序)
- 单列排序:
- 多列排序:
SELECT * FROM s ORDER BY s_ id,s_ num; //先按s_ id排序,再按s_ num排序
注 : 多列排序时,首先排序的第一列有相同值,才会对第二列进行排序.如果第一列都是唯一的,将不会对第二列进行排序. - 按指定排序方向排序:
默认情况下按字母升序排序(从A~Z),即以ASC(升序)作为默认排序方式
通过关键字 DESC 可以实现按字母降序(从Z~A).DESC排序方式只应用到直接位于其前面的字段上.
SELECT * FROM s ORDER BY s_ id DESC; //按降序排序
- 多列用不同的顺序排序
SELECT * FROM s ORDER BY s_ id DESC,s_ num //先按s_ id字段降序排序,再按 s_ num字段升序排序