重新學習資料庫(1)

来源:https://www.cnblogs.com/Aegeansea666/archive/2022/07/18/16484379.html
-Advertisement-
Play Games

資料庫學習 1.簡單查詢 2022-07-13 測試腳本: drop TABLE emp;drop TABLE dept;drop TABLE salgrade;create table dept(deptno integer(4) not null,dname varchar(14),loc va ...


                                                                   資料庫學習

1.簡單查詢  2022-07-13

測試腳本:

drop TABLE emp;
drop TABLE dept;
drop TABLE salgrade;
create table dept
(
deptno integer(4) not null,
dname varchar(14),
loc varchar(13)
);
alter table dept add constraint pk_dept primary key (deptno);
create table emp
(
empno integer(4) not null,
ename varchar(10),
job varchar(9),
mgr integer(4),
hiredate date,
sal decimal(7,2),
comm decimal(7,2),
deptno integer(2)
);
alter table emp add constraint pk_emp primary key (empno);
alter table emp add constraint fk_deptno foreign key (deptno) references dept (deptno);
create table salgrade
(
grade integer(1),
losal decimal(7,2),
hisal decimal(7,2)
);
insert into DEPT (DEPTNO, DNAME, LOC) values (10, 'ACCOUNTING', 'NEW YORK');
insert into DEPT (DEPTNO, DNAME, LOC) values (20, 'RESEARCH', 'DALLAS');
insert into DEPT (DEPTNO, DNAME, LOC) values (30, 'SALES', 'CHICAGO');
insert into DEPT (DEPTNO, DNAME, LOC) values (40, 'OPERATIONS', 'BOSTON');
insert into SALGRADE (GRADE, LOSAL, HISAL) values (1, 700, 1200);
insert into SALGRADE (GRADE, LOSAL, HISAL) values (2, 1201, 1400);
insert into SALGRADE (GRADE, LOSAL, HISAL) values (3, 1401, 2000);
insert into SALGRADE (GRADE, LOSAL, HISAL) values (4, 2001, 3000);
insert into SALGRADE (GRADE, LOSAL, HISAL) values (5, 3001, 9999);
-- 下麵要特別註意,%d-%m-%Y 里的 d 和 m 一定要小寫
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7369, 'SMITH', 'CLERK', 7902, STR_TO_DATE('17-12-1980', '%d-%m-%Y'), 800.00, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7499, 'ALLEN', 'SALESMAN', 7698, STR_TO_DATE('20-02-1981', '%d-%m-%Y'), 1600.00, 300.00, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7521, 'WARD', 'SALESMAN', 7698, STR_TO_DATE('22-02-1981', '%d-%m-%Y'), 1250.00, 500.00, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7566, 'JONES', 'MANAGER', 7839, STR_TO_DATE('02-04-1981', '%d-%m-%Y'), 2975.00, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7654, 'MARTIN', 'SALESMAN', 7698, STR_TO_DATE('28-09-1981', '%d-%m-%Y'), 1250.00, 1400.00, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7698, 'BLAKE', 'MANAGER', 7839, STR_TO_DATE('01-05-1981', '%d-%m-%Y'), 2850.00, null, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7782, 'CLARK', 'MANAGER', 7839, STR_TO_DATE('09-06-1981', '%d-%m-%Y'), 2450.00, null, 10);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7788, 'SCOTT', 'ANALYST', 7566, STR_TO_DATE('19-04-1987', '%d-%m-%Y'), 3000.00, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7839, 'KING', 'PRESIDENT', null, STR_TO_DATE('17-11-1981', '%d-%m-%Y'), 5000.00, null, 10);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7844, 'TURNER', 'SALESMAN', 7698, STR_TO_DATE('08-09-1981', '%d-%m-%Y'), 1500.00, 0.00, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7876, 'ADAMS', 'CLERK', 7788, STR_TO_DATE('23-05-1987', '%d-%m-%Y'), 1100.00, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7900, 'JAMES', 'CLERK', 7698, STR_TO_DATE('03-12-1981', '%d-%m-%Y'), 950.00, null, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7902, 'FORD', 'ANALYST', 7566, STR_TO_DATE('03-12-1981', '%d-%m-%Y'), 3000.00, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7934, 'MILLER', 'CLERK', 7782, STR_TO_DATE('23-01-1982', '%d-%m-%Y'), 1300.00, null, 10);

單元概述

通過本章的學習能夠瞭解MySQL結構查詢語言的概念,掌握SELECT查詢語句的基本語法,掌握SELECT查詢語句中過濾條件的使用,掌握過濾條件中比較運算符和邏輯運算符的使用,掌握查詢結果的排序等

單元練習:

1. 查詢入職時間在1982-7-9之後,並且不從事SALESMAN工作的員工姓名、入職時間、職位。
SELECT ename,hiredate,job
FROM emp
WHERE hiredate>'1982-7-9'
AND job<> 'SALESMAN';
2. 查詢員工姓名的第三個字母是a的員工姓名。
SELECT ename
FROM emp
WHERE ename
LIKE '__a%';
3. 查詢除了10、20號部門以外的員工姓名、部門編號。
SELECT ename,deptno
FROM emp
WHERE deptno
not in (10,20);
4. 查詢部門號為30號員工的信息,先按工資降序排序,再按姓名升序排序。
SELECT *
FROM emp
WHERE deptno = 30
ORDER BY sal DESC, ename ASC;
5. 查詢沒有上級的員工(經理號為空)的員工姓名。
SELECT ename
FROM emp
WHERE mgr is null;
6. 查詢工資大於等於4500並且部門為10或者20的員工的姓名\工資、部門編號。
SELECT ename,sal,deptno
FROM emp
WHERE sal > 4500
AND deptno in (10,20);

課後練習:

  1. 查詢入職日期在82年至85年的員工姓名,入職日期。

  2. 查詢月薪在3000到5000的員工姓名,月薪。

  3. 查詢部門編號為10或者20的員工姓名,部門編號。

  4. 查詢經理編號為7902, 7566, 7788的員工姓名,經理編號

    SELECT ename,hiredate FROM emp WHERE hiredate BETWEEN '1982-01-01' AND '1985-12-31'

    SELECT ename,sal FROM emp WHERE sal BETWEEN 3000 and 5000

    SELECT ename,deptno FROM emp WHERE deptno IN (10,20)

    SELECT ename,mgr FROM emp WHERE mgr in (7902,7566,7788)

    1. 查詢員工姓名以W開頭的員工姓名。

    2. 查詢員工姓名倒數第2個字元為T的員工姓名。

    3. 查詢獎金為空的員工姓名,獎金。

      SELECT ename FROM emp WHERE ename LIKE 'W%'

      SELECT ename FROM emp WHERE ename LIKE '%T_'

      SELECT ename,comm FROM emp WHERE comm is null

    1.查詢工資超過2000並且職位是 MANAGER或SALESMAN的員工姓名、職位、工資

    SELECT ename,job,sal

    FROM emp WHERE hiredate >2000AND job IN ('MANAGER','SALESMAN')

     

     

  5. 查詢部門在10或者20,並且工資在3000到5000之間的員工姓名、部門、工資。

  6. 查詢入職日期在81年,並且職位不是SALES開頭的員工姓名、入職日期、職位。

  7. 查詢職位為SALESMAN或MANAGER,部門編號為10或者20,姓名包含A的員工姓名、職位、部門編號。

    SELECT ename,hiredate,salSELECT ename,hiredate,salFROM emp WHERE deptno in (10,20)and sal BETWEEN 3000 and 5000

    SELECT ename,hiredate,jobFROM emp WHERE hiredate LIKE '1981%'and job not like 'SALES%'

    SELECT ename,job,deptnoFROM empWHERE job in ('SALESMAN','MANAGER')AND deptno IN (10,20)AND ename LIKE '%A%'AND ename LIKE '%A%'

    1.查詢部門在20或30的員工姓名,部門編號,並按照工資升序排序。

    SELECT ename,deptno FROM emp WHERE deptno IN (20,30) ORDER BY sal ASC

    2.查詢工資在2000-3000之間,部門不在10號的員工姓名,部門編號,工資,並按照部門升序,工資降序排序。

    SELECT ename,deptno,sal FROM emp WHERE sal BETWEEN 2000 AND 3000 AND deptno <> 10 ORDER BY deptno ASC,sal DESC

    3.查詢入職日期在82年至83年之間,職位以SALES或者MAN開頭的員工姓名,入職日期,職位,並按照入職日期降序排序

    SELECT ename,hiredate,job FROM emp WHERE hiredate BETWEEN '1982-01-01' AND '1982-12-31'AND (job like 'SALES%' or job like 'MAN%') ORDER BY hiredate DESC

1.查詢入職日期最早的前5名員工姓名,入職日期

SELECT ename,hiredate FROM emp ORDER BY hiredate ASC LIMIT 0,5;

 

2.查詢20號部門下入職日期最早的前2名員工姓名,入職日期。

SELECT ename,hiredate FROM emp,dept WHERE emp.deptno=dept.deptno AND dept.deptno=20 ORDER BY hiredate ASC LIMIT 0,2;

 

3.按照每頁顯示5條記錄,分別查詢第1頁,第2頁,第3頁信息,要求顯示員工姓名、入職日期、部門編號 。

SELECT ename,hiredate,deptno FROM emp LIMIT 0,5

SELECT ename,hiredate,deptno FROM emp LIMIT 5,5

SELECT ename,hiredate,deptno FROM emp LIMIT 10,5

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Vim 可視化模式及其用法 背景 相信大家都使用過帶圖形界面的操作系統中的文字編輯器,用戶可以使用滑鼠來選擇要操作的文本,非常方便。在 Vim 編輯器中也有類似的功能,但不是通過滑鼠,而是通過鍵盤來選擇要操作的文本。 Vim可視化模式 在 Vim 中,如果想選中目標文本,就需要調整 Vim 進入可視 ...
  • axure mac 是專為UX專業人員和業務分析師設計的專業網站原型設計工具!可以幫助他們快速創建應用程式和網站的線框,原型和規格!新功能包括一系列廣泛的改進:全面的 UI,新的設計和文檔特征,以及將引擎優化到前所未有的程度。Axure RP將原型設計的成品交付給產品經理,業務分析師和用戶體驗專業人 ...
  • 極品飛車14:熱力追蹤是一款非常有趣的競速賽車游戲,現為大家帶來的是內附完美存檔版,游戲將在全新的開放地圖中解鎖新的跑車及裝備,快來游戲中體驗賽車的樂趣吧,游戲非常炫酷,喜歡賽車游戲的朋友一定不要錯過! 詳情:極品飛車14:熱力追蹤 for Mac(競速賽車游戲)附完美存檔 游戲模式 生涯模式 《極 ...
  • 喜歡玩地鐵酷跑的玩家,可以試試這款Subway Surfers Tag Mac,又名地鐵衝浪,是一款頗受歡迎的休閑跑酷類游戲,您可以選擇在鐵路場、公園、碼頭和地下等挑戰酷跑衝浪,超炫酷,喜歡的朋友不要錯過哦~ 詳情:Subway Surfers Tag for mac(地鐵跑酷游戲) 游戲介紹 在鐵 ...
  • 鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 源碼包編譯實例 下麵通過編譯安裝httpd來深入理解源碼包安裝(httpd-2.4.54) 下載編譯工具,httpd以及其兩個依賴包的源碼包 //源碼包建議到官方網站下載 [root@lnh ~]# mkdir xbz [root@lnh ~]# ...
  • 更多技術交流、求職機會、試用福利,歡迎關註位元組跳動數據平臺微信公眾號,回覆【1】進入官方交流群 需求背景 數據探查上線之前,數據驗證都是通過寫 SQL 方式進行查詢的,從編寫 SQL,到解析運行出結果,不僅時間長,還會反覆消耗計算資源,探查上線後,只需要一次探查,就可以得到整張表的探查報告,但後續我 ...
  • mysql 1.什麼是資料庫 資料庫:(DB,DataBase) 作用:用來存儲數據,管理數據。Txt,Excel,word是在資料庫出現之前存儲數據的。 概念:數據倉庫,安裝在操作系統上的軟體。 資料庫是所有軟體體系中最核心的存在 2.資料庫分類 關係型資料庫(SQL) Mysql,oracle, ...
  • #資料庫設計案例 ##描述:簡單構建設計資料庫 ##sql代碼實現 /* 資料庫設計案例 */ -- 音樂表 CREATE TABLE Music ( title VARCHAR (32), -- 專輯名 alias VARCHAR (32), -- 專輯別名 image VARCHAR (64), ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...