第六讲:SQL语句之DQL类型的数据查询语言

SQL语句之DQL类型的数据查询语言

1.DQL类型的SQL语句基本概述

DQL类型的SQL语言全称为Data Query Language,中文名称为数据查询语言,主要是用来查询数据库中的表的数据的,像关联查询、多表查询、嵌套查询都是DQL类型的SQL语言。

DQL数据查询语言用到的SQL指令主要是SELECT,SELECT语法结构如下:

SELECT
	字段列表
FROM
	表名
WHERE
	条件列表
GROUP BY
	分组字段列表
HAVING
	分组后的条件列表
ORDER BY
	排序字段列表
LIMIT
	分页参数

根据查询的需求不同,可以分为以下几个部分:

  • 基本查询,不带任何的条件。
  • 条件查询,使用WHERE语句根据不用的条件进行查询。
  • 聚合函数,例如count、max、min、avg、sum,主要和分组查询配合使用。
  • 分组查询,使用groupby实现分组查询。
  • 排序查询,使用order by实现排序查询。
  • 分页查询,每一页显示多少条积木,通过limit实现。

2.准备一张可以练习查询的数据表

一张技术中心的新冠疫苗接种信息表,表结构和数据如下,用于我们练习各种类型的查询语句。

表结构如下:

drop table if exists jszx_xgymjzxxb;
create table jszx_xgymjzxxb (
    id int comment '编号',
    bm varchar(10) comment '部门',
    name varchar(10) comment '姓名',
    xb char(1) comment '性别',
    nl int comment '年龄',
    szd varchar(50) comment '所在地',
    zjhm char(18) comment '证件号码',
    wd char(1) comment '未打',
    first_injection char(1) comment '第一针',
    second_injection char(1) comment '第二针',
    third_injection char(1) comment '第三针',
    wjzymjtyy varchar(50) comment '具体原因',
    zhycjzymdsj date comment '最后一次接种疫苗的时间'
) comment '技术中心新冠疫苗接种信息表';

数据如下:

insert into jszx_xgymjzxxb (id, bm, name, xb, nl, szd, zjhm, wd, first_injection, second_injection, third_injection, wjzymjtyy, zhycjzymdsj) values ('1','运维部','江睿基','男','31','北京','110101199009154512','否','是','是','否','身体原因','2021-07-18');
insert into jszx_xgymjzxxb (id, bm, name, xb, nl, szd, zjhm, wd, first_injection, second_injection, third_injection, wjzymjtyy, zhycjzymdsj) values ('2','运维部','张希','女','28','北京','230182199412251659','否','是','是','否','身体原因','2021-03-21');
insert into jszx_xgymjzxxb (id, bm, name, xb, nl, szd, zjhm, wd, first_injection, second_injection, third_injection, wjzymjtyy, zhycjzymdsj) values ('3','运维部','张亚男','男','29','上海','13052819930918721X','否','是','是','否','身体原因','2021-09-05');
insert into jszx_xgymjzxxb (id, bm, name, xb, nl, szd, zjhm, wd, first_injection, second_injection, third_injection, wjzymjtyy, zhycjzymdsj) values ('4','测试部','吴昊泽','男','33','上海','110101198909134869','否','是','是','否','身体原因','2021-05-13');
insert into jszx_xgymjzxxb (id, bm, name, xb, nl, szd, zjhm, wd, first_injection, second_injection, third_injection, wjzymjtyy, zhycjzymdsj) values ('5','测试部','乔亮','男','32','上海','110101199009154512','否','是','是','否','身体原因','2022-07-16');
insert into jszx_xgymjzxxb (id, bm, name, xb, nl, szd, zjhm, wd, first_injection, second_injection, third_injection, wjzymjtyy, zhycjzymdsj) values ('6','测试部','张子云','女','34','上海','371522198803278716','否','是','是','否','身体原因','2021-11-18');
insert into jszx_xgymjzxxb (id, bm, name, xb, nl, szd, zjhm, wd, first_injection, second_injection, third_injection, wjzymjtyy, zhycjzymdsj) values ('7','测试部','陈国明','男','33','深圳','371522198902283975','否','是','是','否','身体原因','2022-01-19');
insert into jszx_xgymjzxxb (id, bm, name, xb, nl, szd, zjhm, wd, first_injection, second_injection, third_injection, wjzymjtyy, zhycjzymdsj) values ('8','测试部','张茜茜','女','26','深圳','140256199610213942','否','是','是','否','身体原因','2022-03-03');
insert into jszx_xgymjzxxb (id, bm, name, xb, nl, szd, zjhm, wd, first_injection, second_injection, third_injection, wjzymjtyy, zhycjzymdsj) values ('9','开发部','赵晓燕','女','23','北京','140528199909135815','否','是','是','否','身体原因','2021-11-07');
insert into jszx_xgymjzxxb (id, bm, name, xb, nl, szd, zjhm, wd, first_injection, second_injection, third_injection, wjzymjtyy, zhycjzymdsj) values ('10','开发部','王蕊蕊','女','25','北京','110101199712223817','否','是','是','否','身体原因','2021-07-26');
insert into jszx_xgymjzxxb (id, bm, name, xb, nl, szd, zjhm, wd, first_injection, second_injection, third_injection, wjzymjtyy, zhycjzymdsj) values ('11','开发部','牛泽阳','男','42','上海','110111198001031287','否','是','是','否','身体原因','2021-06-07');
insert into jszx_xgymjzxxb (id, bm, name, xb, nl, szd, zjhm, wd, first_injection, second_injection, third_injection, wjzymjtyy, zhycjzymdsj) values ('12','开发部','吴刚','男','30','上海','150221199208157849','否','是','是','否','身体原因','2021-07-29');
insert into jszx_xgymjzxxb (id, bm, name, xb, nl, szd, zjhm, wd, first_injection, second_injection, third_injection, wjzymjtyy, zhycjzymdsj) values ('13','开发部','高宇','男','23','上海','110104199904183824','否','是','是','否','身体原因','2021-09-30');
insert into jszx_xgymjzxxb (id, bm, name, xb, nl, szd, zjhm, wd, first_injection, second_injection, third_injection, wjzymjtyy, zhycjzymdsj) values ('14','开发部','刘洋','女','24','深圳','110105199809274782','否','是','是','否','身体原因','2021-02-18');
insert into jszx_xgymjzxxb (id, bm, name, xb, nl, szd, zjhm, wd, first_injection, second_injection, third_injection, wjzymjtyy, zhycjzymdsj) values ('15','开发部','王文良','男','30','深圳','110109199206056659','否','是','是','否','身体原因','2022-03-15');

数据表准备完毕。

image-20220507221238293

3.DQL语句之简单的基础查询

3.1.查询表中指定的多个字段的数据

语法格式:SELECT 字段1, 字段2, 字段3 ... FROM 表名 ;

查询表中name、xb、nl、zjhm、wjzymjtyy字段的数据。

select name,xb,nl,zjhm,wjzymjtyy from jszx_xgymjzxxb;

查看查询的结果。

image-20220507210218727

3.2.查询表中所有字段的数据

select * from jszx_xgymjzxxb;

查看查询的结果,所有字段的数据都已经列出来了。

image-20220507210756048

3.3.查询表中数据时为字段设置别名

SELECT指令支持在查询数据时,为表中的字段设置别名。

命令格式:SELECT 字段1 [ AS 别名1 ] , 字段2 [ AS 别名2 ] ... FROM 表名;

或者:SELECT 字段1 [ 别名1 ] , 字段2 [ 别名2 ] ... FROM 表名;

设置别名时AS关键字可写可不写。

查询表中name、xb、nl、szd、zjhm等五个字段的数据,并为每个字段设置别名。

select name 姓名,xb 性别,nl 年龄,szd 所在地,zjhm 证件号码 from jszx_xgymjzxxb;

select name as 姓名,xb as 性别,nl 年龄,szd as 所在地,zjhm as 证件号码 from jszx_xgymjzxxb;

查看查询的结果,已经为指定的查询字段设置了中文别名。

image-20220507210830448

3.4.查询表中所在地字段的数据并且去掉重复值

去重的命令格式:SELECT DISTINCT 字段列表 FROM 表名;

select distinct szd from jszx_xgymjzxxb;

查看查询的结果,自当将重复值进行了去重。

image-20220507210851682

猜你喜欢

转载自blog.csdn.net/weixin_44953658/article/details/126358871