MySQL基礎關鍵_002_DQL(一)

目? 錄

一、初始化

二、簡單查詢

1.部分語法規則

2.查詢一個字段

(1)查詢員工編號

(2)查詢員工姓名

3.查詢多個字段

(1)查詢員工編號、姓名

(2)查詢部門編號、名稱、位置?

4.查詢全部字段

(1)查詢薪資等級全部字段

?5.查詢時進行數學運算

(1)查詢員工姓名、年薪

6.查詢時起別名?

(1)查詢員工姓名、年薪

(2)查詢員工全部信息

三、條件查詢?

1.過濾條件

2.語法格式

3.等于/不等于

(1)查詢姓名為“JONES”的員工信息

(2) 查詢位置不在“NEW YORK”的部門信息

4.大于等于/小于等于/大于/小于

(1)查詢月薪 2000 以上的員工姓名和薪資

(2)查詢最低薪資低于 1400 的薪資等級信息

5.and/between…and…/or

(1)查詢薪資在 1600~2500 之間的員工信息

(2)查詢職位是“CLERK”或“SALESMAN”的員工信息

(3)and 和 or 優先級

?6.is null/is not null

(1)查詢沒有津貼的員工信息

7.in/not in

(1)查詢職位是“ANALYST”、“PRESIDENT”、“MANAGER”的員工信息

(2)是否忽略 null

8.模糊查詢

(1)查詢姓名以 S 開頭的員工信息?

(2)查詢姓名以 T 結尾的員工信息

(3)查詢姓名第二個字母是 A 的員工信息


一、初始化

? ? ? ? 查詢語句屬于 SQL 語句中的 DQL(數據查詢語言),用于從數據庫中檢索數據,并將結果返回。由 SELECT(查詢內容)、FROM(查詢對象)、WHERE(查詢條件)、ORDER BY(排序方式)、GROUP BY(分組方式)等組成。

? ? ? ? ?那么,在開始前,先準備一個 sql 腳本來初始化數據庫信息,代碼如下:

DROP TABLE IF EXISTS employees;
DROP TABLE IF EXISTS departments;
DROP TABLE IF EXISTS salary_grades;-- 部門表
CREATE TABLE departments (dept_no INT NOT NULL,dept_name VARCHAR(14),location VARCHAR(13),PRIMARY KEY (dept_no)
);-- 員工表
CREATE TABLE employees (emp_no INT NOT NULL,emp_name VARCHAR(10),job_title VARCHAR(9),manager_id INT,hire_date DATE DEFAULT NULL,salary DECIMAL(7,2),commission DECIMAL(7,2),PRIMARY KEY (emp_no),dept_no INT,FOREIGN KEY (dept_no) REFERENCES departments(dept_no)
);-- 薪資等級表
CREATE TABLE salary_grades (grade INT,min_salary INT,max_salary INT
);-- 插入部門數據
INSERT INTO departments (dept_no, dept_name, location) VALUES
(10, 'ACCOUNTING', 'NEW YORK'),
(20, 'RESEARCH', 'DALLAS'),
(30, 'SALES', 'CHICAGO'),
(40, 'OPERATIONS', 'BOSTON');-- 插入員工數據
INSERT INTO employees (emp_no, emp_name, job_title, manager_id, hire_date, salary, commission, dept_no) VALUES
(7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800.00, NULL, 20),
(7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600.00, 300.00, 30),
(7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250.00, 500.00, 30),
(7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975.00, NULL, 20),
(7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250.00, 1400.00, 30),
(7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850.00, NULL, 30),
(7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450.00, NULL, 10),
(7788, 'SCOTT', 'ANALYST', 7566, '1987-04-19', 3000.00, NULL, 20),
(7839, 'KING', 'PRESIDENT', NULL, '1981-11-17', 5000.00, NULL, 10),
(7844, 'TURNER', 'SALESMAN', 7698, '1981-09-08', 1500.00, 0.00, 30),
(7876, 'ADAMS', 'CLERK', 7788, '1987-05-23', 1100.00, NULL, 20),
(7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950.00, NULL, 30),
(7902, 'FORD', 'ANALYST', 7566, '1981-12-03', 3000.00, NULL, 20),
(7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300.00, NULL, 10);-- 插入薪資等級數據
INSERT INTO salary_grades (grade, min_salary, max_salary) VALUES
(1, 700, 1200),
(2, 1200, 1400),
(3, 1400, 2000),
(4, 2000, 3000),
(5, 3000, 9999);COMMIT;


二、簡單查詢

1.部分語法規則

  1. 一條 SQL 語句 必須以【;】結尾;
  2. SQL 語句沒有大小寫限制;
  3. 可以使用【desc + 表名】來查看表結構;
  4. 使用【\c】終止當前語句。

2.查詢一個字段

????????一個表有多列,查詢一個字段就是查詢其中的一列。

(1)查詢員工編號

select emp_no from employees;


(2)查詢員工姓名

select emp_name from employees;


3.查詢多個字段

? ? ? ? 查詢多個字段只需要在字段名之間添加【,】。

(1)查詢員工編號、姓名

select emp_no, emp_name from employees;


(2)查詢部門編號、名稱、位置?

select dept_no, dept_name, location from departments;


4.查詢全部字段

? ? ? ? 可以使用【*】代表所有字段。

? ? ? ? 但是使用【*】效率低、可讀性差。

(1)查詢薪資等級全部字段

select * from salary_grades;


?5.查詢時進行數學運算

(1)查詢員工姓名、年薪

select emp_name, salary * 12 from employees;


6.查詢時起別名?

(1)查詢員工姓名、年薪

select emp_name, salary * 12 as year_salary from employees;


(2)查詢員工全部信息

? ? ? ? 別名可以省略 as ,也可以是中文,但是低版本 MySQL 會報錯,需要添加單引號或雙引號,推薦使用單引號。

? ? ? ? 別名詞組間想要添加空格,也需要使用引號。

 select emp_no as ID, emp_name as 姓名, job_title 職位, manager_id '領導ID', hire_date "入職日期", salary as 薪資, commission 津貼, dept_no '部門ID' from employees;


三、條件查詢?

1.過濾條件

條件說明
=等于
<> 或 !=不等于
>=大于等于
<=小于等于
>大于
<小于
between…and…等同于 >= and <=
is null為空
is not null不為空
<=>安全等于(較少使用)
and 或 &&
or 或 ||
in在指定值當中
not in不在指定值當中
like模糊查詢

2.語法格式

  1. select …… from …… where [過濾條件]; ;
  2. 執行順序:
    1. 先執行 from;
    2. 再執行 where;
    3. 最后執行 select。

3.等于/不等于

(1)查詢姓名為“JONES”的員工信息

select * from employees where emp_name = 'JONES';


(2) 查詢位置不在“NEW YORK”的部門信息

# 方式1
select * from departments where location != 'NEW YORK';# 方式2
select * from departments where location <> 'NEW YORK';


4.大于等于/小于等于/大于/小于

(1)查詢月薪 2000 以上的員工姓名和薪資

select emp_name, salary from employees where salary >= 2000;


(2)查詢最低薪資低于 1400 的薪資等級信息

select * from salary_grades where min_salary <= 1400;


5.and/between…and…/or

(1)查詢薪資在 1600~2500 之間的員工信息

# 方式1
select * from employees where salary >= 1600 and salary <= 2500;# 方式2
select * from employees where salary between 1600 and 2500;


(2)查詢職位是“CLERK”或“SALESMAN”的員工信息

select * from employees where job_title = 'CLERK' or job_title = 'SALESMAN';


(3)and 和 or 優先級

? ? ? ? and 和 or 同時出現時,and 優先級更高。若希望先執行 or,需要給 or 條件添加小括號。

? ? ? ? 此外,無論是 Java 還是 SQL 中,遇到優先級不確定的情況,都可以添加小括號解決。

? ? ? ? 下面給出一個實例:

? ? ? ? 查詢薪資低于 1500,且部門編號是 20 或 30 的員工信息。

select * from employees where salary <= 1500 and (dept_no = 20 or dept_no =30);


?6.is null/is not null

? ? ? ? 判斷某個數據是否為 null,不可以使用【=】,只能使用【is null】。因為在數據庫中, null 不是一個值,只是代表沒有值/數據。

(1)查詢沒有津貼的員工信息

select * from employees where commission is null;


7.in/not in

? ? ? ? in 和 not in 后邊有一個小括號,括號內有多個值,值與值之間用【,】分割,其并不代表區間。

(1)查詢職位是“ANALYST”、“PRESIDENT”、“MANAGER”的員工信息

select * from employees where job_title in('ANALYST', 'PRESIDENT', 'MANAGER');


(2)是否忽略 null

  1. in 自動忽略 null;
  2. not in 不會自動忽略 null。

? ? ? ? 上述兩條語句與下方兩條語句等價?,所以可知其是否會忽略 null。


8.模糊查詢

  1. 語法格式:【select…?from… where 字段 like '通配符表達式';】;
  2. 通配符:
    1. %:任意多個字符;
    2. _:任意一個字符。
  3. 如遇到模糊查詢的內容中也出現上述通配符的情況,需要使用【\】轉義。

(1)查詢姓名以 S 開頭的員工信息?

select * from employees where emp_name like 'S%';


(2)查詢姓名以 T 結尾的員工信息

select * from employees where emp_name like '%T';


(3)查詢姓名第二個字母是 A 的員工信息

select * from employees where emp_name like '_A%';

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/77980.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/77980.shtml
英文地址,請注明出處:http://en.pswp.cn/web/77980.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里云服務遷移實戰: 04-IP 遷移

普通過戶 如資料過戶按量付費EIP所述&#xff0c;如果原賬號是個人賬號&#xff0c;則目標賬號無限制&#xff0c;如果原賬號是企業賬號&#xff0c;則目標賬號必須為相同認證主體的企業賬號。 其主要操作就是&#xff0c;在原賬號發起過戶&#xff0c;在新賬號接收過戶。具體…

安恒安全培訓實習生,CTF方向面試題!

目均模擬真實CTF賽題&#xff0c;需結合動態調試與工具鏈&#xff08;pwntools/ROPgadget/one_gadget&#xff09;完成利用。 覆蓋棧、堆、格式化字符串、高級堆利用、沙箱逃逸五大方向&#xff0c;從基礎ROP到House of Apple&#xff0c;逐步提升對抗防護的能力。 題目1&…

【C++QT】Combo Box 組合框控件詳解

文章目錄 一、QComboBox&#xff08;Combo Box&#xff09;1. 基本用法2. 特性3. 信號與槽函數 二、QFontComboBox&#xff08;Font Combo Box&#xff09;1. 基本用法2. 特性3. 信號與槽函數 三、總結如果這篇文章對你有所幫助&#xff0c;渴望獲得你的一個點贊&#xff01; 在…

Best Video下載器——全能高清無水印視頻下載工具

在當今短視頻和流媒體盛行的時代&#xff0c;用戶經常遇到想要下載視頻卻受限于平臺限制的情況。無論是收藏喜歡的影視片段、保存有價值的教程&#xff0c;還是進行二次創作&#xff0c;一款高效、免費且支持多平臺的視頻下載工具顯得尤為重要。Best Video下載器正是為此而生&a…

AI音頻核爆!Kimi開源“六邊形戰士”Kimi-Audio,ChatGPT語音版?

音頻處理領域的天花板被撕開了。 剛剛&#xff0c;kimi 發布全新通用音頻基礎模型 Kimi-Audio&#xff0c;這款由月之暗面&#xff08;Moonshot AI&#xff09;推出的開源模型&#xff0c;在 24 小時內收獲 3.2 萬星標&#xff0c;不僅以 1.28% 詞錯率刷新語音識別紀錄&#xf…

安裝VMware虛擬機時出現報錯:

如果已在 BIOS/固件設置中禁用 Intel VT-x&#xff0c;或主機自更改此設置后從未重新啟動&#xff0c;則 Intel VT-x 可能被禁用。 1.解決的方法&#xff1a; BIOS 設置要求 為了使 VMware Workstation 支持用戶級別的監控并允許模塊 MonitorMode 成功啟動&#xff0c;需確保…

基于ESP32 S3 + PVDF采集呼吸心率

壓電薄膜可以采集到微動特征&#xff0c;壓阻傳感器可以采集到是否有大重量壓力&#xff0c;利用這個特性實現類似于床帶采集呼吸心率&#xff0c;實現生命體征檢測功能 ESP32 S3 PVDF實現生命體征檢測帶 硬件&#xff1a; ESP32 S3PVDF壓敏壓阻涂鴉傳感器&#xff08;可選支…

多模態大語言模型arxiv論文略讀(五十)

Pensieve: Retrospect-then-Compare Mitigates Visual Hallucination ?? 論文標題&#xff1a;Pensieve: Retrospect-then-Compare Mitigates Visual Hallucination ?? 論文作者&#xff1a;Dingchen Yang, Bowen Cao, Guang Chen, Changjun Jiang ?? 研究機構: 同濟大學…

智能駕駛新時代:NVIDIA高級輔助駕駛引領未來出行安全

智能駕駛新時代&#xff1a;NVIDIA高級輔助駕駛引領未來出行安全 在全球汽車產業數字化轉型的時代潮流中&#xff0c;高級輔助駕駛技術已逐漸成為推動產業革新的核心動力。作為這一領域的領導者之一&#xff0c;NVIDIA通過其先進的技術解決方案&#xff0c;正在積極塑造未來的…

總結小程序的坑

小程序中的wxss中 background不能使用本地圖片 解決方法&#xff1a; 使用 Base64 編碼&#xff08;適合小圖片&#xff09;使用網絡圖片&#xff0c; 網絡圖片需要用https用 image 標簽替代 分包的圖片主包不能使用&#xff0c;這是分包中的圖片資源默認不能被主包或其他分包直…

供應鏈管理-國際結算:本幣互換 / 數字貨幣橋 / 我國在沙特發行美債

一、本幣互換 本幣互換&#xff08;Local Currency Swap&#xff09;是指兩國&#xff08;或地區&#xff09;的央行&#xff08;貨幣當局&#xff09;簽訂協議&#xff0c;約定在一定條件下&#xff0c;任何一方可以一定數量的本幣交換等值的對方貨幣&#xff0c;用于雙邊貿易…

湖北理元理律師事務所:從法律視角看債務優化的合規實踐

在債務糾紛高發的社會背景下&#xff0c;法律服務機構如何通過合規手段幫助債務人實現債務優化&#xff0c;成為公眾關注的議題。湖北理元理律師事務所作為經國家司法局注冊登記的債事服務機構&#xff0c;其服務模式與成果為行業提供了可參考的樣本。 服務框架&#xff1a;法…

免費在Colab運行Qwen3-0.6B——輕量高性能實戰

Qwen一直在默默地接連推出新模型。 每個模型都配備了如此強大的功能和高度量化的規模,讓人無法忽視。 繼今年的QvQ、Qwen2.5-VL和Qwen2.5-Omni之后,Qwen團隊現在發布了他們最新的模型系列——Qwen3。 這次他們不是發布一個而是發布了八個不同的模型——參數范圍從6億到235…

【Java】打印運行環境中某個類引用的jar版本路徑

背景 正式環境出現jar版本不匹配問題&#xff0c;不知道正式環境用的哪個jar版本。通過一下可以打印出類調用的jar // 獲取 POIFSFileSystem 類的加載器并打印其來源路徑 ClassLoader classloaderPOIFS org.apache.poi.poifs.filesystem.POIFSFileSystem.class.getClassLoade…

Python生活手冊-元組:保險柜與瑞士軍刀

一、元組的本質&#xff1a;數據世界的保險柜 Python元組就像銀行金庫里的??智能保險箱??&#xff0c;一旦存放物品就會自動焊死箱門。當你把結婚戒指和房產證放進保險箱后&#xff0c;任何人都無法替換或破壞這些物品&#xff0c;只能通過特定窗口查看內容。 # 創建家庭…

dameng-mcp-server達夢MCP服務

達夢數據庫手寫MCP服務 文件名稱 server.py 源代碼 參考mysql-mcp-server寫的dameng數據庫版本的 點擊訪問mysql-mcp-server的github倉庫 mcp服務端 import asyncio import logging import os import sys from dmPython import connect from mcp.server import Server from mc…

IntelliJ IDEA 內存優化

優化插件使用 1&#xff09;卸載不必要插件&#xff1a;進入 “設置”→“插件”→“已安裝”&#xff0c;查看并卸載不常用的插件&#xff0c;如代碼分析、代碼覆蓋率等不常用的插件&#xff0c;只保留必要的插件。2&#xff09;定期清理與更新插件&#xff1a;定期檢查插件更…

TCL中環深化全球布局,技術迭代應對行業調整

在全球能源轉型加速與光伏行業深度調整的雙重背景下,TCL中環憑借前瞻性的全球化布局與核心技術突破,持續鞏固行業領先地位。2024年年報顯示,報告期內實現營業收入284.19億元,凈利潤為-108.06億元。面對行業周期性虧損與產業鏈價格非理性競爭帶來的業績壓力,公司自2024年下半年起…

dubbo 異步化實踐

DubboService public class AsyncOrderFacadeImpl implements AsyncOrderFacade {private Logger logger LoggerFactory.getLogger(AsyncOrderFacadeImpl.class);// 構建線程池ThreadPoolExecutor threadPoolExecutor new ThreadPoolExecutor(1000, 1000, 10, TimeUnit.SECOND…

CSS3布局方式介紹

CSS3布局方式介紹 CSS3布局(Layout)系統是現代網頁設計中用于構建頁面結構和控制元素排列的一組強大工具。CSS3提供了多種布局方式,每種方式都有其適用場景,其中最常用的是Flexbox和CSS Grid。 先看傳統上幾種布局方式,再較詳細的介紹現代布局方式Flexbox和CSS Grid。 傳…