数据库查询语言(1)DQL——零散知识

来源:互联网 发布:淘宝客机器人手机版 编辑:程序博客网 时间:2024/05/22 18:23

(1)为什么给数据库列名起名字?
当select语句中一个字段是函数或者表达式,那么在结果集中该字段的名字就是这个函数或表达式,可读性差,为此可以为列提供一个别名,这样结果集中会使用别名作为该字段的名字。应当养成一个好习惯,即:凡是表达式或函数都指定一个别名。
别名本身不区分大小写,。若希望别名区分大小写后或者别名中包含空格,那么就需要使用双引号将其括起来。
用双引号就是为了跟单引号区分开。
(2) and or语句
and语句就是查询左右有两边的式子同时满足,or语句就是查询左右两边只要有一个条件同时满足,这两个语句一般都用在where语句中,示例如下所示:

select * from o_myemp where empno=7369 and job='CLERK'

(2)like
like是一个模糊查询操作,一般是用户在搜索过程中不是十分准确的所以需要使用like这样模糊查询,其中有两个标识符需要注意,一个是’_’,还有一个是’%’区别如下:
‘_’该标识符代表一个字符
‘%’该标识符代表零个或多个字符、
示例如下所示:

select * from o_myemp where ename like '%A%'

(3)in not……in
in()和not……in()的括号里面去写的是列表,区别就是in()是一个数据只要存在列表里面任意一个就能够查询出来,而not……in()表示的是只要该数据在列表里面不存在时就能够查询出来,示例如下所示:

select * from o_myemp where sal in(1000,2000,3000);select * from o_myemp where sal not in(1000,2000,3000);

(4)between a and b
该字段主要功能就是满足a和b之间的数,主要示例如下所示:

select * from o_myemp where sal between 2000 and 4000

(5)ANY(list),ALL(list)
any(list)函数主要意思就是存在一个数,而ALL(list)主要意思就是任意一个,它通常跟着>,>=,<,<=一起使用,主要过程如下:
>any(list)大于任一个数,只要比最小的数还要大就满足题意。
>all(list)比list所有的数还要大,只要比最大的数还要大就满足题意。
‘<’any(list)小于任一个数,只要比最大的数还要小就满足题意。
‘<’all(list)小于任意一个数,只要比最小的书还要小就满足条件
主要示意之一如下所示:

select * from o_myemp where sal < any(1000,2000,3000)

(6)distinct
该函数主要功能就是去掉重复字段,当然distinct后面有两个,那么首先先比较第一个,只要第一个值相等时就比较第二个,主要示例如下所示:

select distinct deptno from o_myemp

(7)order by
该函数主要功能就是对某一个或者多个字段进行排序,有两个标识符:
ASC:升序排序
DESC:降序排序
与distinct一样,如果有两个及以上字段,先比较第一个,只要第一个重复就比较第二个,以此类推,主要示例如下所示:

select * from o_myemp order by sal ASC

(8)聚合函数(max,min,avg,sum,count)
max():主要功能就是在所有数据中求出最大数
min():主要功能就是在所有数据中求出最小数
avg():主要功能就是求出某一个数字字段的平均值
sum():主要功能就是求出某一数字字段的和
count():主要功能就是统计有多少条数据
主要示例如下所示:

select avg(sal) "平均值",max(sal) "最大值",min(sal) "最小值",count(sal) "总数",sum(sal) "求和" from o_myemp;