1、查询一个字段
select 字段名 from 表名;
其中注意:
select和from都是关键字。
字段名和表名为标识符。
SQL语句不区分大小写。
distinct关键字:去除重复记录
用法 select distinct 字段名 from 表名;
2、查询两个字段或者多个字段
使用”,”号隔开。
serlect 字段名1,字段名2 from 表名;
3、查询所有字段
第一种方式:把每一个字段名都写上去
select a,b,c,d,e,f….. from 表名;
第二种方式:使用”“号(这种方式缺点很多,效率低,可读性差,不建议在实际开发中使用)
select from 表名;
4、给查询的列起别名
select 字段名 as ‘别名’ from 表名;
as关键字可以省略
注意,数据库中的字符串全都是采用单引号的方式括起来的,这是标准
5、条件查询
将符合条件的数据展示出来。
语法格式:
select
字段1,字段2,字段3…..
from
表名
where
条件;
= 等于
<> 或 != 不等于
< 小于
<= 小于于等于
> 大于
>= 大于等于
between …. and … 两个值之间,等同于 >= and <=注意使用between..and..的时候一定要遵守左小右大的方式
is null 为空(is not null 不为空)
and 并且
or 或者
如果and和or同时出现,and优先级比or大,如果想要or先执行需要加小括号
in 包含,相当于多个 or (not in 不在这个范围中)
not 可以取非,主要用在 is 或者 in 中
like 称为模糊查询。支持%或下划线匹配 like’张%’
%匹配任意个字符
下划线,一个下划线只能匹配一个字符
\ 转义字符
查找表格中含有某个数据:select 字段名 form 表名 where like ‘%’;
注意在数据库中null不能使用 = 进行衡量必须使用 is null 因为数据库中的null代表什么也没有
6、表格排序
select
字段名1,字段名2
from
表名
order by
字段名 asc\desc;
注意数据库中,默认排序是升序排序,asc表示升序排序,desc表示降序排序。
7、分组函数(多行处理函数)
count 计数
sum 求和
avg 平均值
max 最大值
min 最小值
对表中数据进行相加:select sum(字段名) from 表名;
记住:所有的分组函数都是对”某一组”数据进行操作。分组函数自动忽略null.
SQL语句中规定:分组函数不能直接出现在where子句当中
因为group by实在where执行之后才会执行的
SQL语句执行顺序表:
select 5
…
from 1
…
where 2
…
group by 3
…
having 4
…
order by 6
…
count(*)和conut(具体的某一个字段),他们有什么区别
count(*):不是统计某个字段中的数据个数,而是统计总记录条数。(和某个字段无关)
count(某一个字段):表示统计字段中不为null的数据总数量。
数据库中规定如果运算的数中只要有null的存在,最后结果一定都是null。
8、单行处理函数
空处理函数:ifnull(可能含有null的字段,被当成什么处理)
9、group by 和 having
group by : 按照某些字段进行分组
having :对分组之后的数据进行再次过滤。having跟在 group by 后面但是能使用 where 就使用 where 这样子效率更高
列如:找出每个工作岗位的最高薪资。
select max(薪资) from 表名 group by job;
注意:分组函数一般都会和group by一起使用。
并且任何一个分组函数都是在group by 语句执行结束之后才执行的。
记住一个规则如果一条语句中有group by 的话select后面只能跟分组函数和参与分组的字段
10、总结一个完整的DQL语句:
SQL语句执行顺序表:
select 5
…
from 1
…
where 2
…
group by 3
…
having 4
…
order by 6
…