数据库(查询专项)
Posted 仓鼠大人爱吃肉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库(查询专项)相关的知识,希望对你有一定的参考价值。
1.基本查询语句(SELECT)
SELECT *|字段列表 FROM 表1,表2,表n WHERE 表达式 GROUP BY HAVING ORDERBY LIMIT ;
SELECT 字段1,字段2,字段n FROM 表或视图 WHERE 查询条件;
说明:select语句决定了要查询的值,from语句决定了数据来源.
2.单表查询:指从一张表中查询所需数据.
目录
1.查询所有字段
2.查询指定字段
3.查询指定记录
4.带IN关键字的查询
5.带BETWEEN AND的查询范围
6.带LIKE的字符匹配查询
7.查询空值
8.带AND的多条件查询
9.带OR多条件查询
10.查询结果不重复
11.对查询结果进行排序
12.分组查询
13.使用LIMIT限制查询结果的数量
1.查询所有字段(SELECT * FROM 表名;)注意:效率低
2.查询指定字段(SELECT 字段名1,字段名2,字段名n FROM 表名;)
3.查询指定记录(SELECT 字段名 FROM 表名 WHERE 查询条件;)
3.1WHERE条件符
等于 =
不等于 <>,!=
小于<
小于等于<=
大于等于>=
大于>
位于两值之间BETWEEN AND
4.带IN关键字的查询(SELECT 字段名 FROM 表名 WHERE IN|NOT IN ORDER BY ;)
5.带BETWEEN AND的查询范围(SELECT 字段名 FROM 表名 WHERE 要查询的字段名 BETWEEN|NOT BETWEEN 值1 AND 值2;)
6.带LIKE的字符匹配查询(LIKE "%"," _")通配符查询.模糊查找.
1.%百分号通配符.匹配任意长度的字符,包括零字符.
例:1以b开头b% 2以b结尾%b 3只要有b就匹配%b% 3 b开头y结尾b%y
2._下划线通配符,一次只能匹配任意一个字符.
例:_ _ _ _y 匹配y结尾的 前面有四位字母的单词.
7.查询空值(SELECT 字段名 FROM 表名 WHERE IS NULL|IS NOT NULL;)
8.带AND的多条件查询(WHERE 条件子句1 AND 条件子句2;)优先级高于OR
9.带OR多条件查询(WHERE 条件子句1 OR 条件子句2;)IN更快,还能嵌套.完成和OR相同功能. 优先级低于 AND
10.查询结果不重复(SELECT DISTINCT 字段名 FROM 表名;)
11.对查询结果进行排序(SELECT 字段名1,字段名2 FROM 表名 ORDER BY 要排序的字段名1,要排序的字段名2;)
ORDER BY 字段名 DESC 降序排列
ORDER BY 字段名 ASC 升序排列(默认)
12.分组查询(GROUP BY 字段名 HAVING 条件表达式;)
12.1 GROUP BY
GROUP BY通常和数集函数一起使用.
SELECT 数集函数 AS 字段别名 FROM 表名称 GROUP BY
12.2 HAVING 过滤
SELECT 字段名 FROM 表名 GROUP BY 字段名 HAVING 条件;
HAVING 用于分组后
WHERE用于分组前
GROUP BY 字段名 WITH ROLLUP
13.使用LIMIT限制查询结果的数量(SELECT *FROM 表名 LIMIT 开始行数参数(默认0),行数参数;)
3.使用集合函数查询
SELECT 聚合函数(字段名) AS 新生成的虚拟字段名(等于改名)
AVG()返回平均值
COUNT(*)返回表中总行数,COUNT(字段名)返回指定字段行数
MAX()返回最大值
MIN()返回最小值
SUM()返回和
4.内连接查询(INNER JOIN)
SELECT 要连接的字段名 FROM 表名1 INNER JOIN 表名2 ON 字段1=字段2;
SELECT 要连接的字段名 FROM 表名1 ,表名2 WHERE 字段1=字段2;
5.外连接查询(LEFT JOIN|RIGHT JOIN )
SELECT 要连接的字段名 FROM 表名1 LEFT|RIGHT JOIN 表名2 ON 字段1=字段2;
6.复合条件查询()在连接查询过程中,添加过滤条件从而使结果更加精确
SELECT 要连接的字段名 FROM 表名1 INNER JOIN 表名2 ON 字段1=字段2 条件;
7.子查询
一个查询嵌套在另一个查询内部mysql4.1开始引入
7.1.ANY,SOME 关键字表示满足任何一个条件,就可以返回结果作为外层查询条件
SELECT 字段名 FROM 表名 WHERE 条件>ANY|SOME(条件);
7.2.ALL 关键字要求满足所有内层查询条件,才会返回值
SELECT 字段名 FROM 表名 WHERE 条件>ALL(条件);
7.3.EXISTS|NOT EXISTS关键字 查看是否返回行,如果是返回,如果不是|反之相反
7.4.IN关键字,内层查询语句仅仅返回一个数据列,这个数据列里的值将提供给外层查询语句比较操作.
7.5比较运算符查询.
7.6合并查询结果(UNION|UNION ALL)
7.7为表取别名 (表名1 AS 表名1的别名)
7.8位列取别名(列名1 AS 列名1别名)
8. 使用正则表达式查询(REGEXP)
SELECT * FROM 表名 WHERE 表名 REGEXP "正则表达式"
以上是关于数据库(查询专项)的主要内容,如果未能解决你的问题,请参考以下文章