数据库的操作无外乎是增删改查,那么其中的查询是我们作为测试,用得最多的,那查询应该怎么做呢,我们来讲解一下。

1、介绍一下我们举例的表结构

表一:
学生表:(学号,姓名,性别,出生日期,年龄,邮箱,住址,婚否)
stud:(sid,sname,sex,birth,age,email,address,marry)

表二:
课程表:(课程号,课程名)
course:(cid,cname)

表三:
成绩表:(学号,课程号,分数)
score:(sid,cid,sc)
成绩表中学号和课程号,来源于学生表和课程表,也就是外键,他们两个的组合又是联合主键。联合主键的意义是,这两个键的组合不能重复;外键的目的是为了约束成绩表中的学生和课程必须是存在的,也就是说如果学生表中没有9号学生,那么这个学生就不可能有成绩。
在这里插入图片描述

表格数据:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
2、查询
(1)查询表格的所有数据
select * from 表名
星号表示所有数据

(2)查询部分字段
select 字段1,字段2 from 表名
例:
查询学生表的姓名和性别
select sname,sex from stud
在这里插入图片描述
通过上述例子,我们可以总给为:想要看哪个字段,就直接把字段名写在selectfrom中间就可以了,多个字段用英文逗号间隔

(3)取别名
从上个例子中,我们看到了查询结果,但是字段名大多是一个代号,我们长期看的话,不是很直观,所以,我们可以在查询的时候把字段名写成中文的。我们接着上个例子继续往下讲。
例:
select sname as 姓名,sex as 性别 from stud
在这里插入图片描述
在这里插入图片描述
(4)带条件的查询
select 字段 from 表名 where 条件
例1:
想查询张三的所有信息
首先我们分析“张三”是姓名,stud表中sname表示姓名,所有信息用星号表示,那么sql就呼之欲出了
在这里插入图片描述
例2:
想查询张三的性别
在这里插入图片描述
例3:
查询姓张的所有信息
通过学生表的数据,我们可以知道,表格中有三个人都姓“张”,姓“张”这个条件,反应在语言里边,也就是sname字段值里,以“张”开头的所有数据,如下:
在这里插入图片描述
例4:
年龄大于30岁的人的性别和年龄
条件是年龄字段,也就是age大于30
在这里插入图片描述
例5:
年龄在24到30之间的人的姓名和年龄

这个有两种写法,用大于号小于号,或者between and
在这里插入图片描述
在这里插入图片描述

例6:
查询住在北京上海的

and是且的关系
or是或的关系

分析上边的要求,要住在北京上海的,如果用and,那意思就是这个人即住在北京,又住在上海,明显不符合要求。所以用or,意思是找住在北京或者住在上海的,两个地方的都要,符合题意,所以sql语句就出来了。

在这里插入图片描述
例7:
查询婚姻状况不明的

分析:婚姻状况不明,也就是marry字段没数据的
is null :是空的
is not null :不是空的
在这里插入图片描述
例8:
查询28岁以上的男的
分析:这个要求具备两个条件,28岁以上和性别为“男”的
在这里插入图片描述
例9:
查询表格中前3条数据
stud表中有7条数据,但是只展示前3条,我们需要用到一个关键字“limit”
在这里插入图片描述
例10:
查询年龄最小的3人
分析:条件是年龄最小,所以需要在age字段进行筛查,另外需要排序,排完顺序以后才能把年龄最小的3个人筛选出来,所以还需要用到“limit”
关键字:order by 字段 顺序
asc:升序
desc:降序
顺序可不写,不写默认升序
在这里插入图片描述
在这里插入图片描述
年龄最小的3个人,sql如下:
在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐