From 6f82d8bd5019253d951a0688ec2d5ea16170bfd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=A0=E5=BF=97=E6=96=B0?= <1759998065@qq.com> Date: Mon, 19 Sep 2022 17:36:47 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../9.15/.keep" | 0 ...2\350\241\250\347\272\246\346\235\237.sql" | 108 ++++++++++++++++++ .../9.15/9.15\347\254\224\350\256\260.txt" | 30 +++++ .../9.16/sql\346\237\245\350\257\242.txt" | 19 +++ ...4\346\254\241\344\275\234\344\270\232.sql" | 41 +++++++ 5 files changed, 198 insertions(+) create mode 100644 "05\345\215\240\345\277\227\346\226\260/9.15/.keep" create mode 100644 "05\345\215\240\345\277\227\346\226\260/9.15/2022-09-15-\345\273\272\345\272\223\345\273\272\350\241\250\347\272\246\346\235\237.sql" create mode 100644 "05\345\215\240\345\277\227\346\226\260/9.15/9.15\347\254\224\350\256\260.txt" create mode 100644 "05\345\215\240\345\277\227\346\226\260/9.16/sql\346\237\245\350\257\242.txt" create mode 100644 "05\345\215\240\345\277\227\346\226\260/9.16/\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.sql" diff --git "a/05\345\215\240\345\277\227\346\226\260/9.15/.keep" "b/05\345\215\240\345\277\227\346\226\260/9.15/.keep" new file mode 100644 index 0000000..e69de29 diff --git "a/05\345\215\240\345\277\227\346\226\260/9.15/2022-09-15-\345\273\272\345\272\223\345\273\272\350\241\250\347\272\246\346\235\237.sql" "b/05\345\215\240\345\277\227\346\226\260/9.15/2022-09-15-\345\273\272\345\272\223\345\273\272\350\241\250\347\272\246\346\235\237.sql" new file mode 100644 index 0000000..9d31211 --- /dev/null +++ "b/05\345\215\240\345\277\227\346\226\260/9.15/2022-09-15-\345\273\272\345\272\223\345\273\272\350\241\250\347\272\246\346\235\237.sql" @@ -0,0 +1,108 @@ +--关系型数据库:SQL server, Mysql, Oracle +--创建数据库:create database 数据库名 +--database:数据库 + +if exists (select * from sys.databases where name='DBTEST') + drop database DBTEST + + create database DBTEST + + --使用数据库 + use DBTEST + + --创建班级表 + create table ClassInfo( + ClassId int primary key identity(1,1), + ClassName varchar(20) + ); + + --插入数据: insert [into] 表名(字段名) values(值) + insert into ClassInfo( ClassName) values('软件1班'); + + insert ClassInfo values('软件2班') + + select * from ClassInfo + + --创建数据表 + create table StuInfo( + stuId int primary key identity(1001,1), --学生ID + --添加一个检查约束,判断用户插入/新增的数据,性别字段是不是男或者女 + --default:默认约束 + --check + stugender varchar(2) not null default('男') check(stugender='男' or stugender='女'), --学生性别 + stuphone char(11) check(len(stuphone)=11) unique, + --创建班级外键 + --ClassID int references ClassInfo(ClassID) + ClassID int + + ); + + + --增加外键 + --修改表结构 表名 add constraint 约束名 foreign key(要引用的字段) references 主键表(字段) + Alter table StuInfo add constraint FK_StuInfo_ClassId foreign key(ClassID) references ClassInfo(ClassID) + + + --新增姓名列 + alter table StuInfo add stuName varchar(20) + + + + --如果没给出列名,默认是按照顺序一个个添加 + --insert StuInfo values('女',13888888888) + + --insert StuInfo(stuphone) values(15888888888) + + + + select * from StuInfo; + + --字符串:char(5),varchar(5),nvarchar(5)之间区别是什么 + + + + --删除表:drop table 表名 + drop table StuInfo + + + --非空 + + --约束,自增(标识列) + + --外键 + --主键:默认唯一列 + --默认 + --唯一: + --check检查: + + --插入数据:insert into + + 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), + userName varchar(10) unique not null check(len(userName)>4), + 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), + userId int references userInfo(userNo), + workTime datetime not null, + workDescription varchar(40) check(workDescription='迟到' or workDescription='早退' or workDescription='旷工' or workDescription='病假' or workDescription='事假'), +); +insert into sectionInfo(sectionName) values ('实践部'),('市场部'),('销售部'),('管理部'),('财务部'); + +insert into userInfo(userName) values ('张三'),('李四'),('王五'),('赵六'),('黄七'); +insert into userInfo(userSex) values ('女'),('男'),('女'),('男'),('女'); +insert into userInfo(userAge) values ('23'),('25'),('48'),('21'),('45'); +insert into userInfo(userAddress) values ('福建'),('江苏'),('北京'),('上海'),('广东'); + +insert into workInfo(workTime) values ('2'),('1'),('3'),('4'),('6'); +insert into workInfo(workDescription) values ('迟到'),('早退'),('旷工'),('病假'),('事假'); \ No newline at end of file diff --git "a/05\345\215\240\345\277\227\346\226\260/9.15/9.15\347\254\224\350\256\260.txt" "b/05\345\215\240\345\277\227\346\226\260/9.15/9.15\347\254\224\350\256\260.txt" new file mode 100644 index 0000000..fb584b3 --- /dev/null +++ "b/05\345\215\240\345\277\227\346\226\260/9.15/9.15\347\254\224\350\256\260.txt" @@ -0,0 +1,30 @@ +1.鍒涘缓鏁版嵁搴 +create database 鏁版嵁搴 +2.鍒涘缓鏁版嵁琛 +create table 鏁版嵁琛 +渚嬶細 +create table stuInfo( +id int primary key identity(1,1), +name varchar(2) +); +3.浣跨敤鏁版嵁搴 +use 鏁版嵁搴撳悕 +4.鍒犻櫎琛 +drop table 琛ㄥ悕 +7.鍞竴绱㈠紩 +unique +8.闀垮害 +len锛**锛 +9.澶栭敭 +references 琛ㄥ悕(鍒楀悕) +10.涓婚敭 +primary key +11.鑷 +identity(x,x) +绗竴浣嶄负璧峰鏁帮紝绗簩浣嶅鍔犳暟 +12.闈炵┖ +not null +13.榛樿鍊 +default('鐢') +14.妫鏌 +check(age='鐢' or age='濂') diff --git "a/05\345\215\240\345\277\227\346\226\260/9.16/sql\346\237\245\350\257\242.txt" "b/05\345\215\240\345\277\227\346\226\260/9.16/sql\346\237\245\350\257\242.txt" new file mode 100644 index 0000000..e5aa989 --- /dev/null +++ "b/05\345\215\240\345\277\227\346\226\260/9.16/sql\346\237\245\350\257\242.txt" @@ -0,0 +1,19 @@ +1.鍏宠仈琛ㄥ悕 +select * from *** inner join ** on ***.1=**.1 +2.鏁伴噺 +count() +3.鎬诲拰 + sum() +4.骞冲潎 +avg() +5.鏈楂 +max() +6.鏈浣 +min() +7.鍒嗙粍 +group by +having鍙兘鐢ㄥ湪group by涔嬪悗锛屽鍒嗙粍鍚庣殑缁撴灉杩涜绛涢(鍗充娇鐢╤aving鐨勫墠鎻愭潯浠舵槸鍒嗙粍)銆 +where鑲畾鍦╣roup by 涔嬪墠 +8.鎺掑簭 +order by ** desc/闄嶅簭 +asc/鍗囧簭 \ No newline at end of file diff --git "a/05\345\215\240\345\277\227\346\226\260/9.16/\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.sql" "b/05\345\215\240\345\277\227\346\226\260/9.16/\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.sql" new file mode 100644 index 0000000..7efe3b5 --- /dev/null +++ "b/05\345\215\240\345\277\227\346\226\260/9.16/\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232.sql" @@ -0,0 +1,41 @@ +select * from Department +select * from [Rank] +select * from People + +--1. 查询出武汉地区所有的员工信息,要求显示部门名称以及员工的详细资料 +select *,DepartmentName from People inner join Department on People.DepartmentId=Department.DepartmentId where PeopleAddress='武汉'; +--2. 查询出武汉地区所有的员工信息,要求显示部门名称,职级名称以及员工的详细资料 +select *,DepartmentName,RankName from People inner join Department on People.DepartmentId=Department.DepartmentId inner join Rank on Rank.RankId=People.RankId where PeopleAddress='武汉'; +--3. 根据部门分组统计员工人数,员工工资总和,平均工资,最高工资和最低工资。 +select DepartmentName,COUNT(PeopleId)员工工资总和,avg(PeopleSalary)平均工资,sum(PeopleSalary)员工工资总和,max(PeopleSalary)最高工资,min(PeopleSalary)最低工资 from Department inner join People on Department.DepartmentId=People.DepartmentId +group by DepartmentName; +--4. 根据部门分组统计员工人数,员工工资总和,平均工资,最高工资和最低工资,平均工资在10000 以下的不参与统计,并且根据平均工资降序排列。 +select DepartmentName,count(PeopleId)员工工资总和,avg(Peoplesalary)平均工资,max(PeopleSalary)最高工资,min(PeopleSalary)最低工资 from People inner join +Department on Department.DepartmentId=People.DepartmentId +group by DepartmentName +having avg(PeopleSalary)>=10000 +order by 平均工资 desc; +--5. 根据部门名称,然后根据职位名称,分组统计员工人数,员工工资总和,平均工资,最高工资和最低工资 +select DepartmentName,RankName,count(PeopleId)员工人数,sum(PeopleSalary)员工工资总和,max(PeopleSalary)最高工资,min(PeopleSalary)最低工资 from People + inner join Department on People.DepartmentId=Department.DepartmentId +inner join Rank on People.RankId=Rank.RankId +group by DepartmentName,RankName +--查询所有员工信息,添加一列显示属相(鼠,牛,虎,兔,龙,蛇,马,羊,猴,鸡,狗,猪) +select *,case YEAR(PeopleBirth)%12 +when 0 then '猴' +when 1 then '鸡' +when 2 then '狗' +when 3 then '猪' +when 4 then '鼠' +when 5 then '牛' +when 6 then '虎' +when 7 then '兔' +when 8 then '龙' +when 9 then '蛇' +when 10 then '马' +when 11 then '羊' +end 属相 + from People +--查询出巨蟹 6.22--7.22 的员工信息 +select * from people +where(MONTH(PeopleBirth)=6 and day(PeopleBirth)>=22)or(MONTH(PeopleBirth)=7 and day(PeopleBirth)<=22); \ No newline at end of file -- Gitee