目录
子查询
介绍:
子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入
子查询规范
-
子查询必须放在小括号中,并给子查询起别名
-
子查询一般放在比较操作符的右边,以增强代码可读性
-
子查询可以出现在几乎所有的
SELECT
子句中(如:SELECT、FROM、WHERE、ORDER BY、HAVING子句
)
子查询分类
-
标量子查询(scalar subquery):返回1行1列一个值
-
查询出基本工资比ALLEN低的全部员工信息
SELECT * FROM emp WHERE sal<(SELECT sal FROM emp WHERE eanme='ALLEN');
-
-
行子查询(row subquery):返回的结果集是 1 行 N 列
-
查询与SCOTT从事同一工作且工资相同的员工信息
SELECT e.* FROM emp e WHERE (e.job,e.sal)=(SELECT job,sal FROM emp WHERE ename='SCOTT') AND e.ename<>'SCOTT';
-
-
列子查询(column subquery):返回的结果集是 N 行 1列
-
在使用多行子查询需要使用多行比较操作符:
-
-
表子查询(table subquery):返回的结果集是 N 行 N 列
模糊查询
在 MySQL 中,LIKE 关键字主要用于搜索匹配字段中的指定内容。
语法格式:
[NOT] LIKE '字符串'
-
NOT :可选参数,字段中的内容与指定的字符串不匹配时满足条件。
-
字符串:指定用来匹配的字符串。“字符串”可以是一个很完整的字符串,也可以包含通配符。
LIKE 关键字支持百分号%和下划线“_”通配符。
-
%代表任何长度
-
_代表单个字符
-
\转义字符
注意事项和技巧
-
注意大小写。MySQL 默认是不区分大小写的。如果区分大小写,像“Tom”这样的数据就不能被“t%”所匹配到。
-
注意尾部空格,尾部空格会干扰通配符的匹配。例如,“T% ”就不能匹配到“Tom”。(可以使用trim去除前后空格)
-
注意 NULL。“%”通配符可以到匹配任意字符,但是不能匹配 NULL。也就是说 “%”匹配不到表中值为 NULL 的记录。
分页查询
作用:
-
限制查询结果返回的条数,减小对数据库服务器造成的压力
LIMIT关键字使用
指定初始位置
LIMIT 关键字可以指定查询结果从哪条记录开始显示,显示多少条记录。
LIMIT 初始位置,记录数
不指定初始位置
LIMIT 关键字不指定初始位置时,记录从第一条记录开始显示。显示记录的条数由 LIMIT 关键字指定。
LIMIT 记录数
分页
#对12条数据进行分页=>每页数量3条 # limit (当前页-1)*每页数量,每页数量 select * from g_customer limit 0,3;#1-3 select * from g_customer limit 3,3;#1-3 select * from g_customer limit 6,3;#1-3 select * from g_customer limit 9,