From 39595bf48bbfd1a5dd0fd537e698189daca8529c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E7=8E=AE=E5=96=86?= Date: Fri, 16 Sep 2022 13:12:09 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\344\275\234\344\270\232/SQLQuery1.sql" | 49 +++++++++++++++++++ .../\347\254\224\350\256\260/Note.md" | 38 ++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 "04\351\203\221\347\216\256\345\226\206/\344\275\234\344\270\232/SQLQuery1.sql" create mode 100644 "04\351\203\221\347\216\256\345\226\206/\347\254\224\350\256\260/Note.md" diff --git "a/04\351\203\221\347\216\256\345\226\206/\344\275\234\344\270\232/SQLQuery1.sql" "b/04\351\203\221\347\216\256\345\226\206/\344\275\234\344\270\232/SQLQuery1.sql" new file mode 100644 index 0000000..e82b7ee --- /dev/null +++ "b/04\351\203\221\347\216\256\345\226\206/\344\275\234\344\270\232/SQLQuery1.sql" @@ -0,0 +1,49 @@ +create database DBTEST; +use DBTEST; + +create table sectionInfo( + sectionID int primary key identity(1,1), + sectionName varchar(10) not null +); + + +create table userInfo( + userNo int primary key identity(1,1) not null, + userName varchar(10) unique check(len(userName) > 4) not null, + userSex varchar(2) not null check(userSex = '男' or userSex = '女'), + userAge int not null check(userAge >= 1 and userAge <= 100), + userAddress varchar(50) default('湖北'), + userSection int references sectionInfo(sectionID) +); + + +create table workInfo( + workId int primary key identity(1,1) not null, + userId int not null references userInfo(userNo), + workTime datetime not null, + workDescription varchar(40) not null check(workDescription = '迟到' or workDescription = '早退' or workDescription = '旷工' or workDescription = '病假' or workDescription = '事假') +); + + +insert into sectionInfo values ('营销部'); +insert into sectionInfo values ('摸鱼部'); +insert into sectionInfo values ('天龙八部'); +insert into sectionInfo values ('小卖部'); +insert into sectionInfo values ('GJ部'); +select * from sectionInfo; + + +insert into userInfo values ('列夫托尔斯','男',20,'江西',3); +insert into userInfo values ('米开朗基罗','男',19,'广东',1); +insert into userInfo values ('我带恩惠查','男',35,'福建',2); +insert into userInfo values ('分分分分的','女',19,'浙江',4); +insert into userInfo values ('哈密囧通道','女',20,'江西',5); +select * from userInfo; + + +insert into workInfo values (2,'2022-9-12 13:23','迟到'); +insert into workInfo values (4,'2022-9-12 13:23','迟到'); +insert into workInfo values (6,'2022-9-12 13:23','迟到'); +insert into workInfo values (7,'2022-9-12 13:23','迟到'); +insert into workInfo values (9,'2022-9-12 13:23','迟到'); +select * from workInfo; \ No newline at end of file diff --git "a/04\351\203\221\347\216\256\345\226\206/\347\254\224\350\256\260/Note.md" "b/04\351\203\221\347\216\256\345\226\206/\347\254\224\350\256\260/Note.md" new file mode 100644 index 0000000..ea9def0 --- /dev/null +++ "b/04\351\203\221\347\216\256\345\226\206/\347\254\224\350\256\260/Note.md" @@ -0,0 +1,38 @@ +## 鏂板缓鏁版嵁搴擄細 + +create database '鏁版嵁搴撳悕' default character set utf8 collate utf8_general_ci; + +### 鍒犻櫎鏁版嵁搴擄細 + +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銆佸垹闄わ細 + + delete from `table_name`; + delete from `table_name` where `row_name = values; + +## 3銆佹柊澧烇細 + + insert into `table_name` (`row_name1`,`row_name2`,...) values (value1,value2,...),(value1,value2,...); + + -- Gitee From e56ed9c786f1787d917ef929b9d98588dcd74f65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E7=8E=AE=E5=96=86?= Date: Mon, 19 Sep 2022 04:05:16 +0000 Subject: [PATCH 2/4] =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8D=2004=E9=83=91?= =?UTF-8?q?=E7=8E=AE=E5=96=86/=E7=AC=94=E8=AE=B0/Note.md=20=E4=B8=BA=2004?= =?UTF-8?q?=E9=83=91=E7=8E=AE=E5=96=86/=E7=AC=94=E8=AE=B0/0915=E7=AC=94?= =?UTF-8?q?=E8=AE=B0-=E5=BB=BA=E5=BA=93=E5=BB=BA=E8=A1=A8=E8=AF=AD?= =?UTF-8?q?=E5=8F=A5.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...45\272\223\345\273\272\350\241\250\350\257\255\345\217\245.md" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "04\351\203\221\347\216\256\345\226\206/\347\254\224\350\256\260/Note.md" => "04\351\203\221\347\216\256\345\226\206/\347\254\224\350\256\260/0915\347\254\224\350\256\260-\345\273\272\345\272\223\345\273\272\350\241\250\350\257\255\345\217\245.md" (100%) diff --git "a/04\351\203\221\347\216\256\345\226\206/\347\254\224\350\256\260/Note.md" "b/04\351\203\221\347\216\256\345\226\206/\347\254\224\350\256\260/0915\347\254\224\350\256\260-\345\273\272\345\272\223\345\273\272\350\241\250\350\257\255\345\217\245.md" similarity index 100% rename from "04\351\203\221\347\216\256\345\226\206/\347\254\224\350\256\260/Note.md" rename to "04\351\203\221\347\216\256\345\226\206/\347\254\224\350\256\260/0915\347\254\224\350\256\260-\345\273\272\345\272\223\345\273\272\350\241\250\350\257\255\345\217\245.md" -- Gitee From c80ffbbdc404bada4dcf6ba6678d2575ef21e96a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E7=8E=AE=E5=96=86?= Date: Mon, 19 Sep 2022 04:05:33 +0000 Subject: [PATCH 3/4] =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8D=2004=E9=83=91?= =?UTF-8?q?=E7=8E=AE=E5=96=86/=E4=BD=9C=E4=B8=9A/SQLQuery1.sql=20=E4=B8=BA?= =?UTF-8?q?=2004=E9=83=91=E7=8E=AE=E5=96=86/=E4=BD=9C=E4=B8=9A/0915?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A.sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\344\275\234\344\270\232/0915\344\275\234\344\270\232.sql" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "04\351\203\221\347\216\256\345\226\206/\344\275\234\344\270\232/SQLQuery1.sql" => "04\351\203\221\347\216\256\345\226\206/\344\275\234\344\270\232/0915\344\275\234\344\270\232.sql" (100%) diff --git "a/04\351\203\221\347\216\256\345\226\206/\344\275\234\344\270\232/SQLQuery1.sql" "b/04\351\203\221\347\216\256\345\226\206/\344\275\234\344\270\232/0915\344\275\234\344\270\232.sql" similarity index 100% rename from "04\351\203\221\347\216\256\345\226\206/\344\275\234\344\270\232/SQLQuery1.sql" rename to "04\351\203\221\347\216\256\345\226\206/\344\275\234\344\270\232/0915\344\275\234\344\270\232.sql" -- Gitee From 4cc339f4304c413c86c6e7c0f5ab2833b1f8ccc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E7=8E=AE=E5=96=86?= Date: Mon, 19 Sep 2022 12:15:18 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../0916\344\275\234\344\270\232.sql" | 53 +++++++ ...41\344\273\266\346\237\245\350\257\242.md" | 141 ++++++++++++++++++ 2 files changed, 194 insertions(+) create mode 100644 "04\351\203\221\347\216\256\345\226\206/\344\275\234\344\270\232/0916\344\275\234\344\270\232.sql" create mode 100644 "04\351\203\221\347\216\256\345\226\206/\347\254\224\350\256\260/0916\347\254\224\350\256\260-\346\235\241\344\273\266\346\237\245\350\257\242.md" diff --git "a/04\351\203\221\347\216\256\345\226\206/\344\275\234\344\270\232/0916\344\275\234\344\270\232.sql" "b/04\351\203\221\347\216\256\345\226\206/\344\275\234\344\270\232/0916\344\275\234\344\270\232.sql" new file mode 100644 index 0000000..0ed0e4b --- /dev/null +++ "b/04\351\203\221\347\216\256\345\226\206/\344\275\234\344\270\232/0916\344\275\234\344\270\232.sql" @@ -0,0 +1,53 @@ +--1. 查询出武汉地区所有的员工信息,要求显示部门名称以及员工的详细资料 +select * from People +inner join Department on People.DepartmentId = Department.DepartmentId +where PeopleAddress = '武汉'; + +--2. 查询出武汉地区所有的员工信息,要求显示部门名称,职级名称以及员工的详细资料 +select * from People +inner join Department on People.DepartmentId = Department.DepartmentId +inner join Rank on People.RankId = Rank.RankId +where PeopleAddress = '武汉'; + +--3. 根据部门分组统计员工人数,员工工资总和,平均工资,最高工资和最低工资。 +select Department.DepartmentId,Department.DepartmentName,count(People.PeopleId) 员工人数,sum(PeopleSalary) +总工资,avg(PeopleSalary) 平均工资,max(PeopleSalary) 最高工资,min(PeopleSalary) 最低工资 from People +inner join Department on Department.DepartmentId =People.DepartmentId +group by Department.DepartmentId,Department.DepartmentName; + +--4. 根据部门分组统计员工人数,员工工资总和,平均工资,最高工资和最低工资,平均工资在10000 以下的不参与统计,并且根据平均工资降序排列。 +select Department.DepartmentId,Department.DepartmentName,count(People.PeopleId) 员工人数,sum(PeopleSalary) +总工资,avg(PeopleSalary) 平均工资,max(PeopleSalary) 最高工资,min(PeopleSalary) 最低工资 from People +inner join Department on Department.DepartmentId =People.DepartmentId +group by Department.DepartmentId,Department.DepartmentName +having avg(PeopleSalary) >=10000 +order by avg(PeopleSalary) desc; + +--5. 根据部门名称,然后根据职位名称,分组统计员工人数,员工工资总和,平均工资,最高工资和最低工资 +select Department.DepartmentId,Rank.RankId,count(People.PeopleId) 员工人数,sum(PeopleSalary) +总工资,convert(decimal(15,2),avg(PeopleSalary)) 平均工资,max(PeopleSalary) 最高工资,min(PeopleSalary) 最低工资 from People +inner join Rank on People.RankId = Rank.RankId +inner join Department on Department.DepartmentId = People.DepartmentId +group by Department.DepartmentId,Rank.RankId,Department.DepartmentName,Rank.RankName; + +--6.查询出巨蟹 6.22--7.22 的员工信息 +select * from People +where month(People.PeopleBirth) = 6 and day(People.PeopleBirth) >= 22 or month(People.PeopleBirth) = 7 and day(People.PeopleBirth) <=22 + +--7.查询所有员工信息,添加一列显示属相(鼠,牛,虎,兔,龙,蛇,马,羊,猴,鸡,狗,猪) +select *, +case year(PeopleBirth)%12 + when 4 then '鼠' + when 5 then '牛' + when 6 then '虎' + when 7 then '兔' + when 8 then '龙' + when 9 then '蛇' + when 10 then '马' + when 11 then '羊' + when 0 then '猴' + when 1 then '鸡' + when 2 then '狗' + when 3 then '猪' +end 生肖 +from People diff --git "a/04\351\203\221\347\216\256\345\226\206/\347\254\224\350\256\260/0916\347\254\224\350\256\260-\346\235\241\344\273\266\346\237\245\350\257\242.md" "b/04\351\203\221\347\216\256\345\226\206/\347\254\224\350\256\260/0916\347\254\224\350\256\260-\346\235\241\344\273\266\346\237\245\350\257\242.md" new file mode 100644 index 0000000..efd7976 --- /dev/null +++ "b/04\351\203\221\347\216\256\345\226\206/\347\254\224\350\256\260/0916\347\254\224\350\256\260-\346\235\241\344\273\266\346\237\245\350\257\242.md" @@ -0,0 +1,141 @@ +# 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:姹傚钩鍧囧 + + + + + +## 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