首頁 > 軟體

SQL資料查詢之DQL語言介紹

2022-08-17 14:03:31

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');

資料表準備完畢。

3.DQL語句之簡單的基礎查詢

3.1.查詢表中指定的多個欄位的資料

語法格式:SELECT 欄位1, 欄位2, 欄位3 ... FROM 表名 ;

查詢表中name、xb、nl、zjhm、wjzymjtyy欄位的資料。

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

檢視查詢的結果。

3.2.查詢表中所有欄位的資料

select * from jszx_xgymjzxxb;

檢視查詢的結果,所有欄位的資料都已經列出來了。

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;

檢視查詢的結果,已經為指定的查詢欄位設定了中文別名。

3.4.查詢表中所在地欄位的資料並且去掉重複值

去重的命令格式:SELECT DISTINCT 欄位列表 FROM 表名;

select distinct szd from jszx_xgymjzxxb;

檢視查詢的結果,自當將重複值進行了去重。

到此這篇關於SQL資料查詢之DQL語言介紹的文章就介紹到這了,更多相關SQL DQL內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com