diff --git "a/9.16\345\274\240\345\205\210\346\235\260/.keep" "b/9.16\345\274\240\345\205\210\346\235\260/.keep" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/9.16\345\274\240\345\205\210\346\235\260/\345\274\240\345\205\210\346\235\260/SQLQuery1\357\274\210\344\275\234\344\270\232\357\274\211.sql" "b/9.16\345\274\240\345\205\210\346\235\260/\345\274\240\345\205\210\346\235\260/SQLQuery1\357\274\210\344\275\234\344\270\232\357\274\211.sql" new file mode 100644 index 0000000000000000000000000000000000000000..588e0980e03e3e5597022f44a37eff73fb21db28 --- /dev/null +++ "b/9.16\345\274\240\345\205\210\346\235\260/\345\274\240\345\205\210\346\235\260/SQLQuery1\357\274\210\344\275\234\344\270\232\357\274\211.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; \ No newline at end of file diff --git "a/9.16\345\274\240\345\205\210\346\235\260/\345\274\240\345\205\210\346\235\260/\347\254\224\350\256\260.txt" "b/9.16\345\274\240\345\205\210\346\235\260/\345\274\240\345\205\210\346\235\260/\347\254\224\350\256\260.txt" new file mode 100644 index 0000000000000000000000000000000000000000..623da83cf7f68091e81269b088060d02de8975f7 --- /dev/null +++ "b/9.16\345\274\240\345\205\210\346\235\260/\345\274\240\345\205\210\346\235\260/\347\254\224\350\256\260.txt" @@ -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 +``` \ No newline at end of file