頭歌實踐教學平臺--【數據庫概論】--SQL

一、表結構與完整性約束的修改(ALTER)

1.修改表名

USE TestDb1;
alter table your_table rename TO my_table;

2.添加與刪除字段

#語句1:刪除表orderDetail中的列orderDate
alter table orderDetail drop orderDate;
#語句2:添加列unitPrice
alter table orderDetail add unitPrice numeric(10,2);

3.修改字段

#請在以下空白處添加適當的SQL語句,實現編程要求
alter table addressBook modify column QQ char(12);
alter table addressBook rename column weixin to wechat;

4.添加、刪除與修改約束

二、?單表查詢(簡單比較,in,范圍查詢)

1.基本查詢語句

-- 任務1: 查詢雇員(staff)的全部信息
-- 請在此處添加實現代碼
select * from staff;
-- 任務2: 查詢全部雇員(staff)的姓名(sname)、出生日期(dob)和手機號碼(mobile)
-- 請在此處添加實現代碼
select sname,dob,mobile from staff;
-- EOF

2.對查詢的結果排序

-- 任務1: 寫出能完成以下任務的語句:
-- 查詢所有雇員的姓名,性別,手機號。按年齡降序排列,即年齡越大的越靠前。
-- 請在此處添加實現代碼
select sname,gender,mobile
from staff
order by dob asc;

3.帶比較條件的查詢

-- 任務1: 寫出能完成以下人物的sql語句:
-- 查詢格力空調的型號和價格,依價格升序排列。
-- 請在此處添加實現代碼
select model,price 
from products
where manufacturer='格力'
order by price asc;

4.帶IN關鍵字的查詢

-- 任務1: 寫出能完成以下查詢任務的SQL語句:
-- 查詢10,40,70號產品(空調)的型號、生產廠家和價格,依價格從低到高排序。
-- 請在此處添加實現代碼
select model,manufacturer,price
from products
where pid in(10,40,70)
order by price asc;

5.帶BETWEEN AND關鍵字的查詢

-- 任務1: 寫出可以完成以下查詢任務的sql語句:
-- 查詢價格在2000到3000之間的所有空調的型號,生產廠家和價格。依價格從低到高排序。
-- 請在此處添加實現代碼
select model,manufacturer,price
from products
where price  between 2000 and 3000
order by price;

三、單表查詢(模式匹配,null,去重,and,or)

1.帶LIKE 的字符匹配查詢

-- 實現以下查詢的SQL語句:
-- 查詢1.5匹,即功率3500W的冷暖空調,列出型號,生產廠家和價格,依價格從低到高排序。
-- 請在此處添加實現代碼
select model,manufacturer,price
from products
where model like 'KFR%_35%'
order by price;

2.帶RLIKE 的字符匹配查詢

-- 實現以下查詢的SQL語句:
-- 查詢分體式室熱泵制熱冷暖雙制,制冷量7200W或6000W的落地式空調的型號、生產廠家和價格,查詢結果依價格從低到高排序輸出。
-- 請在此處添加實現代碼:
select model,manufacturer,price
from products
where model rlike '^KFR-(72|60)LW.*' 
order by price;

3.. 查詢空值與去除重復結果

-- 任務1:查查詢產品表(products)表中,有多少廠家(manufacturer)的產品,一個廠家只列一次,即便該廠家有多個型號的產品。查詢結果依廠家名稱排序輸出。
-- 請在此處添加實現代碼
select distinct manufacturer
from products
order by manufacturer;
-- 任務2:查詢出生日期(出生日期)未填寫(值為NULL)的員工編號,姓名。查詢結果依姓名排序輸出。
-- 請在此處添加實現代碼
select sid,sname
from staff
where dob is null
order by sname;

4.帶 AND 與 OR 的多條件查詢

-- 查詢“美的”、“格力”或 “志高”價格在3000(含)以下,功率為3500W的空調信息,列出廠家,型號,價格。查詢結果依價格從低到高排序。
-- 請在此處添加實現代碼
select manufacturer,model,price
from products
where manufacturer in('美的', '格力','志高' )and price<=3000 and model like 'KF%_35%'
order by price;

四、單表查詢(統計總和,平均,最大,最小)

1.COUNT( )函數及對計算列重命名

-- 查詢2023年國慶長假期間(9-29至10-6)共有多少員工共完成了多少筆銷售交易,涉及多少個型號的空調。統計結果分別命名為:人數,筆數,型號數。
-- 請在此處添加實現代碼
select count(distinct sid) as '人數',
count(rid) as '筆數',
count(distinct pid) as '型號數'
from sales_record
where sdate between '2023-9-29' and '2023-10-6';

2.SUM( )函數

-- 查詢7號員工2023年上半年共銷售了幾個型號的總共多少臺空調?統計結果分別命名為:“型號數”、“總臺數”。
-- 請在此處添加實現代碼
select 
count(distinct pid) as '型號數',
sum(quantity) as '總臺數'
from sales_record
where sid='7' and sdate between '2023-1-1' and '2023-6-30' ;

3. AVG( )函數

-- 查詢產品表中制冷量3500W室內分體空調的平均價格,對均價取整,并命名為:“均價”。
-- 請在此處添加實現代碼
select round(avg(price)) as '均價'
from products
where model rlike '^KF[RD]?-35[DGLTQ]W.*'

4.MAX( )函數

-- 查詢產品表中制冷量7200W室內分體落地式冷暖空調的最高價,并命名為:“最高價”。。
-- 請在此處添加實現代碼
select max(price) '最高價'
from products
where model rlike '^KF[RD]?-72LW.*'

5.MIN( )函數

-- 查詢產品表中制冷量3500W室內分體壁掛式冷暖空調的最低價,并命名為:“最低價”。
-- 請在此處添加實現代碼
select min(price) '最低價'
from products
where model rlike '^KFR-35GW.*'

五、單表查詢(分組統計,限定輸出行數)

1. 使用 limit 限制查詢結果的數量

-- 查詢產品表中制冷量3500W室內分體壁掛式冷暖空調的價格個最低的三個產品的廠家,型號和價格。按價格從低到高排序。。
-- 請在此處添加實現代碼
select manufacturer,model,price
from products
where model rlike '^KF[RD]?-35GW.*'
order by price asc
limit 0,3;

2. 分組統計查詢(group by)

-- 統計每個空調廠家,制冷功率為3500W的空調平均價格(取整)。結果表的標題分別為:“廠家”,“平均價格”。查詢結果依生產廠家名稱排序。
-- 請在此處添加實現代碼
select manufacturer as '廠家', round(avg(price)) as'平均價格'
from products
where model rlike '^KF[R]?-35[DGLTQ]W.*'
group by manufacturer 
order by 廠家;

3. 對分組統計的結果再篩選(having)

-- 查詢2023國慶長假期間(9月29日到10月6日)所有員工銷售空調的總臺數,并按銷售量從高到底排序。只輸出總臺數超過20(含)臺數的結果。總臺數命名為total。
-- 請在此處添加實現代碼
select sid,sum(quantity) as total
from sales_record where sdate between '2023-9-29' and '2023-10-6'
group by sid 
having total>=20
order by total desc;

六、連接查詢(內連,外連,多表分組統計)

1.內連接查詢

-- 查詢2023年國慶小長假期間(9月29日到10月6日)的銷售明細,包括:型號(model),廠家(manufacturer),數量(qunantity), 單價(price)和折扣(discount)。查詢結果依銷售記錄號(rid)排序。
-- 請在此處添加實現代碼
select model,manufacturer,quantity,price,discount
from products inner join sales_record on products.pid=sales_record.pid
where sdate between '2023-9-29' and '2023-10-6'
order by rid;

2.外連接查詢

-- 查詢2023年國慶節小長假期間(9月29日到10月6日)“格力”空調的銷售明細,包括:型號(model),數量(qunantity), 單價(price)和折扣(discount)。沒有銷售記錄的型號也要包括在查詢結果中。查詢結果按產品號(pid)排序,產品號相同時,再依銷售記錄號(rid)排序。
-- 請在此處添加實現代碼
select model,quantity,price,discount
from products left join sales_record on products.pid=sales_record.pid 
and sdate between '2023-9-29' and '2023-10-6'
where manufacturer='格力'
order by products.pid,rid;

3.多表連接查詢

-- 統計各位銷售人員在2023年國慶節小長假期間(9月29日到10月6日)期間的銷售業績(即銷售總金額),列出銷售人員姓名,銷售額(命名為total)。依銷售額從高到低排序。
-- 請在此處添加實現代碼
select sname,sum(quantity*price *discount) as total 
from staff,products,sales_record
where sales_record.sid=staff.sid and sales_record.pid=products.pid and sdate between '2023-9-29' and '2023-10-6'
group by staff.sid
order by total desc;

七、子查詢(in,exists,子查詢的位置,分組統計)

1. 帶IN謂詞的子查詢

-- 查詢“鄭點”沒有賣過那些廠家的空調。結果依廠家名字排序。
-- 請在此處添加實現代碼
select distinct manufacturer 
from products
where manufacturer not in(select distinct manufacturerfrom productsinner join sales_record on products.pid=sales_record.pidinner join staff on sales_record.sid=staff.sidwhere sname='鄭點'
)
order by manufacturer;

2. 帶EXISTS謂詞的子查詢

-- 被1-9號(正式)員工都賣過的產品(空調)編號,型號,生產廠家和價格。結果依產品號排序。
-- 請在此處添加實現代碼
select p.pid,p.model,p.manufacturer,p.price
from products p
inner join sales_record sr on p.pid=sr.pid
inner join staff s on sr.sid=s.sid
where s.sid between 1 and 9
group by p.pid,p.model,p.manufacturer
having count(distinct s.sid)=9
order by p.pid;

3. 復雜子查詢及分組統計

--  統計每個廠家空調的型號數,其中單冷總型號數,冷暖總型號數。統計結果按總型號數從高到底排列。列出內容:
--  生產廠家:manufacturer
--  總型號數: model_total
--  單冷型號數:single_total
--  冷暖型號數:dual_total
select manufacturer,
count(distinct model) as model_total,
count(distinct case when model regexp '^KF-[0-9]{2}[DGLTQ]W.*' then model end) as single_total,
count(distinct case when model regexp '^KF[RD]-[0-9]{2}[DGLTQ]W.*' then model end) as dual_total
from products
group by manufacturer
order by model_total desc;

八、數據的插入、修改與刪除(Insert,Update,Delete)

1. 插入多條完整的客戶信息

-- 用insert語句向客戶表(client)插入任務要求的3條數據:
insert into client(c_id,c_name,c_mail,c_id_card,c_phone,c_password)
values(1,'林惠雯','960323053@qq.com','411014196712130323','15609032348','Mop5UPkl'),
(2,'吳婉瑜','1613230826@gmail.com','420152196802131323','17605132307','QUTPhxgVNlXtMxN'),
(3,'蔡貞儀','252323341@foxmail.com','160347199005222323','17763232321','Bwe3gyhEErJ7');

2. 插入不完整的客戶信息

-- 已知33號客戶部分信息如下:
-- c_id(編號):33
-- c_name(名稱):蔡依婷
-- c_phone(電話):18820762130
-- c_id_card(身份證號):350972199204227621
-- c_password(密碼):MKwEuc1sc6-- 請用一條SQL語句將這名客戶的信息插入到客戶表(client):
insert into client(c_id,c_name,c_phone,c_id_card,c_password)
value(33,'蔡依婷','18820762130','350972199204227621','MKwEuc1sc6');

3. 批量插入數據

-- 已知表new_client保存了一批新客戶信息,該表與client表結構完全相同。請用一條SQL語句將new_client表的全部客戶信息插入到客戶表(client):
insert into client
select *
from new_client;

4. 刪除沒有銀行卡的客戶信息

-- 請用一條SQL語句刪除client表中沒有銀行卡的客戶信息:
delete from client
where not exists(select 1from bank_cardwhere bank_card.b_c_id=client.c_id
);

5. 凍結客戶資產

-- 請用一條update語句將手機號碼為“13686431238”的這位客戶的投資資產(理財、保險與基金)的狀態置為“凍結”。:
update client
inner join property on client.c_id=property.pro_c_id
set property.pro_status='凍結'
where client.c_phone='13686431238'
and property.pro_type in(1,2,3);

6.連接更新

-- 在金融應用場景數據庫中,已在表property(資產表)中添加了客戶身份證列,列名為pro_id_card,類型為char(18),該列目前全部留空(null)。-- 請用一條update語句,根據client表中提供的身份證號(c_id_card),填寫property表中對應的身份證號信息(pro_id_card)。
update property join client as c on property.pro_c_id=c.c_id
set property.pro_id_card=c.c_id_card;

九、視圖

1. 創建所有保險資產的詳細記錄視圖

-- 創建包含所有保險資產記錄的詳細信息的視圖v_insurance_detail,包括購買客戶的名稱、客戶的身份證號、保險名稱、保障項目、商品狀態、商品數量、保險金額、保險年限、商品收益和購買時間。
-- 請用1條SQL語句完成上述任務:
create view v_insurance_detail as select c_name,c_id_card,i_name,i_project,pro_status,pro_quantity,i_amount,i_year,pro_income,pro_purchase_time from (select * from (select * from (select * from client union select * from client new_client) a join property b on a.c_id = b.pro_c_id) c join insurance d on c.pro_pif_id = d.i_id) e where e.pro_type = '2';

2. 基于視圖的查詢

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

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

相關文章

在 React 中,組件之間傳遞變量的常見方法

目錄 1. **通過 Props 傳遞數據**2. **通過回調函數傳遞數據**3. **通過 Context API 傳遞數據**4. **通過 Redux 管理全局狀態**5. **通過事件總線&#xff08;如 Node.js 的 EventEmitter&#xff09;**6. **通過 Local Storage / Session Storage**7. **通過 URL 查詢參數傳…

Redis + 布隆過濾器解決緩存穿透問題

Redis 布隆過濾器解決緩存穿透問題 1. Redis 布隆過濾器解決緩存穿透問題 &#x1f4cc; 什么是緩存穿透&#xff1f; 緩存穿透指的是查詢的數據既不在緩存&#xff0c;也不在數據庫&#xff0c;導致每次查詢都直接訪問數據庫&#xff0c;增加數據庫壓力。 例如&#xff1…

Vue動態添加或刪除DOM元素:購物車實例

Vue 指令系列文章: 《Vue插值:雙大括號標簽、v-text、v-html、v-bind 指令》 《Vue指令:v-cloak、v-once、v-pre 指令》 《Vue條件判斷:v-if、v-else、v-else-if、v-show 指令》 《Vue循環遍歷:v-for 指令》 《Vue事件處理:v-on 指令》 《Vue表單元素綁定:v-model 指令》…

vue h5實現車牌號輸入框

哈嘍&#xff0c;大家好&#xff0c;最近鵬仔開發的項目是學校校內車輛超速方面的統計檢測方面的系統&#xff0c;在開發過程中發現有個小功能&#xff0c;就是用戶移動端添加車牌號&#xff0c;剛開始想著就一個輸入框&#xff0c;提交時正則效驗一下格式就行&#xff0c;最后…

硬件基礎(5):(3)二極管的應用

文章目錄 [toc]1. **整流電路****功能**&#xff1a;**工作原理**&#xff1a;**應用實例**&#xff1a;電路組成&#xff1a;整流過程&#xff1a;電路的應用&#xff1a; 2. **穩壓電路****功能**&#xff1a;**工作原理**&#xff1a;**應用實例**&#xff1a;電路組成及功能…

Wireshark網絡抓包分析使用詳解

序言 之前學計網還有前幾天備考華為 ICT 網絡賽道時都有了解認識 Wireshark&#xff0c;但一直沒怎么專門去用過&#xff0c;也沒去系統學習過&#xff0c;就想趁著備考的網絡相關知識還沒忘光&#xff0c;先來系統學下整理點筆記~ 什么是抓包&#xff1f;抓包就是將網絡傳輸…

安心聯車輛管理平臺源碼價值分析

安心聯車輛管理平臺源碼的價值可從技術特性、功能覆蓋、市場適配性、擴展潛力及商業化支持等多個維度進行分析。以下結合實際應用進行詳細解讀&#xff1a; 一、技術架構與開發優勢 主流技術棧與高性能架構 源碼采用成熟的前后端分離架構&#xff0c;后端基于Java技術&#xff…

【操作系統】Docker如何使用-續

文章目錄 1、概述2、鞏固知識2.1、基礎命令2.2、容器管理2.3、鏡像管理2.4、網絡管理2.5、Compose 3、常用命令 1、概述 在使用Docker的過程中&#xff0c;掌握常用的命令是至關重要的。然而&#xff0c;隨著時間的推移&#xff0c;我們可能會遺忘一些關鍵的命令或對其用法變得…

ElementUI el-menu導航開啟vue-router模式

有沒有小伙伴遇到這么一種情況&#xff1a;ElementUI el-menu導航中&#xff0c;開啟vue-router 的模式后&#xff0c;點擊觸發事件而不進行路由跳轉&#xff1f; 別慌&#xff01;下面直接說解決方案&#xff1a; 借助路由守衛進行判斷 給el-menu綁定切換事件&#xff0c;給…

【leetcode hot 100 17】電話號碼的字母組合

分析&#xff1a;當設計關鍵字“所有組合”時&#xff0c;要考慮深度優先遍歷、廣度優先遍歷&#xff08;層次遍歷&#xff09;&#xff0c;其中&#xff1a; 深度優先搜索&#xff1a; 自頂向下的遞歸實現深搜定義子問題在當前遞歸層結合子問題結果解決原問題 廣度優先搜索 利…

Vue 2 探秘:visible 和 append-to-body 是誰的小秘密?

&#x1f680; Vue 2 探秘&#xff1a;visible 和 append-to-body 是誰的小秘密&#xff1f;&#x1f914; 父組件&#xff1a;identify-list.vue子組件&#xff1a;fake-clue-list.vue 嘿&#xff0c;各位前端探險家&#xff01;&#x1f44b; 今天我們要在 Vue 2 的代碼叢林…

C++學習之路:從頭搞懂配置VScode開發環境的邏輯與步驟

目錄 編輯器與IDE基于vscode的C開發環境配置1. 下載vscode、淺嘗編譯。番外篇 2. 安裝插件&#xff0c;賦能編程。3. 各種json文件的作用。c_cpp_properties.jsontask.jsonlaunch.json 總結&&彩蛋 編輯器與IDE 上一篇博客已經介紹過了C程序的一個編譯流程&#xff0c;從…

PPT 轉高精度圖片 API 接口

PPT 轉高精度圖片 API 接口 文件處理 / 圖片處理&#xff0c;將 PPT 文件轉換為圖片序列。 1. 產品功能 支持將 PPT 文件轉換為高質量圖片序列&#xff1b;支持 .ppt 和 .pptx 格式&#xff1b;保持原始 PPT 的布局和樣式&#xff1b;轉換后的圖片支持永久訪問&#xff1b;全…

VSCode 抽風之 兩個conda環境同時在被激活

出現了神奇的(toolsZCH)(base) 提示符&#xff0c;如下圖所示&#xff1a; 原因大概是&#xff1a;conda 環境的雙重激活&#xff1a;可能是 conda 環境沒有被正確清理或初始化&#xff0c;導致 base 和 toolsZCH 同時被激活。 解決辦法就是 &#xff1a;conda deactivate 兩次…

git | 回退版本 并保存當前修改到stash,在進行整合。[git checkout | git stash 等方法 ]

目錄 一些常見命令&#xff1a; git 回退版本 一、臨時回退&#xff08;不會修改歷史&#xff0c;可隨時回到當前版本&#xff09; 方法1&#xff1a;git checkout HEAD~1 問題&#xff1a;處于 detached HEAD 狀態下提交的&#xff0c;無法直接 git push ? 選項 1&…

如何使用 Postman 進行接口測試?

使用 Postman 這一工具&#xff0c;可以輕松地進行接口測試。以下是一份簡單的使用教程&#xff0c;幫助你快速上手。 Postman 接口測試教程&#xff1a;詳細步驟及操作技巧

寫作軟件新體驗:讓文字創作更高效

一、開篇引入:寫作難題的破解之道 在當今信息爆炸的時代,寫作成為了我們生活和工作中不可或缺的一部分。然而,面對繁瑣的寫作任務,我們時常感到力不從心,甚至陷入創作的瓶頸。那么,有沒有一款軟件能夠幫助我們破解這一難題,讓文字創作變得更加高效和輕松呢?答案是肯定…

大模型思維鏈COT:Chain-of-Thought Prompting Elicits Reasoningin Large Language Models

一、TL&#xff1b;DR 探索了COT&#xff08;chain-of-thought prompting&#xff09;通過一系列的中間推理步驟來顯著的提升了LLM的復雜推理能力在三個大型語言模型上的實驗表明&#xff0c;思維鏈提示能夠提升模型在一系列算術、常識和符號推理任務上的表現解釋了一下為什么…

systemd-networkd的配置文件的優先級 筆記250325

systemd-networkd的配置文件的優先級 systemd-networkd的配置文件優先級規則如下&#xff1a; 1. 目錄優先級 配置文件按以下目錄順序加載&#xff08;優先級從高到低&#xff09;&#xff1a; /etc/systemd/network&#xff08;用戶自定義配置&#xff0c;最高優先級&#x…

詳細說明windows系統函數::SetUnhandledExceptionFilter(ExceptionFilter)

::SetUnhandledExceptionFilter(ExceptionFilter); 是 Windows 編程中用于設置頂層未處理異常過濾器的關鍵 API 調用。它屬于 Windows 結構化異常處理&#xff08;SEH, Structured Exception Handling&#xff09;機制的一部分&#xff0c;主要用于捕獲那些未被程序內部處理的異…