文章目录
- 前言
- 一、DQL语句间接和语法
- 1、DQL简介
- 2、DQL语法
- 二、DQL语句使用
- 1、基础查询
- (1)查询多个字段
- (2)为字段设置别名
- (3)去除重复记录
- 总结
前言
本文主要介绍SQL语句中DQL语句的功能和使用方法,其中包括DQL语句的语法,基础、条件、分组查询等多种方式以及一些聚合函数的用法。
Ps:本文介绍时将使用数据库管理客户端软件Datagrip进行操作,不会使用的同学也没有关系,使用该软件只是为了方便展示
一、DQL语句间接和语法
1、DQL简介
DQL是一种数据查询语言,用来查询数据库中表的记录。在一个正常的业务系统中,查询操作的频次是要远高于增删查改。
2、DQL语法
select字段列表
from表名列表
where条件列表
group by分组字段列表
having分组后条件列表
order by排序字段列表
limit分页参数
在本文进行介绍时,会将上方完整的语法拆分为以下几个部分进行介绍:
- 基本查询(不带任何条件)
- 条件查询(where)
- 聚合函数(count、min、max…)
- 分组查询(group by)
- 排序查询(order by)
- 分页查询(limit)
二、DQL语句使用
在介绍之前,我们需要生成一个表如下图所示:
创建该表的sql语句如下,大家可以拿去创建一个与博主相同的表,方便大家实操。
# 创建一个名为test的数据库
create schema test;
#在test数据库下创建一个名为
use test
#创建一个名为emp的表
create table emp(id int comment '编号',workno varchar(10) comment '工号',name varchar(10) comment '姓名',gender char(1) comment '性别',age tinyint unsigned comment '年龄',idcard char(18) comment '身份证号',workaddress varchar(50) comment '工作地址',entrydate date comment '入职时间'
)comment '员工表';#向表中插入一些数据
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (1, '00001', '柳岩666', '女', 20, '123456789012345678', '北京', '2000-01-01');INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (2, '00002', '张无忌', '男', 18, '123456789012345670', '北京', '2005-09-01');INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (3, '00003', '韦一笑', '男', 38, '123456789712345670', '上海', '2005-08-01');INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (4, '00004', '赵敏', '女', 18, '123456757123845670', '北京', '2009-12-01');INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (5, '00005', '小昭', '女', 16, '123456769012345678', '上海', '2007-07-01');INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (6, '00006', '杨逍', '男', 28, '12345678931234567X', '北京', '2006-01-01');INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (7, '00007', '范瑶', '男', 40, '123456789212345670', '北京', '2005-05-01');INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (8, '00008', '黛绮丝', '女', 38, '123456157123645670', '天津', '2015-05-01');INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (9, '00009', '范凉凉', '女', 45, '123156789012345678', '北京', '2010-04-01');INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (10, '00010', '陈友谅', '男', 53, '123456789012345670', '上海', '2011-01-01');INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (11, '00011', '张士诚', '男', 55, '123567897123465670', '江苏', '2015-05-01');INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (12, '00012', '常遇春', '男', 32, '123446757152345670', '北京', '2004-02-01');INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (13, '00013', '张三丰', '男', 88, '123656789012345678', '江苏', '2020-11-01');INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (14, '00014', '灭绝', '女', 65, '123456719012345670', '西安', '2019-05-01');INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (15, '00015', '胡青牛', '男', 70, '12345674971234567X', '西安', '2018-04-01');INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (16, '00016', '周芷若', '女', 18, null, '北京', '2012-06-01');
1、基础查询
(1)查询多个字段
select 字段1,字段2,字段3... from 表名;
如我们查询指定字段name,workno,age并返回:
如果我们想要查询该表的所有信息,我们还可以使用以下代码:
select id, workno, name, gender, age, idcard, workaddress, entrydate from emp;
除此之外还可以使用 * 来代替所有字段名(其中 * 号代表查询所有字段):
select * from emp;
(2)为字段设置别名
select 字段1 [as 别名1],字段2 [as 别名2]... from 表名;
比如我们再次查询字段name,workno,age并给它们起别名为姓名,工号,年龄:
select name as 姓名,workno as 工号,age as 年龄 from emp;
可以发现这里字段显示的名称与上图的英文名称有所不同,显示出的是它的别名。
(3)去除重复记录
select distinct 字段列表 from 表名;
如我们要查询所有员工的工作地址有哪些,但不要重复:
select distinct workaddress from emp;
后文还在更新中…
总结
本文主要介绍DQL语句的使用方法,希望能对您有所帮助。