数据查询语言(中)
关联删除:
从a表中把那些id在b表里有匹配的记录全部删掉
DELETE t1 FROM t1,t2 WHERE t1.id=t2.id
DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id
INNER JOIN: 根据ON字段标识出来的条件,查出关联的几张表中,符合该条件的记录,合并成一个查询结果集。
A INNER JOIN B ON……: 内联操作,将符合ON条件的A表和B表结果均搜索出来,然后合并为一个结果集。
A LEFT JOIN B ON……: 左联操作,左联顾名思义是,将符合ON条件的B表结果搜索出来,
然后左联到A表上,然后将合并后的A表输出。
A RIGHT JOIN B ON……: 右联操作,右联顾名思义是,将符合ON条件的A表结果搜索出来,
然后右联到B表上,然后将合并后的B表输出。
模糊查询
定义:模糊查询是使用SQL通配符替代一个或多个字符的条件查询。
通配符:
*一类字符,代替一个或多个真正的字符。
*与LIKE关键字一起使用。
语法:
SELECT * FROM 表名 WHERE 字段 like ‘包含通配符的值’;
示例:
SELECT * FROM comments
WHERE cmtAuthor LIKE '%东%’;
DISTINCT关键字
功能:去掉SELECT查询返回的记录结果中重复的记录,相同记录只返回一条。
语法:
SELECT DISTINCT 字段名1,字段名2,… FORM 表名
示例:
SELECT DISTINCT cmtContent FROM comments
ORDER BY关键字
功能:一组数据按照升序或降序排列。
语法:
SELECT <字段名列表> FORM <表名>
[WHERE <查询条件>]
[ORDER BY <排序的列名> [ASC 或 DESC]]
示例:
SELECT * FROM comments ORDER BY cmtId DESC
SELECT * FROM comments ORDER BY newsId,cmtId DESC
*默认不写是升序排列。
LIMIT关键字
功能:MySQL查询语句中使用LIMIT子句限制结果集。
语法:
SELECT <字段名列表> FORM <表名>
[WHERE <查询条件>]
[ORDER BY <排序的列名> [ASC或 DESC]]
[LIMIT [位移偏移量,]行数];
示例:
SELECT * FROM comments LIMIT 2,5
NULL关键字
NULL特点:
1、区别空字符串’ ’
2、只能出现在定义允许为NULL的字段。
3、须使用 IS NULL 或 IS NOT NULL 比较操作符去比较。
语法:
1、SELECT * FROM comments WHERE cmtAuthor IS NULL;
2、SELECT * FROM comments WHERE cmtAutor = ’ ';
聚合函数
定义:聚合函数是可以对一组值进行计算,并返回单个值的函数。
COUNT()总数
SUM()求和
AVG()平均值
MAX()最大值
MIN()最小值
GROUP_CONTCAT(COL)由属于一组的列值连接组合而成的结果
语法:
SELECT 聚合函数 FROM <表名>
示例:
SELECT COUNT(*) AS 总数 FROM comments;
SELECT MAX(cmtDate) AS 最近评论时间
FROM comments;