首頁技術文章正文

DQL是什么?DQL數(shù)據(jù)查詢操作演示全流程

更新時間:2022-10-07 來源:黑馬程序員 瀏覽量:

DQL英文全稱是Data Query Language(數(shù)據(jù)查詢語言),數(shù)據(jù)查詢語言,用來查詢數(shù)據(jù)庫中表的記錄。查詢關鍵字: SELECT 在一個正常的業(yè)務系統(tǒng)中,查詢操作的頻次是要遠高于增刪改的,當我們?nèi)ピL問企業(yè)官網(wǎng)、電商網(wǎng)站,在這些網(wǎng)站中我們所看到的數(shù)據(jù),實際都是需要從數(shù)據(jù)庫中查詢并展示的。而且在查詢的過程中,可能還會涉及到條件、排序、分頁等操作。

1665124637197_32.png
那么,本小節(jié)我們主要學習的就是如何進行數(shù)據(jù)的查詢操作。 我們先來準備一些數(shù)據(jù):
drop table if exists employee;
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');
準備完畢后,我們就可以看到emp表中準備的16條數(shù)據(jù)。接下來,我們來學習DQL查詢操作的語法。

DQL 查詢語句,語法結構如下:

SELECT
    字段列表
FROM
    表名列表
WHERE
    條件列表
GROUP BY
    分組字段列表
HAVING
    分組后條件列表
ORDER BY
    排序字段列表
LIMIT
    分頁參數(shù)

這部分內(nèi)容,我們可以將將上面的完整語法進行拆分,分為以下幾個部分:

基本查詢(不帶任何條件)

條件查詢(WHERE)

聚合函數(shù)(count、max、min、avg、sum)

分組查詢(group by)

排序查詢(order by)

分頁查詢(limit)

1.基礎查詢

在基礎查詢的DQL語句中,不帶任何的查詢條件,查詢的語法如下:

1). 查詢多個字段

SELECT 字段1, 字段2, 字段3 ... FROM 表名 ;
SELECT * FROM 表名 ;

注意 : * 號代表查詢所有字段,在實際開發(fā)中盡量少用(不直觀、影響效率)。

2). 為字段設置別名

SELECT 字段1 [ AS 別名1 ] , 字段2 [ AS 別名2 ] ... FROM 表名;
SELECT 字段1 [ 別名1 ] , 字段2 [ 別名2 ] ... FROM 表名;

3). 去除重復記錄

SELECT DISTINCT 字段列表 FROM 表名;

案例:

A. 查詢之前準備的字段中的指定字段 name, workno, age并返回,示例代碼如下:

select name,workno,age from emp;

B. 查詢返回所有字段

 select id ,workno,name,gender,age,idcard,workaddress,entrydate from emp;
 select * from emp;

C. 查詢所有員工的工作地址,起別名

 select workaddress as '工作地址' from emp;
 -- as可以省略
 select workaddress '工作地址' from emp;

D. 查詢公司員工的上班地址有哪些(不要重復)

 select distinct workaddress '工作地址' from emp;

2.條件查詢

1). 語法

條件查詢的語法格式如下:

 SELECT 字段列表 FROM 表名 WHERE 條件列表 ;

2). 條件常用的比較運算符如下:

1665126846784_27.png

常用的邏輯運算符如下:

邏輯運算符

案例: A. 查詢年齡等于 88 的員工
 select * from emp where age = 88;
B. 查詢年齡小于 20 的員工信息
 select * from emp where age < 20;
C. 查詢年齡小于等于 20 的員工信息
 select * from emp where age <= 20;
D. 查詢沒有身份證號的員工信息
 select * from emp where idcard is null;
E. 查詢有身份證號的員工信息
 select * from emp where idcard is not null;
F. 查詢年齡不等于 88 的員工信息
 select * from emp where age != 88;
 select * from emp where age <> 88;
G. 查詢年齡在15歲(包含) 到 20歲(包含)之間的員工信息
 select * from emp where age >= 15 && age <= 20;
 select * from emp where age >= 15 and age <= 20;
 select * from emp where age between 15 and 20;
H. 查詢性別為 女 且年齡小于 25歲的員工信息
 select * from emp where gender = '女' and age < 25;
I. 查詢年齡等于18 或 20 或 40 的員工信息
 select * from emp where age = 18 or age = 20 or age =40;
 select * from emp where age in(18,20,40);
J. 查詢姓名為兩個字的員工信息 _ %
 select * from emp where name like '__';
K. 查詢身份證號最后一位是X的員工信息
 select * from emp where idcard like '%X';
 select * from emp where idcard like '_________________X';





分享到:
在線咨詢 我要報名
和我們在線交談!