SQL语言按照功能可以分为4大类。
数据查询语言DQL:查询数据。
数据定义语言DDL:建立、删除和修改数据对象。
数据操纵语言DML:完成数据操作的命令,包括查询。
数据控制语言DCL:控制对数据库的访问,服务器的关闭、启动等
单表查询是相对多表查询而言的,指从一个数据表中查询数据。
4.2.1 查询所有的记录
在【命令编辑区】执行输入“select * from
scott.emp”,然后单击【执行】按钮,得到emp数据表所有记录。
select * from 数据表,这里的“*”代表数据表中所有的字段。
4.2.2 查询所有记录的某些字段
在【命令编辑区】输入“select empno,ename,job from
scott.emp”,然后单击【执行】按钮,将显示emp数据表的empno、ename和job字段。
select 字段名1, 字段名2,…… from 数据表,将显示某些特定的字段,注意这里的字段名之间的逗号是英文状态下的逗号。
4.2.3
查询某些字段不同记录
在查询到的job字段中,可以发现有相同的数据,为了查询有多少种不同的job,在【命令编辑区】输入“select
distinct job from scott.emp”,然后单击【执行】按钮,出现结果。
select distinct 字段名 from
数据表,这里的“distinct”保留字指在显示时去除相同的记录,与之对应的是“all”将保留相同的记录,默认为“all”。
4.2.4 单条件的查询
(1)在【命令编辑区】输入“select empno,ename,job from scott.emp where
job=’MANAGER’”,然后单击【执行】按钮,出现的字符型字段条件查询的结果,查询的是job为MANAGER的记录。
(2)在【命令编辑区】输入“select empno,ename,sal from scott.emp where
sal<=2500”,然后单击【执行】按钮,出现的数字型字段条件查询的结果,查询的是满足sal小于等于2500的记录。
where可以指定查询条件,如果是指定字符型字段查询条件,形式为字段名 运算符 '字符串';如果是指定数字型字段查询条件,形式为字段名 运算符 '字符串'。
单条件查询使用的比较运算符如下表所示。
表4.1 比较运算符
名称 | 实例 |
=(等于) | select * from scott.emp where job=’MANAGER’; |
select * from scott.emp where sal=1100; |
!= (不等于) | select * from scott.emp where job!=’MANAGER’; |
select * from scott.emp where sal!=1100; |
^=(不等于) | select * from scott.emp where job^=’MANAGER’; |
select * from scott.emp where sal^=1100; |
<>(不等于) | select * from scott.emp where job<>’MANAGER’; |
select * from scott.emp where sal<>1100; |
<(小于) | select * from scott.emp where sal<2000; |
select * from scott.emp where job<’MANAGER’; |
>(大于) | select * from scott.emp where sal>2000; |
select * from scott.emp where job>’MANAGER’; |
<=(小于等于) | select * from scott.emp where sal<=2000; |
select * from scott.emp where job<=’MANAGER’; |
>=(大于等于) | select * from scott.emp where sal>=2000; |
select * from scott.emp where job>=’MANAGER’; |
in(列表) | select * from scott.emp where sal in (2000,1000,3000); |
select * from scott.emp where job in (’MANAGER’,’CLERK’); |
not in(不在列表) | select * from scott.emp where sal not in (2000,1000,3000); |
select * from scott.emp where job not in (’MANAGER’,’CLERK’); |
between(介于之间) | select * from scott.emp where sal between 2000 and 3000; |
select * from scott.emp where job between ’MANAGER’ and ’CLERK’; |
not between (不介于之间) | select * from scott.emp where sal not between 2000 and 3000; |
select * from scott.emp where job not between ’MANAGER’ and
’CLERK’; |
like(模式匹配) | select * from scott.emp where job like ’M%’; |
select * from scott.emp where job like ’M__’; |
not like (模式不匹配) | select * from scott.emp where job not like ’M%’; |
select * from scott.emp where job not like ’M__’; |
Is null (是否为空) | select * from scott.emp where sal is null; |
select * from scott.emp where job is null; |
is not null(是否为空) | select * from scott.emp where sal is not null; |
select * from scott.emp where job is not null; |
like和not like适合字符型字段的查询,%代表任意长度的字符串,_下划线代表一个任意的字符。like ‘m%’
代表m开头的任意长度的字符串,like ‘m__’ 代表m开头的长度为3的字符串。