SQL語句(一)基礎查詢與過濾數據


一、數據庫測試表

首先這里給出需要使用到的數據庫表:
鏈接:https://pan.baidu.com/s/17woahG6lupK9FYb3vFNJAg
提取碼:gbb4
里面是一個.sql文件,直接運行即可得到如下幾個測試表:

在這里插入圖片描述

二、基礎查詢

1. 獲得需要的記錄的特定字段

語法:SELECT后加上需要的結果映射到的字段,若為*則為選取所有字段。

#單個字段查詢
SELECT 	last_name 
FROM 	employees;
#多個字段
SELECT 	last_name, salary, email 
FROM 	employees;
#所有字段
SELECT 	* 
FROM 	employees;

2. 查詢常量值

#查詢常量值
SELECT 	100;
SELECT 	"john";

3. 查詢表達式

例:

SELECT 	100%98;

4. 查詢函數

例:

SELECT 	VERSION();
在這里插入圖片描述

5. 起別名

為查詢結果的列起一個新的名字,語法:

SELECT 	表中的列名 AS 自己起的新名字
FROM 	表名;

或者省略AS

SELECT 	表中的列名 自己起的新名字
FROM 	表名;

例:

SELECT 	last_name AS 姓, first_name AS 名 
FROM 	employees;

SELECT 	last_name 姓, first_name 名 
FROM 	employees;

6. 去重

SELECT 	DISTINCT 字段名
FROM 	表名;

實際過程:

  1. 查詢到對應的記錄
  2. 映射到對應的字段
  3. 最終結果去重

例:

SELECT 	DISTINCT department_id 
FROM 	employees;

7. CONCAT函數的簡單使用

SELECT 	CONCAT( last_name, first_name ) AS 姓名 
FROM 	employees;

實際過程:

  1. 到表中沒有這個字段,然后為所有的記錄添加這個新字段,內容為last_name字段和first_name字段的鏈接
  2. 查出相應的記錄
  3. 將所有記錄映射到姓名字段中

運行結果:

三、過濾數據

主要語法:

SELECT	查詢列表
FROM 	表名
WHERE	條件;

大綱

  • 按條件表達式篩選:
    • 簡單條件運算符: > < = != <> >= <=
  • 邏輯表達式:
    • && || !
    • AND OR NOT
  • 模糊查詢:
    • LIKE
      • 一般和通配符搭配使用
      • 通配符:
        • % 任意多個字符,包含0個字符
        • _ 任意單個字符
    • BETWEEN AND
      • 簡潔
      • 閉區間
      • 不可調換順序
    • IN
      • 簡潔
      • IN列表的值類型必須統一或兼容
    • IS NULL
      • 可用IS NULLIS NOT NULL來判斷是否為空

1. 按條件表達式篩選

查詢工資>12000的員工信息

SELECT 	* 
FROM 	employees 
WHERE 	salary > 12000;

查詢部門編號不等於90號的員工名和部門編號

SELECT 	last_name, department_id
FROM  	employees
WHERE 	department_id <> 90
ORDER BY department_id; #排序

2. 使用邏輯表達式

查詢工資在10000~20000之間的員工的員工名,工資及獎金

SELECT  last_name, salary, commission_pct
FROM 	employees
WHERE 	salary>=10000 AND salary<=20000;

部門編號不在90到110之間,或者工資高於15000的員工信息:

SELECT 	*
FROM 	employees
WHERE	department_id<90
       OR department_id>110
       OR salary>15000

SELECT  *
FROM  	employees
WHERE	NOT(department_id>=90 AND department_id<=110)
	OR salary>15000

3. 模糊查詢

LIKE

員工名中包含字符a的員工信息:

SELECT 	last_name
FROM  	employees
WHERE 	last_name LIKE '%a%';

在這里插入圖片描述
員工名中第三個字符為n,第五個字符為t的員工名和工資:

SELECT 	last_name, salary
FROM  	employees
WHERE 	last_name LIKE '__n_t%';

在這里插入圖片描述
員工名中第二個字符為_的員工名:

SELECT 	last_name
FROM 	employees
WHERE 	last_name LIKE '_$_%' ESCAPE '$';# 轉義

BETWEEN AND

員工編號在100到120之間的員工信息

SELECT 	*
FROM  	employees
WHERE 	employee_id >= 100 AND employee_id <= 120;
#================使用BETWEEN AND================
SELECT 	*
FROM  	employees
WHERE 	employee_id BETWEEN 100 AND 120;

IN

查詢員工的工種編號是IT_PROGAD_VPAD_PRES中的一個的員工名和工種編號

SELECT 	last_name, job_id
FROM 	employees
WHERE 	job_id IN ('IT_PROG','AD_VP','AD_PRES');

IS NULL

查詢沒有獎金的員工名和獎金律

SELECT 	last_name, commission_pct
FROM 	employees
WHERE 	commission_pct IS NULL;

查詢有獎金的員工名和獎金律

SELECT 	last_name, commission_pct
FROM 	employees
WHERE 	commission_pct IS NOT NULL;
在這里插入圖片描述

安全等於 <=>

SELECT 	last_name, commission_pct
FROM 	employees
WHERE 	commission_pct <=> NULL;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM