1. 基本语法
1.1 完全体语法
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定
1.2 具体用法
构建三个表,分别为:
user:
dept:
demo:
1.2.1 查询所有字段
select * from user;
最基本的查询语句:select from 表名,其余查询均是在此基础上扩展而来,其中代表查询该表的所有字段。
如果包含多个表,则会对每个表所有数据进行排列组合。
查询结果:
1.2.2 查询指定字段
select name, age from user;
指定需要查询的字段,用于查出表的部分列。
如果包含多个表,则会对每个表所有数据的查询字段进行排列组合。
查询结果:
1.2.3 为字段和表起别名
select d.realname as dr, t.dname as td from demo as d, dept as t;
1.2.4 带条件查询
select name, age from user where age > '30' and sex = '男';
where只需要写一个,多个条件用and连接。
运算符:
- \> 、< 、<= 、>= 、= 、<>
- BETWEEN...AND
- IN( 集合)
- LIKE:模糊查询
- 占位符:
- _:单个任意字符
- %:多个任意字符
- IS NULL
- and 或 &&
- or 或 ||
- not 或 !
查询结果:
1.2.5 多表不带条件查询
select d.realname, t.dname from demo as d, dept as t;
不带条件,则会对每个表所有数据的查询字段进行排列组合。
查询结果:
1.2.6 多表带条件查询
select d.realname, t.dname from demo as d, dept as t where d.loc = t.loc
带条件,先对每个表所有数据的查询字段进行排列组合,再从结果中查询出满足条件的值作为最终结果。
查询结果:
1.2.7 模糊查询
使用like实现
通配符概述:
- %:表示任意0个或多个字符。
- _: 表示任意单个字符。
- [ ]:表示括号内所列字符中的一个(类似正则表达式)。括号内可为多种形式,如[1-9]表示1-9的任意一个数字、[马刘李]则表示马刘李中的任意一个数字~~~
- [^] :表示不在括号所列之内的单个字符。与[ ]表达的意思相反,如1表示排除1-9。
具体使用
select * from user where name like '马%';
ps:匹配姓马的所有人。
查询结果:
select * from user where name like ‘马_’;
ps:匹配姓马的两个字的人。
查询结果:
- 1-9 ↩