From 4d0fca75268b5bf1cae70152cdab200be5f34263 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E7=8E=AE=E5=96=86?= Date: Tue, 20 Sep 2022 22:51:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=AC=A1=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../0919\344\275\234\344\270\232.sql" | 43 ++++ ...0-\345\255\220\346\237\245\350\257\242.md" | 190 ++++++++++++++++++ 2 files changed, 233 insertions(+) create mode 100644 "04\351\203\221\347\216\256\345\226\206/\347\254\254\344\270\211\346\254\241\344\275\234\344\270\232/0919\344\275\234\344\270\232.sql" create mode 100644 "04\351\203\221\347\216\256\345\226\206/\347\254\254\344\270\211\346\254\241\344\275\234\344\270\232/0919\347\254\224\350\256\260-\345\255\220\346\237\245\350\257\242.md" diff --git "a/04\351\203\221\347\216\256\345\226\206/\347\254\254\344\270\211\346\254\241\344\275\234\344\270\232/0919\344\275\234\344\270\232.sql" "b/04\351\203\221\347\216\256\345\226\206/\347\254\254\344\270\211\346\254\241\344\275\234\344\270\232/0919\344\275\234\344\270\232.sql" new file mode 100644 index 0000000..f8f718f --- /dev/null +++ "b/04\351\203\221\347\216\256\345\226\206/\347\254\254\344\270\211\346\254\241\344\275\234\344\270\232/0919\344\275\234\344\270\232.sql" @@ -0,0 +1,43 @@ +--* 关羽的银行卡号为"6225547858741263",查询出余额比关羽多的银行卡信息,显示卡号,身份证,姓名,余额。 +select CardNo,AccountCode,RealName,CardMoney from BankCard +join AccountInfo on AccountInfo.AccountId = BankCard.AccountId +where CardMoney > +(select CardMoney from BankCard where CardNo = '6225547858741263') + +--* 从所有账户信息中查询出余额最高的交易明细(存钱取钱信息)。 +select CardExchange.* from +(select CardNo,CardMoney,dense_rank() over (order by CardMoney desc) rank from BankCard) rk +join CardExchange on CardExchange.CardNo = rk.CardNo +where rank = 1 + +--* 查询有取款记录的银行卡及账户信息,显示卡号,身份证,姓名,余额。 +select CardMoney,AccountCode,RealName,CardMoney from BankCard +join AccountInfo on AccountInfo.AccountId = BankCard.AccountId +where CardNo in +(select CardNo from CardExchange +where MoneyOutBank > 0) + +--* 查询出没有存款记录的银行卡及账户信息,显示卡号,身份证,姓名,余额。 +select CardMoney,AccountCode,RealName,CardMoney from BankCard +join AccountInfo on AccountInfo.AccountId = BankCard.AccountId +where CardNo in +(select CardNo from CardExchange +where MoneyOutBank = 0) + +--* 关羽的银行卡号为"6225547858741263",查询当天是否有收到转账。 +select * from CardExchange +where CardNo = '6225547858741263' + +--* 查询出交易次数(存款取款操作)最多的银行卡账户信息,显示:卡号,身份证,姓名,余额,交易次数。 +select rk.CardNo,AccountCode,RealName,CardMoney from +(select CardNo,count(CardNo) record,dense_rank() over (order by count(CardNo) desc) rank from CardExchange +group by CardNo) rk +join BankCard on BankCard.CardNo = rk.CardNo +join AccountInfo on BankCard.AccountId = AccountInfo.AccountId +where rank = 1 + +--* 查询出没有转账交易记录的银行卡账户信息,显示卡号,身份证,姓名,余额。 +select CardNo,AccountCode,RealName,CardMoney from BankCard +left join CardTransfer on CardTransfer.CardNoIn = BankCard.CardNo or CardTransfer.CardNoOut = BankCard.CardNo +join AccountInfo on AccountInfo.AccountId = BankCard.AccountId +where CardTransfer.TransferId is null \ No newline at end of file diff --git "a/04\351\203\221\347\216\256\345\226\206/\347\254\254\344\270\211\346\254\241\344\275\234\344\270\232/0919\347\254\224\350\256\260-\345\255\220\346\237\245\350\257\242.md" "b/04\351\203\221\347\216\256\345\226\206/\347\254\254\344\270\211\346\254\241\344\275\234\344\270\232/0919\347\254\224\350\256\260-\345\255\220\346\237\245\350\257\242.md" new file mode 100644 index 0000000..821c5c1 --- /dev/null +++ "b/04\351\203\221\347\216\256\345\226\206/\347\254\254\344\270\211\346\254\241\344\275\234\344\270\232/0919\347\254\224\350\256\260-\345\255\220\346\237\245\350\257\242.md" @@ -0,0 +1,190 @@ +# SQL SERVER + +## 1銆佸缓搴撳缓琛ㄥ嚱鏁 + +### 鏂板缓鏁版嵁搴 + +create database '鏁版嵁搴撳悕'; + +### 鍒犻櫎鏁版嵁搴 + +drop database if exists '鏁版嵁搴撳悕'; + +### 浣跨敤鏁版嵁搴 + +use 鏁版嵁搴撳悕; + +### 鏂板缓琛 + +create table '琛ㄥ悕' ( + + row_name 鏁版嵁绫诲瀷(闀垮害,灏忔暟鐐) unique primary key auto_increment comment '涓婚敭' + + row_name 鏁版嵁绫诲瀷(闀垮害,灏忔暟鐐) default 榛樿鍊 not null comment ''; + + foreign key(`row_name`) references `table_name`(`row_name`) + +### 鍒犻櫎琛 + +drop database if exists '琛ㄥ悕'; + +## 2銆佸鍒犳敼鏌 + +### 2.1銆佸熀鏈鍙 + +#### 鏌ヨ璁板綍 + +```sql +select * from `table_name` +``` + +#### 鍒犻櫎璁板綍 + +```sql +delete from `table_name`; +delete from `table_name` where `row_name = values; +``` + +#### 鏂板璁板綍 + +```sql +insert into `table_name` (`row_name1`,`row_name2`,...) values (value1,value2,...),(value1,value2,...); +``` + +### 2.2銆佹潯浠舵煡璇 + +#### SQL涓父鐢ㄨ繍绠楃 + +```sql +=锛氱瓑浜庯紝姣旇緝鏄惁鐩哥瓑鍙婅祴鍊 +!=锛氭瘮杈冧笉绛変簬 +>锛氭瘮杈冨ぇ浜 +<锛氭瘮杈冨皬浜 +>=锛氭瘮杈冨ぇ浜庣瓑浜 +<=锛氭瘮杈冨皬浜庣瓑浜 +IS NULL锛氭瘮杈冧负绌 +IS NOT NULL锛氭瘮杈冧笉涓虹┖ +in锛氭瘮杈冩槸鍚﹀湪鍏朵腑 +like锛氭ā绯婃煡璇 +BETWEEN...AND...锛氭瘮杈冩槸鍚﹀湪涓よ呬箣闂 50-100 BETWEEN 50 AND 100 +and锛氶昏緫涓庯紙涓や釜鏉′欢鍚屾椂鎴愮珛琛ㄨ揪寮忔垚绔嬶級 +or锛氶昏緫鎴栵紙涓や釜鏉′欢鏈変竴涓垚绔嬭〃杈惧紡鎴愮珛锛 +not锛氶昏緫闈烇紙鏉′欢鎴愮珛锛岃〃杈惧紡鍒欎笉鎴愮珛锛涙潯浠朵笉鎴愮珛锛岃〃杈惧紡鍒欐垚绔嬶級 +``` + +#### 妯$硦鏌ヨ + +妯$硦鏌ヨ浣跨敤like鍏抽敭瀛楀拰閫氶厤绗︾粨鍚堟潵瀹炵幇锛岄氶厤绗﹀叿浣撳惈涔夊涓嬶細 + +```sql +%锛氫唬琛ㄥ尮閰0涓瓧绗︺1涓瓧绗︽垨澶氫釜瀛楃銆 +_锛氫唬琛ㄥ尮閰嶆湁涓斿彧鏈1涓瓧绗︺ +[]锛氫唬琛ㄥ尮閰嶈寖鍥村唴 +[^]锛氫唬琛ㄥ尮閰嶄笉鍦ㄨ寖鍥村唴 +``` + +## 3銆丼QL鍑芥暟 + +### case锛 + +CASE璇彞鏈変袱绉嶅舰寮忥細绗竴绉嶈瘎浼颁竴涓垨澶氫釜鏉′欢锛屽苟杩斿洖绗竴涓鍚堟潯浠剁殑缁撴灉銆 濡傛灉娌℃湁鏉′欢鏄鍚堢殑锛屽垯杩斿洖ELSE瀛愬彞閮ㄥ垎鐨勭粨鏋滐紝濡傛灉娌℃湁ELSE閮ㄥ垎锛屽垯杩斿洖NULL锛 + +```sql +CASE +聽聽聽聽WHEN condition1 THEN result1 +聽聽聽聽WHEN condition2 THEN result2 +聽聽聽聽WHEN conditionN THEN resultN +聽聽聽聽ELSE result +END; +``` + +绗簩绉岰ASE鍙ユ硶杩斿洖绗竴涓獀alue = compare_value姣旇緝缁撴灉涓虹湡鐨勭粨鏋溿 濡傛灉娌℃湁姣旇緝缁撴灉绗﹀悎锛屽垯杩斿洖ELSE鍚庣殑缁撴灉锛屽鏋滄病鏈塃LSE閮ㄥ垎锛屽垯杩斿洖NULL锛 + +```sql +CASE compare_value +聽聽聽聽WHEN condition1 THEN result1 +聽聽聽聽WHEN condition2 THEN result2 +聽聽聽聽WHEN conditionN THEN resultN +聽聽聽聽ELSE result +END; +``` + +### 鑱氬悎鍑芥暟 + +SQL SERVER涓仛鍚堝嚱鏁颁富瑕佹湁锛 + + count:姹傛暟閲 + max:姹傛渶澶у + min:姹傛渶灏忓 + sum:姹傚拰 + avg:姹傚钩鍧囧 + +### 鎺掑悕鍑芥暟 + +rank() over (order by row_name asc) + +涓嶄繚鐣欑┖缂烘帓鍚 + +dense_rank() over (order by row_name asc) + +淇濈暀绌虹己鎺掑悕 + +row_number() over (order by row_name asc) + +琛屾暟 + +## 4銆佸瓙鏌ヨ + +### 鎸夌粨鏋滃垎绫 + +#### 鏍囬噺瀛愭煡璇 锛 + +**閫氬父鍙互浣跨敤杩炴帴鏌ヨ鏇夸唬** + +鏍囬噺瀛愭煡璇㈡槸鎸囧瓙鏌ヨ杩斿洖鐨勬槸**鍗曚竴鍊**锛屽涓涓暟瀛楁垨涓涓瓧绗︿覆銆 + + --1.鏌ヨ涔︾洰琛(tb_bibliography)涓紝鏉$爜鍙(barcode)涓"TP311锛13"鍥句功锛堥渶瑕佸湪鍥句功琛ㄤ腑鍏堟煡鎵"TP31L13"鐨処SBN鍙凤級鐨勫浘涔﹀悕绉(name)鍜屼綔鑰(author) + + + --2.鏌ヨ鍊熼槄琛(tb-record锛変腑濮撳悕涓"閭撴壙鏄"锛堥渶瑕佸湪瀛︾敓琛ㄤ腑鍏堟煡鎵"閭撴壙鏄'鐨勫鍙凤級鐨勫鐢熺殑鍊熼槄淇℃伅锛屾樉绀哄鍙(stu-num)鍜屾潯鐮佸彿(barcode) + +#### 鍒楀瓙鏌ヨ + +**鍒楀瓙鏌ヨ鏄寚瀛愭煡璇㈣繑鍥炵殑缁撴灉闆嗘槸N琛1鍒**锛岃缁撴灉閫氬父鏉ヨ嚜瀵硅〃鏌愪釜瀛楁鐨勬煡璇㈢粨鏋滐紝甯n鍏抽敭瀛楃殑瀛愭煡璇㈡槸鏈甯哥敤鐨勪竴绫诲瓙鏌ヨ锛屽湪浣跨敤in鍏抽敭瀛楄繘琛屾煡璇㈡椂锛屽瓙鏌ヨ璇彞杩斿洖鐨勭粨鏋滃簲璇ユ槸涓涓暟鎹垪涓殑澶氫釜鍊硷紝濡傛灉浠呰繑鍥1涓暟鍊硷紝鍒欏彲鐢ㄦ爣閲忓瓙鏌ヨ浠f浛銆 + +#### 琛屽瓙鏌ヨ + +琛屽瓙鏌ヨ鏄寚瀛愭煡璇㈣繑鍥炵殑缁撴灉闆嗘槸1琛孨鍒楋紝璇ュ瓙鏌ヨ鐨勭粨鏋滈氬父鏄琛ㄧ殑鏌愯鏁版嵁杩涜鏌ヨ鑰岃繑鍥炵殑缁撴灉闆嗐 + +#### 琛ㄥ瓙鏌ヨ(from瀛愭煡璇) + +琛ㄥ瓙鏌ヨ鏄寚瀛愭煡璇㈣繑鍥炴槸M琛孨鍒楃殑缁撴灉闆嗭紝鏌ヨ璇彞鍙祵濂楀湪FROM鍏抽敭瀛楀悗锛屼笖闇瑕佸畾涔夊埆鍚嶃 + +#### 鎸変綅缃垎绫 + +exists瀛愭煡璇 + +鍏抽敭瀛桬XISTS鏋勯犲瓙鏌ヨ鏃讹紝褰撳瓙鏌ヨ鐨勭粨鏋滈泦涓嶄负绌烘椂锛屽垯EXISTS杩斿洖鐨勭粨鏋滀负TRUE锛屽灞傛煡璇㈣鍙ヨ繘琛屾煡璇紱褰撳瓙鏌ヨ鐨勭粨鏋滈泦涓虹┖鏃讹紝鍒橢XISTS杩斿洖鐨勭粨鏋滀负FALSE锛屽灞傛煡璇㈣鍙ヤ笉杩涜鏌ヨ銆 + + + + + + + + + +## SQL鎵ц椤哄簭 + +```sql +(7) SELECT +(8) DISTINCT +(1) FROM +(3) JOIN +(2) ON +(4) WHERE +(5) GROUP BY +(6) HAVING +(9) ORDER BY +(10) LIMIT +``` -- Gitee