单表查询
- 查询表中所有信息
SELECT * FROM 数据表名;
- 查询指定字段
SELECT 字段1,字段2,字段3….FROM 表名;
- where 条件查询
SELECT 字段1,字段2,字段3….FROM 表名 WHERE 条件表达式;
- 带 in 关键字查询
SELECT 字段1,字段2,字段3….FROM 表名 WHERE 字段 [NOT] IN(元素1,元素2) ;
- 带 between and 的范围查询
SELECT 字段1,字段2,字段3….FROM 表名 WHERE 字段 [NOT] BETWEEN 值1 AND 值2;
- 带 like 的模糊查询
SELECT 字段1,字段2,字段3….FROM 表名 WHERE 字段 [NOT] LIKE '字符串';
- 带 and 或者 or 的多条件查询:
SELECT 字段1,字段2,字段3….FROM 表名 WHERE 表达式1 OR 表达式2 OR 表达式3;
SELECT 字段1,字段2,字段3….FROM 表名 WHERE 表达式1 AND 表达式2 AND 表达式3;
- distinct 去重复查询
SELECT DISTINCT 字段1,字段2,字段3….FROM 表名;
- 对查询结果排序 order by:
SELECT 字段1,字段2,字段3….FROM 表名 ORDER BY 属性名[DESC|ASC];
DESC 为降序,ASC为升序(可以不写)
- 分组查询 group by
GROUP BY 属性名 [HAVING 条件表达式][WITH ROLLUP]
- limit 分页查询
SELECT 字段1,字段2,字段3….FROM 表名 LIMIT 初始位置,记录数;
多表查询
内连接查询
两张或以上的表连接起来查询需要的数据
SELECT * FROM t_A , t_B WHERE t_A.ID=t_B.ID;
外连接查询
两张或以上的表连接起来查询某张表的信息
左连接与右连接只是主表位置不同
SELECT * FROM t_A LEFT JOIN t_B ON t_A.ID=t_B.ID;
子查询
- 带 in 关键字的子查询(一个查询语句的条件可能落在另一个select语句的查询结果中)
select * from t_book where bookType in(select id from t_bookType);
SELECT * FROM t_A WHERE AGE IN(SELECT ID FROM t_B);
- .带比较运算符的子查询(子查询可以使用比较运算符)
SELECT * FROM t_A WHERE AGE > (SELECT ID FROM t_B);
- 带exists关键字的子查询(加入子查询查询到记录,则进行外层查询,否则,不执行外层查询)
SELECT * FROM t_A WHERE EXISTS(SELECT * FROM t_B);
- 带any关键字的子查询(any关键字表示满足其中任一条件)
SELECT * FROM t_A WHERE AGE >ANY(SELECT ID FROM t_B);
- 带all关键字的子查询(all关键字表示满足所有条件)
SELECT * FROM t_A WHERE AGE >ALL(SELECT ID FROM t_B);
合并查询
- union
使用union关键字时,数据库系统会将所有的查询结果合并到一起,然后去掉相同的记录;
SELECT ID FROM t_A UNION SELECT ID FROM t_B;
- union all
使用union all,不会去除掉重复的记录;
SELECT ID FROM t_A UNION ALL SELECT ID FROM t_B;
拜师教育学员文章:作者:1227-李同学,
转载或复制请以 超链接形式 并注明出处 拜师资源博客。
原文地址:《mysql基础-查询数据》 发布于2020-08-22
评论 抢沙发