用户一般可以使用sql提供的select语句,通过查询得到所需信息。
1、select:从列的角度进行投影操作,指定要在查询结果中显示的字段名。
2、from:指定要查询的表名或视图名,多个表或视图用逗号隔开。
#例如在学生表student中查询学生学号sno
select sno
from student;
3、关键字distinct:消除查询结果中的重复元组。
#例如查询选修了课程(sc表)的学生学号(sno),结果表中学号显示唯一。
select distinct sno
from sc;
4、where:从行的角度进行选取操作,后面跟检索条件用来约束元组,满足条件的元组出现在查询结果中。
5、常用的比较运算符
运算符 | 含义 |
=,>,<,>=,<= | 比较大小 |
and(&&)、or(||)、not(!) | 多重条件 |
between and、not between and | 确定范围 |
in,not in | 确定集合 |
like,not like | 字符匹配 |
is null、is not Null | 空值 |
(1)比较大小
#例如在选课表(sc)中查询成绩(score)在90分及以上的选课信息。
select * #*表示表中的全部字段名
from sc
where score>=90;
(2)多重条件查询。
#例如在教师表(t)中查询年龄(age)不在30~40岁教师的教师号(tno),姓名(tn)
select tno,tn
from t
where not (age>=30 and age<=40);
(3)确定范围。
#例如在课程表(c)中查询课时(ct)在30~40课时的课程的课程号(cno),课程名(cn)
select cno,cn
from c
where ct between 30 and 40;
(4)确定集合。
#例如在选课表(sc)中课程号为“c4”和“c6”的选课信息,包括学号(sno)、课程号(cno
)和成绩(score)。
select sno,cno,score
from sc
where cno in ('c4','c6');
(5)字符匹配
通配符 | 功能 |
% | 代表0个或多个字符 |
_(下划线) | 代表一个字符 |
[ ] | 表示在某一范围的字符 |
[^] | 表示不在某一范围的字符 |
#例如在学生表(student)查询姓名(sn)长度至少是三个汉字且倒数第三个汉字是“张”的学生。
select *
from student
where sn like'%张_ _';
6、空值。
#例如查询选课表(sc)中没有成绩(score)的学生学号(sno)和课程号(cno)
select sno,cno
from sc
where score is null;