diff --git "a/\346\236\227\346\231\223\351\233\252/.keep" "b/\346\236\227\346\231\223\351\233\252/.keep" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232/~$\346\225\260\346\215\256\345\272\223\345\205\213\351\232\206.docx" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232/~$\346\225\260\346\215\256\345\272\223\345\205\213\351\232\206.docx" new file mode 100644 index 0000000000000000000000000000000000000000..efca719049c9ae387e5e85e9c680a322709781e0 Binary files /dev/null and "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232/~$\346\225\260\346\215\256\345\272\223\345\205\213\351\232\206.docx" differ diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232/~WRL2528.tmp" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232/~WRL2528.tmp" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232/\346\225\260\346\215\256\345\272\223\345\205\213\351\232\206.docx" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232/\346\225\260\346\215\256\345\272\223\345\205\213\351\232\206.docx" new file mode 100644 index 0000000000000000000000000000000000000000..a7c3e1df7c3e9c85718dc0abebc68e31be7630b3 Binary files /dev/null and "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232/\346\225\260\346\215\256\345\272\223\345\205\213\351\232\206.docx" differ diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\2321.sql" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\2321.sql" new file mode 100644 index 0000000000000000000000000000000000000000..b1da09d16e125a1b4e9ed69f0135f7a13e8e79aa --- /dev/null +++ "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\2321.sql" @@ -0,0 +1,108 @@ +create database lxx7; +use lxx7; + +--学生信息表(StuInfo) +create table StuInfo( +stuNO nvarchar(10) primary key, --学号 +stuName nvarchar(10), --姓名 +stuAge varchar(10), --年龄 +stuAddress nvarchar(10), --地址 +stuSeat int identity, --座号 +stuSex tinyint check(stusex=1 or stusex=0), --性别 +); + +--学生分数表(StuExam) +create table StuExam( +examNO int identity primary key, --考号 +stuNO nvarchar(10), --学号 +writtenExam int, --笔试 +labExam int, --机试 +); + +--alter table StuExam add constraint FK_StuExam_stuno foreign key(stuno) references StuInfo(stuno); +--alter table StuInfo add constraint FK_StuInfo_stuno foreign key(stuno) references StuExam(stuno); + +insert into StuInfo(stuNO,stuName,stuAge,stuAddress,stuSex) +values('s2501','张秋利',20,'美国硅谷',1); +insert into StuInfo(stuNO,stuName,stuAge,stuAddress,stuSex) +values('s2502','李斯文',18,'湖北武汉',0); +insert into StuInfo(stuNO,stuName,stuAge,stuAddress,stuSex) +values('s2503','马文才',22,'湖南长沙',1); +insert into StuInfo(stuNO,stuName,stuAge,stuAddress,stuSex) +values('s2504','欧阳俊雄',21,'湖北武汉',0); +insert into StuInfo(stuNO,stuName,stuAge,stuAddress,stuSex) +values('s2505','梅超风',20,'湖北武汉',1); +insert into StuInfo(stuNO,stuName,stuAge,stuAddress,stuSex) +values('s2506','陈旋风',19,'美国硅谷',1); +insert into StuInfo(stuNO,stuName,stuAge,stuAddress,stuSex) +values('s2507','陈风',20,'美国硅谷',0); + +insert into StuExam(writtenExam,labExam) +values(50,70); +insert into StuExam(writtenExam,labExam) +values(60,65); +insert into StuExam(writtenExam,labExam) +values(86,85); +insert into StuExam(writtenExam,labExam) +values(40,80); +insert into StuExam(writtenExam,labExam) +values(70,90); +insert into StuExam(writtenExam,labExam) +values(85,90); + +--查询学生信息表(stuinfo)中所有列信息,给每列取上中文名称 +select stuNO 学号,stuName 姓名,stuAge 年龄,stuAddress 地址,stuSeat 座号,stuSex 性别 from StuInfo; +--查询学生信息表(stuinfo)中的姓名,年龄和地址三列的信息 +select stuName 姓名,stuAge 年龄,stuAddress 地址 from StuInfo; +--查询学生分数表(stuexam)中的学号,笔试和机试三列的信息,并为这三列取中文名字 注意:要用三种方法 +select stuNO 学号,writtenExam as 笔试,机试=labExam from StuExam; +--查询学生信息表(stuInfo)中的学号,姓名,地址,以及将:姓名+@+地址 组成新列 “邮箱” +select *,StuName+'@'+StuAddress as 邮箱 from StuInfo; +--查询学生分数表(stuexam)中的学生的学号,笔试,机试以及总分这四列的信息 +select stuno, writtenexam, labexam ,writtenexam+labexam as 总分 from stuexam; +--查询学生信息表(stuInfo)中学生来自哪几个地方 +select distinct stuAddress from StuInfo; +--查询学生信息表(stuInfo)中学生有哪几种年龄,并为该列取对应的中文列名 +select distinct stuAge 年龄 from StuInfo; +--查询学生信息表(stuInfo)中前3行记录 +select top 3 * from StuInfo; +--查询学生信息表(stuInfo)中前4个学生的姓名和座位号 +select top 4 stuName,stuSeat from StuInfo; +--查询学生信息表(stuInfo)中一半学生的信息 +select top 50 percent * from StuInfo; +--将地址是湖北武汉,年龄是20的学生的所有信息查询出来 +select * from StuInfo where stuAddress='湖北武汉' and stuAge=20; +--将机试成绩在60-80之间的信息查询出来,并按照机试成绩降序排列(用两种方法实现) +select * from StuExam where labExam>=60 or 80<=labExam order by labExam desc; +--查询来自湖北武汉或者湖南长沙的学生的所有信息(用两种方法实现) +select * from StuInfo where stuAddress='湖北武汉' or stuAddress='湖南长沙'; +--查询出笔试成绩不在70-90之间的信息,并按照笔试成绩升序排列(用两种方法实现) +select * from StuExam where writtenExam<70 or writtenExam>90 order by writtenExam asc; +select * from StuExam where writtenExam not between '70' and '90' order by writtenExam asc; +--查询年龄没有写的学生所有信息 +select * from StuInfo where stuAge is null; +--查询年龄写了的学生所有信息 +select * from StuInfo where stuAge is not null; +--查询姓张的学生信息 +select * from StuInfo where stuName like '%张%'; +--查询学生地址中有‘湖’字的信息 +select * from StuInfo where stuName like '%湖%'; +--查询姓张但名为一个字的学生信息 +select * from StuInfo where stuName like '张_'; +--查询姓名中第三个字为‘俊’的学生的信息,‘俊’后面有多少个字不限制 +select * from StuInfo where stuName like '俊%'; +--按学生的年龄降序显示所有学生信息 +select * from StuInfo order by stuAge desc; +--按学生的年龄降序和座位号升序来显示所有学生的信息 +select * from StuInfo order by stuAge desc; +select * from StuInfo order by stuSeat asc; +--显示笔试第一名的学生的考试号,学号,笔试成绩和机试成绩 +select * from StuInfo +--显示机试倒数第一名的学生的考试号,学号,笔试成绩和机试成绩 +select * from StuInfo +--查询每个地方的学生的平均年龄 +select stuaddress,avg(stuage)平均年龄 from StuInfo group by stuaddress; +--查询男女生的分别的年龄总和 +select stusex,sum(stuage)年龄总和 from StuInfo group by stusex; +--查询每个地方的男女生的平均年龄和年龄的总和 +select stusex,avg(stuage)平均年龄,sum(stuage) 年龄总和 from StuInfo group by stusex; \ No newline at end of file diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\270\200.txt" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\270\200.txt" new file mode 100644 index 0000000000000000000000000000000000000000..6fa26b2459b540a2fa2cb0b920d14bfb100eb1dd --- /dev/null +++ "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\270\200.txt" @@ -0,0 +1,66 @@ +按图片所给的数据进行数据表的建立和数据插入,然后进行以下查询操作 + +1.查询学生信息表(stuinfo)中所有列信息,给每列取上中文名称 + +2.查询学生信息表(stuinfo)中的姓名,年龄和地址三列的信息 + +3.查询学生分数表(stuexam)中的学号,笔试和机试三列的信息,并为这三列取中文名字 + 注意:要用三种方法 + +4.查询学生信息表(stuInfo)中的学号,姓名,地址,以及将:姓名+@+地址 组成新列 “邮箱” + +5.查询学生分数表(stuexam)中的学生的学号,笔试,机试以及总分这四列的信息 + +6.查询学生信息表(stuInfo)中学生来自哪几个地方 + +7.查询学生信息表(stuInfo)中学生有哪几种年龄,并为该列取对应的中文列名 + +8.查询学生信息表(stuInfo)中前3行记录 + +9.查询学生信息表(stuInfo)中前4个学生的姓名和座位号 + +10.查询学生信息表(stuInfo)中一半学生的信息 + +11.将地址是湖北武汉,年龄是20的学生的所有信息查询出来 + +12.将机试成绩在60-80之间的信息查询出来,并按照机试成绩降序排列(用两种方法实现) + +13.查询来自湖北武汉或者湖南长沙的学生的所有信息(用两种方法实现) + +14.查询出笔试成绩不在70-90之间的信息,并按照笔试成绩升序排列(用两种方法实现) + +15.查询年龄没有写的学生所有信息 + +16.查询年龄写了的学生所有信息 + +17.查询姓张的学生信息 + +18.查询学生地址中有‘湖’字的信息 + +19.查询姓张但名为一个字的学生信息 + +20.查询姓名中第三个字为‘俊’的学生的信息,‘俊’后面有多少个字不限制 + +21.按学生的年龄降序显示所有学生信息 + +22.按学生的年龄降序和座位号升序来显示所有学生的信息 + +23显示笔试第一名的学生的考试号,学号,笔试成绩和机试成绩 + +24.显示机试倒数第一名的学生的考试号,学号,笔试成绩和机试成绩 + +25.查询每个地方的学生的平均年龄 + +26.查询男女生的分别的年龄总和 + +27.查询每个地方的男女生的平均年龄和年龄的总和 + + + + + + + + + + diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\270\200\346\225\260\346\215\256\345\233\276\347\211\207.bmp" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\270\200\346\225\260\346\215\256\345\233\276\347\211\207.bmp" new file mode 100644 index 0000000000000000000000000000000000000000..0928437dc0a3fff3e9ad2bc54ff2bb98d7873c5d Binary files /dev/null and "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\203\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\270\200\346\225\260\346\215\256\345\233\276\347\211\207.bmp" differ diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\211\346\254\241\344\275\234\344\270\232/98\347\273\203\344\271\240\351\242\230.sql" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\211\346\254\241\344\275\234\344\270\232/98\347\273\203\344\271\240\351\242\230.sql" new file mode 100644 index 0000000000000000000000000000000000000000..6a519506868f2db838fe26a546fe9edb2d45ed4a --- /dev/null +++ "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\270\211\346\254\241\344\275\234\344\270\232/98\347\273\203\344\271\240\351\242\230.sql" @@ -0,0 +1,61 @@ +create database lxx; +use lxx; +--班级信息表 +create table Class( +classid int primary key identity not null, --班级编号 +classname nvarchar(50) not null, --班级名称 +); +--学生信息表 +create table Student( +studentid int identity primary key not null, --班级编号 +studentname nvarchar(50) not null, --学生姓名 +studentsex tinyint not null default 3, --学生性别 +studentbirth date, --学生生日 +studentaddress nvarchar(255) not null, --学生地址 +classid int not null, --所属班级Id +); +--课程信息表 +create table Course( +courseid int primary key not null identity, --课程编号 +coursename nvarchar(50) not null, --课程名称 +coursecredit tinyint not null default 0, --课程学分 +); +--班级课程表 +create table ClassCourse( +classcourseid int not null primary key identity, --自增编号 +classid int not null, --班级编号 +courseid int not null, --课程编号 +); +--分数信息表 +create table Score( +scoreid int identity not null primary key, --自增编号 +studentid int not null, --学生编号 +courseid int not null, --课程编号 +score int not null, --分数 +); +--给学生信息表Student增加字段 +alter table Student add StudentIdentityCard varchar(20) not null; --身份证 +--给分数信息表Score增加字段 +alter table Score add IsResit tinyint not null default 0; --是否是补考:0不是,1是 + +--使用sql语句给班级表 ClassName 增加唯一约束 +alter table Class add constraint UQ_Class_ClassName unique (ClassName); +--使用sql语句给课程表 CourseName 增加唯一约束 +alter table Course add constraint UQ_Course_CourseName unique (CourseName); +--使用sql语句给学生表 ClassId 增加默认值为0(默认值约束) +alter table Student add constraint DF_Student_ClassId default(0) for ClassId; +--使用sql语句设置学生表 StudentSex 只能为1或者2或者3(Check约束) +alter table Student add constraint CK_Student_StudentSex check(StudentSex=1 or StudentSex=2); +--使用sql语句设置分数表 Score 字段只能大于等于0(check约束) +alter table Score add constraint CK_Score_Score check(Score>0); +--使用sql语句设置课程表 CourseCredit 字段只能大于0(check约束) +alter table Course add constraint CK_Course_CourseCredit check(CourseCredit>0); + +--使用sql语句设置班级课程表ClassId 对应是 班级表ClassId 的外键 (外键约束) +alter table ClassCourse add constraint FK_ClassCourse_ClassId foreign key(ClassId) references Class(ClassId); +--使用sql语句设置班级课程表CourseId 对应是 课程表CourseId 的外键 (外键约束) +alter table ClassCourse add constraint FK_ClassCourse_CourseId foreign key(CourseId) references Course(CourseId); +--使用sql语句设置分数表StudentId 对应是 学生表StudentId 的外键 (外键约束) +alter table Score add constraint FK_Score_StudenId foreign key(StudentId) references Student(StudentId); +--使用sql语句设置分数表CourseId 对应是 课程表CourseId 的外键 (外键约束) +alter table Score add constraint FK_Score_CourseId foreign key(CourseId) references Course(CourseId); \ No newline at end of file diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\270\211.sql" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\270\211.sql" new file mode 100644 index 0000000000000000000000000000000000000000..526610c0b422a61ae94ca9e41b41cc60591f81b4 --- /dev/null +++ "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\270\211.sql" @@ -0,0 +1,126 @@ +create database bbss; +use bbss; + +--用户信息表(bbsUsers) +create table bbsUsers( +UID int , --用户编号 +uName varchar(10), --用户名 +uSex varchar(2) , --性别 +uAge int, --年龄 +uPoint int, --积分 +); + +--主贴表(bbsTopic) +create table bbsTopic( +tID int primary key identity, --主贴编号 +tUID int, --发帖人编号 +tSID int, --版块编号 +tTitle varchar(100) not null, --贴子的标题 +tMsg text not null, --帖子的内容 +tTime datetime, --发帖时间 +tCount int, --回复数量 +); + +--回帖表(bbsReply) +create table bbsReply( + rID int primary key identity, --回贴编号 + rUID int, --回帖人编号 + rTID int, --对应主贴编号 + rMsg text, --回帖的内容 + rTime datetime, --回帖时间 + ); + +--版块表(bbsSection) +create table bbsSection( +sID int primary key identity, --版块编号 +sName varchar(10) not null, --版块名称 +sUid int , --版主编号 +); +alter table bbsUsers add UID int primary key identity; +alter table bbsUsers add uName varchar(10) unique not null; +alter table bbsUsers add uSex varchar(2) not null check(uSex='男' or uSex='女'); +alter table bbsUsers add uAge int not null check(uAge>=15 or 60<=uAge); +alter table bbsUsers add uPoint int not null null check(uPoint>0); + +insert into bbsusers( uname, usex, uage, upoint) +values('小雨点','女 ' ,20, 0), +('逍遥', '男', 18,4), +('七年级生','男',19 ,2) + +select * from bbsusers +select uname 用户名,upoint 积分 from bbsusers + +insert into bbssection(sname,suid) +values('技术交流', 1), + ('读书世界',3), + ('生活百科',1), + ('八卦区 ',3) + +select * from bbssection + +insert into bbstopic( tuid, tsid, ttitle, tmsg, ttime, tcoun) +values( 2 , 4 , '范跑跑',' 谁是范跑跑',' 2008-7-8',1), + ( 3,1,'.NET ','与JAVA的区别是什么呀?', '2008-9-1',2), + (1 , 3,'今年夏天最流行什么','有谁知道今年夏天最流行什么呀?','2008-9-10',0) + +select * from bbstopic + +insert into bbsreply(ruid, rtid, rmsg, rtime) +values(1,1,'不知道','2023-3-10'), +(1,2,'更难','2023-3-10'), +(1,3,'晴天','2023-3-10') + +select * from bbsreply +select * from bbstopic +select * from bbsusers + +delete from bbstopic where tid='1' +delete from bbsusers where uid='2' +delete from bbsreply where rid='1' + +update bbsusers set upoint='10' +where uid='1' + +select * from bbssection +delete from bbssection where sid='3' +delete from bbstopic where tid='3' +delete from bbsreply where rid='3' + +select * from bbsreply +delete from bbsreply where rid='2' + +select count(*) from bbstopic group by tsid + +select count(*) from bbsreply group by rtid + +select count(tid) from bbstopic group by tuid + +select sum(tcoun) from bbstopic group by tuid + +select top 1 uname,usex,upoint from bbsusers order by upoint desc + +select * from bbstopic where ttitle like '%快乐%' + +select * from bbsusers where usex>15and usex<20and upoint>10 + +select * from bbsusers where uname like '小_大' + +select tid 主贴编号 , tuid 发帖人编号, tsid 版块编号, ttitle 贴子的标题, tmsg 帖子的内容, ttime 发帖时间, tcoun 回复数量 from bbstopic where ttime>'2008.9.10'and tcoun>10 + +select tuid,tcoun from bbstopic where ttitle like '%!' + +select sname,suid,uname from bbssection +join bbsusers on bbssection.suid=bbsusers.uid + +select tuid,uname,ttitle,tmsg,ttime from bbsusers +join bbstopic on bbsusers.uid=bbstopic.tuid + +select sname,suid,uname from bbssection +join bbsusers on bbssection.suid=bbsusers.uid +where uage<20 + +select top 1 tuid,uname,ttitle,tmsg,tcoun from bbsusers +join bbstopic on bbsusers.uid=bbstopic.tuid +order by tcoun desc + +select count(tuid) from bbstopic group by tsid,tuid \ No newline at end of file diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232/\345\273\272\345\272\223\345\273\272\350\241\250\345\242\236\345\210\240\346\224\271.txt" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232/\345\273\272\345\272\223\345\273\272\350\241\250\345\242\236\345\210\240\346\224\271.txt" new file mode 100644 index 0000000000000000000000000000000000000000..c043c86e05410d3a24029d14f0b74c3c94c973ab --- /dev/null +++ "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232/\345\273\272\345\272\223\345\273\272\350\241\250\345\242\236\345\210\240\346\224\271.txt" @@ -0,0 +1,85 @@ +一、先创建数据库和表以及约束 + + 1.创建一个数据库用来存放某论坛的用户和发帖信息,数据库的名称为bbs + + + 2.创建表 + + 注意以下4张表的创建顺序,要求在创建bbsUsers和bbsSection表时不添加约束,创建完后单独添加约束,其它的表创建时添加约束 + + 用户信息表(bbsUsers) + 用户编号 UID int 主键 标识列 + 用户名 uName varchar(10) 唯一约束 不能为空 + 性别 uSex varchar(2) 不能为空 只能是男或女 + 年龄 uAge int 不能为空 范围15-60 + 积分 uPoint int 不能为空 范围 >= 0 + + + ++ 主贴表(bbsTopic) + 主贴编号 tID int 主键 标识列, + 发帖人编号 tUID int 外键 引用用户信息表的用户编号 + 版块编号 tSID int 外键 引用版块表的版块编号 (标明该贴子属于哪个版块) + 贴子的标题 tTitle varchar(100) 不能为空 + 帖子的内容 tMsg text 不能为空 + 发帖时间 tTime datetime + 回复数量 tCount int + + + ++ 回帖表(bbsReply) + 回贴编号 rID int 主键 标识列, + 回帖人编号 rUID int 外键 引用用户信息表的用户编号 + 对应主贴编号 rTID int 外键 引用主贴表的主贴编号 (标明该贴子属于哪个主贴) + 回帖的内容 rMsg text 不能为空 + 回帖时间 rTime datetime + + + + 版块表(bbsSection) + 版块编号 sID int 标识列 主键 + 版块名称 sName varchar(10) 不能为空 + 版主编号 sUid int 外键 引用用户信息表的用户编号 + + +二、在上面的数据库、表的基础上完成下列题目: + + 1.现在有3个会员注册成功,请用一次插入多行数据的方法向bbsUsers表种插入3行记录,记录值如下: + 小雨点 女 20 0 + 逍遥 男 18 4 + 七年级生 男 19 2 + + 2.将bbsUsers表中的用户名和积分两列备份到新表bbsPoint表中,提示查询部分列:select 列名1,列名2 from 表名 + + 3.给论坛开设4个板块 + 名称 版主名 + 技术交流 小雨点 + 读书世界 七年级生 + 生活百科 小雨点 + 八卦区 七年级生 + + 4.向主贴和回帖表中添加几条记录 + + 主贴: + + 发帖人 板块名 帖子标题 帖子内容 发帖时间 回复数量 + 逍遥 八卦区 范跑跑 谁是范跑跑 2008-7-8 1 + 七年级生 技术交流 .NET 与JAVA的区别是什么呀? 2008-9-1 2 + 小雨点 生活百科 今年夏天最流行什么 有谁知道今年夏天最流行 2008-9-10 0 + 什么呀? + + 回帖: + 分别给上面三个主贴添加对应的回帖,回帖的内容,时间,回帖人自定 + + 5.因为会员“逍遥”发表了非法帖子,现将其从论坛中除掉,即删除该用户,请用语句实现(注意主外键,要删除主键,先要将引用了该主键的外键数据行删除) + + 6.因为小雨点发帖较多,将其积分增加10分 + + 7.因为板块“生活百科”灌水的人太少,现决定取消该板块,即删除(注意主外键) + + 8.因回帖积累太多,现需要将所有的回帖删除 + + + + + \ No newline at end of file diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232/\346\237\245\350\257\242\347\273\203\344\271\240.txt" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232/\346\237\245\350\257\242\347\273\203\344\271\240.txt" new file mode 100644 index 0000000000000000000000000000000000000000..a4f31327443f2ac25fa912629d1c38d7a2b01ecc --- /dev/null +++ "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\271\235\346\254\241\344\275\234\344\270\232/\346\237\245\350\257\242\347\273\203\344\271\240.txt" @@ -0,0 +1,23 @@ +在论坛数据库中完成以下题目 + +1.在主贴表中统计每个版块的发帖总数 + +2.在回帖表中统计每个主贴的回帖总数量 + +3.在主贴表中统计每个用户的发的主帖的总数 + +4.在主贴表中统计每个用户发的主贴的回复数量总和 + +5.在主贴表中查询每个版块的主贴的平均回复数量大于3的版块的平均回复数量 + +6.在用户信息表中查询出积分最高的用户的用户名,性别,年龄和积分 + +7.在主贴表中(bbsTopic)中将帖子的内容或标题中有“快乐”两字的记录查询出来 + +8.在用户信息表(bbsUsers)中将用户年龄在15-20之间并且积分在10分以上的优秀用户查询出来(用多种方法实现) + +9.在用户信息表(bbsUsers)中将用户名的第一个字为“小”,第三字为“大”的用户信息查询出来 + +10.在主贴表(bbsTopic)中将在2008-9-10 12:00:00 以后发的并且回复数量在10以上的帖子的标题和内容查询出来,并且为列取上对应的中文列名 + +11.在主贴表(bbsTopic)中将帖子的标题是以‘!’结尾的帖子的发帖人编号和回复数量查询出来 diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232/~WRL0001.tmp" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232/~WRL0001.tmp" new file mode 100644 index 0000000000000000000000000000000000000000..36ff6d9b0ec60ffbef5adea43ffd041a99ae0472 Binary files /dev/null and "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232/~WRL0001.tmp" differ diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232/\345\256\211\350\243\205 \345\273\272\345\272\223\345\273\272\350\241\250.docx" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232/\345\256\211\350\243\205 \345\273\272\345\272\223\345\273\272\350\241\250.docx" new file mode 100644 index 0000000000000000000000000000000000000000..9a162e6b7525372c02bb57c2deb480996f602922 Binary files /dev/null and "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\272\214\346\254\241\344\275\234\344\270\232/\345\256\211\350\243\205 \345\273\272\345\272\223\345\273\272\350\241\250.docx" differ diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\344\272\224\346\254\241\344\275\234\344\270\232/80\347\273\203\344\271\240\351\242\230.sql" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\272\224\346\254\241\344\275\234\344\270\232/80\347\273\203\344\271\240\351\242\230.sql" new file mode 100644 index 0000000000000000000000000000000000000000..5d840c4576e75ae3c438e9fa55a4ec2728b5004a --- /dev/null +++ "b/\346\236\227\346\231\223\351\233\252/\347\254\254\344\272\224\346\254\241\344\275\234\344\270\232/80\347\273\203\344\271\240\351\242\230.sql" @@ -0,0 +1,166 @@ +create database lxx; +use lxx + +--班级信息表Class +create table Class( +ClassId int primary key identity, --班级编号 +ClassName nvarchar(50) not null unique, --班级名称 +); + +--学生信息表Student +create table Student( +StudentId int primary key identity, --学生编号 +StudentName nvarchar(50) not null, --学生姓名 +StudentSex tinyint not null default 3 check(StudentSex=1 or StudentSex=2 or StudentSex=3), --学生性别 +StudentBirth date, --学生生日 +StudentAddress nvarchar(255) not null, --学生地址 +ClassId int not null default 0, --所属班级ID +foreign key (ClassId) references Class(ClassId), +); + +--课程信息表Course +create table Course( +CourseId int primary key identity, --课程编号 +CourseName nvarchar(50) not null unique, --课程名称 +CourseCredit tinyint not null default 0 check(CourseCredit>0), --课程学分 +); + +--班级课程表ClassCourse +create table ClassCourse( +ClassCourseId int primary key identity, --自增编号 +ClassId int not null , --班级编号 +CourseId int not null, --课程编号 +foreign key (ClassId) references Class(ClassId), +foreign key (ClassCourseId) references Course(CourseId), +); + +--分数信息表Score +create table Score( +ScoreId int primary key identity, --自增编号 +StudentId int not null, --学生编号 +CourseId int not null, --课程编号 +Score int not null check(Score>0), --分数 +foreign key (StudentId) references Student(StudentId), +foreign key (CourseId) references Course(CourseId), +); + +--学生信息表Student增加字段 +alter table Student add StudentIdentityCard varchar(20) not null default ''; +--身份证 + +--分数信息表Score增加字段 +alter table Score add IsResit tinyint not null default 0; +--是否补考:0不是 1是 + + +--增加数据 +--学校开设了3个班级:软件一班、软件二班、计算机应用 +insert into Class(ClassName) +Values('软件一班'); +insert into Class(ClassName) +Values('软件二班'); +insert into Class(ClassName) +Values('计算机应用技术班'); + +--软件一班有3个同学,姓名、性别、生日、家庭住址 +insert into Student(StudentName,StudentSex,StudentBirth,StudentAddress,ClassId) + values('刘正',1,'2000-01-01','广西省桂林市七星区空明西路10号鸾东小区',1); +insert into Student(StudentName,StudentSex,StudentBirth,StudentAddress,ClassId) + values('黄贵',1,'2001-03-20','江西省南昌市青山湖区艾溪湖南路南150米广阳小区',1); +insert into Student(StudentName,StudentSex,StudentBirth,StudentAddress,ClassId) + values('陈美',2,'2000-07-08','福建省龙岩市新罗区曹溪街道万达小区',1); + +--软件二班有2个同学,姓名、性别、生日、家庭住址 +insert into Student(StudentName,StudentSex,StudentBirth,StudentAddress,ClassId) + values('江文',1,'2000-08-10','安徽省合肥市庐阳区四里河路与潜山路交汇处万科城市之光',2); +insert into Student(StudentName,StudentSex,StudentBirth,StudentAddress,ClassId) + values('钟琪',2,'2001-03-21','南省长沙市雨花区红花坡社区',2); + ; +--计算机应用技术班有4个同学,姓名、性别、生日、家庭住址 +insert into Student(StudentName,StudentSex,StudentBirth,StudentAddress,ClassId) +values('曾小林',1,'1999-12-10','安徽省合肥市庐阳区四里河路与潜山路交汇处万科城市之光',3); +insert into Student(StudentName,StudentSex,StudentBirth,StudentAddress,ClassId) +values('欧阳天天',2,'2000-04-05','湖北省武汉市洪山区友谊大道与二环线交汇处融侨悦府',3); +insert into Student(StudentName,StudentSex,StudentBirth,StudentAddress,ClassId) +values('徐长卿',1,'2001-01-30','江苏省苏州市苏州工业园区独墅湖社区',3); +insert into Student(StudentName,StudentSex,StudentBirth,StudentAddress,ClassId) +values('李逍遥',1,'1999-11-11','广东省广州市白云区金沙洲岛御洲三街恒大绿洲',3); + +--软件一班开设课程,课程名称和学分分别为 +insert into Course(CourseName,CourseCredit) values('数据库高级应用',3); +insert into Course(CourseName,CourseCredit) values('javascript编程基础',3); +insert into Course(CourseName,CourseCredit) values('web前端程序设计基础',4); +insert into Course(CourseName,CourseCredit) values('动态网页设计.net基础',6); + +insert into ClassCourse(Classid,CourseId) values(1,1); +insert into ClassCourse(Classid,CourseId) values(1,2); +insert into ClassCourse(Classid,CourseId) values(1,3); +insert into ClassCourse(Classid,CourseId) values(1,4); + +--软件二班开设课程,课程名称和学时分别为 +insert into ClassCourse(Classid,CourseId) values(2,1); +insert into ClassCourse(Classid,CourseId) values(2,2); +insert into ClassCourse(Classid,CourseId) values(2,3); +insert into ClassCourse(Classid,CourseId) values(2,4); + +insert into Course(CourseName,CourseCredit) values('动态网页设计php基础',6); + +--计算机应用技术班开设课程,课程名称和学时分别为 +insert into ClassCourse(Classid,CourseId) values(3,1); +insert into ClassCourse(Classid,CourseId) values(3,2); +insert into ClassCourse(Classid,CourseId) values(3,3); +insert into ClassCourse(Classid,CourseId) values(3,13); + +--考试完成后,各学生各课程得分 +--刘正 +insert into Score(StudentId,CourseId,Score) values(1,1,80); +insert into Score(StudentId,CourseId,Score) values(1,2,78); +insert into Score(StudentId,CourseId,Score) values(1,3,65); +insert into Score(StudentId,CourseId,Score) values(1,4,90); +--黄贵 +insert into Score(StudentId,CourseId,Score) values(2,1,60); +insert into Score(StudentId,CourseId,Score) values(2,2,77); +insert into Score(StudentId,CourseId,Score) values(2,3,68); +insert into Score(StudentId,CourseId,Score) values(2,4,88); +--陈美 +insert into Score(StudentId,CourseId,Score) values(3,1,88); +insert into Score(StudentId,CourseId,Score) values(3,2,45); +insert into Score(StudentId,CourseId,Score) values(3,3,66); +insert into Score(StudentId,CourseId,Score) values(3,4,75); +--江文 +insert into Score(StudentId,CourseId,Score) values(4,1,56); +insert into Score(StudentId,CourseId,Score) values(4,2,80); +insert into Score(StudentId,CourseId,Score) values(4,3,75); +insert into Score(StudentId,CourseId,Score) values(4,4,66); +--钟琪 +insert into Score(StudentId,CourseId,Score) values(5,1,88); +insert into Score(StudentId,CourseId,Score) values(5,2,79); +insert into Score(StudentId,CourseId,Score) values(5,3,72); +insert into Score(StudentId,CourseId,Score) values(5,4,85); +--曾小林 +insert into Score(StudentId,CourseId,Score) values(6,1,68); +insert into Score(StudentId,CourseId,Score) values(6,2,88); +insert into Score(StudentId,CourseId,Score) values(6,3,73); +insert into Score(StudentId,CourseId,Score) values(6,4,63); +--欧阳天天 +insert into Score(StudentId,CourseId,Score) values(7,1,84); +insert into Score(StudentId,CourseId,Score) values(7,2,90); +insert into Score(StudentId,CourseId,Score) values(7,3,92); +insert into Score(StudentId,CourseId,Score) values(7,4,78); +--徐长卿 +insert into Score(StudentId,CourseId,Score) values(8,1,58); +insert into Score(StudentId,CourseId,Score) values(8,2,59); +insert into Score(StudentId,CourseId,Score) values(8,3,65); +insert into Score(StudentId,CourseId,Score) values(8,4,75); +--李逍遥 +insert into Score(StudentId,CourseId,Score) values(9,1,48); +insert into Score(StudentId,CourseId,Score) values(9,2,67); +insert into Score(StudentId,CourseId,Score) values(9,3,71); +insert into Score(StudentId,CourseId,Score) values(9,4,56); +insert into Score(StudentId,CourseId,Score) values(9,1,48); + +--修改和删除数据 +--分数表这边 李逍遥 数据库高级应用 成绩 插入重复了,请帮忙删除其中一条数据 +select * from Score +delete from Score where StudentId=9; + diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\272\214.sql" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\272\214.sql" new file mode 100644 index 0000000000000000000000000000000000000000..fd72c639b6b31c75c19e2e2ac598440854086960 --- /dev/null +++ "b/\346\236\227\346\231\223\351\233\252/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\272\214.sql" @@ -0,0 +1,54 @@ +create database lxx8 +use lxx8 + +create table orders( +orderid int primary key identity, +orderdate nvarchar(50) +); + +insert into orders values('2008-02-10 00:00:00.000'); +insert into orders values('2008-02-15 00:00:00.000'); +insert into orders values('2008-03-10 00:00:00.000'); + +create table orderitem( +itemid int primary key identity, +orderid int , +itemtype nvarchar(8), +itemname nvarchar(8), +thenumber int, +themoney int +); + +insert into orderitem values(1,'文具','笔',72,2); +insert into orderitem values(1,'文具','尺',10,1); +insert into orderitem values(1,'体育用品','篮球',1,56); +insert into orderitem values(2,'文具','笔',36,2); +insert into orderitem values(2,'文具','固体胶',20,3); +insert into orderitem values(2,'日常用品','透明胶',2,1); +insert into orderitem values(2,'体育用品','羽毛球',20,3); +insert into orderitem values(3,'文具','订书机',20,3); +insert into orderitem values(3,'文具','订书针',10,3); +insert into orderitem values(3,'文具','裁纸刀',5,5); +insert into orderitem values(4,'文具','笔',20,2); +insert into orderitem values(4,'文具','信纸',50,1); +insert into orderitem values(4,'日常用品','毛巾',4,5); +insert into orderitem values(4,'日常用品','透明胶',30,1); +insert into orderitem values(4,'体育用品','羽毛球',20,3); + +select sum(thenumber) from orderitem + +select orderid,sum(thenumber) 物品数量,avg(themoney) 平均单价 from orderitem +group by orderid +having avg(themoney)<10 and orderid<3 + +select orderid,sum(thenumber) 物品数量,avg(themoney) 平均单价 from orderitem +group by orderid +having avg(themoney)<10 and sum(thenumber)>50 + +select orderid 产品编号,count(orderid) 产品购买数次 from orderitem group by orderid + +select orderid 订单编号,sum(thenumber) 物品数量,avg(themoney) 平均单价 from orderitem +group by orderid +having sum(thenumber)>100 + +select itemname 产品名称,count(orderid) 产品购买数次,sum(thenumber) 订单总数量,avg(themoney) 平均单价 from orderitem group by itemname \ No newline at end of file diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\272\214.txt" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\272\214.txt" new file mode 100644 index 0000000000000000000000000000000000000000..195cdb0c30bdd178da93eacd70e20618d4007f35 --- /dev/null +++ "b/\346\236\227\346\231\223\351\233\252/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\272\214.txt" @@ -0,0 +1,28 @@ +先创建如图所示表 + +订单表(orders)列为:订单编号(orderId 主键) 订购日期(orderDate) + +订购项目表(orderItem),列为: +项目编号(ItemiD)订单编号(orderId)产品类别(itemType) +产品名称(itemName) 订购数量(theNumber) 订购单价(theMoney) + +1.查询所有订单订购的所有物品数量总和 + +2.查询订单编号小于3的,平均单价小于10 每个订单订购的所有物品的数量和以及平均单价 + + +3.查询平均单价小于10并且总数量大于 50 每个订单订购的所有物品数量和以及平均单价 + +4.查询每种类别的产品分别订购了几次,例如: + 文具 9 + 体育用品 3 + 日常用品 3 + +5.查询每种类别的产品的订购总数量在100以上的订购总数量和平均单价 + +6.查询每种产品的订购次数,订购总数量和订购的平均单价,例如: + + 产品名称 订购次数 总数量 平均单价 + 笔 3 120 2 + + diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\272\214\346\225\260\346\215\256\345\233\276\347\211\207.bmp" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\272\214\346\225\260\346\215\256\345\233\276\347\211\207.bmp" new file mode 100644 index 0000000000000000000000000000000000000000..dd34781ae345e0b7c5baa83472ee848095bbcf55 Binary files /dev/null and "b/\346\236\227\346\231\223\351\233\252/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232\344\272\214\346\225\260\346\215\256\345\233\276\347\211\207.bmp" differ diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\345\205\255\346\254\241\344\275\234\344\270\232/80\347\273\203\344\271\240\351\242\230\346\237\245\350\257\242.sql" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\345\205\255\346\254\241\344\275\234\344\270\232/80\347\273\203\344\271\240\351\242\230\346\237\245\350\257\242.sql" new file mode 100644 index 0000000000000000000000000000000000000000..ec4e2f97390d242f7948565d9ec7d975e259becc --- /dev/null +++ "b/\346\236\227\346\231\223\351\233\252/\347\254\254\345\205\255\346\254\241\344\275\234\344\270\232/80\347\273\203\344\271\240\351\242\230\346\237\245\350\257\242.sql" @@ -0,0 +1,226 @@ +create database lxx; +use lxx; +--班级信息表 +create table Class( +classid int primary key identity not null, --班级编号 +classname nvarchar(50) not null, --班级名称 +); +--学生信息表 +create table Student( +studentid int identity primary key not null, --班级编号 +studentname nvarchar(50) not null, --学生姓名 +studentsex tinyint not null default 3, --学生性别(tinyint 男1女2) +studentbirth date, --学生生日 +studentaddress nvarchar(255) not null, --学生地址 +classid int not null, --所属班级Id +); +--课程信息表 +create table Course( +courseid int primary key not null identity, --课程编号 +coursename nvarchar(50) not null, --课程名称 +coursecredit tinyint not null default 0, --课程学分 +); +--班级课程表 +create table ClassCourse( +classcourseid int not null primary key identity, --自增编号 +classid int not null, --班级编号 +courseid int not null, --课程编号 +); +--分数信息表 +create table Score( +scoreid int identity not null primary key, --自增编号 +studentid int not null, --学生编号 +courseid int not null, --课程编号 +score int not null, --分数 +); +--给学生信息表Student增加字段 +alter table Student add StudentIdentityCard varchar(20) not null; --身份证 +--给分数信息表Score增加字段 +alter table Score add IsResit tinyint not null default 0; --是否是补考:0不是,1是 + +--使用sql语句给班级表 ClassName 增加唯一约束 +alter table Class add constraint UQ_Class_ClassName unique (ClassName); +--使用sql语句给课程表 CourseName 增加唯一约束 +alter table Course add constraint UQ_Course_CourseName unique (CourseName); +--使用sql语句给学生表 ClassId 增加默认值为0(默认值约束) +alter table Student add constraint DF_Student_ClassId default(0) for ClassId; +--使用sql语句设置学生表 StudentSex 只能为1或者2或者3(Check约束) +alter table Student add constraint CK_Student_StudentSex check(StudentSex=1 or StudentSex=2); +--使用sql语句设置分数表 Score 字段只能大于等于0(check约束) +alter table Score add constraint CK_Score_Score check(Score>0); +--使用sql语句设置课程表 CourseCredit 字段只能大于0(check约束) +alter table Course add constraint CK_Course_CourseCredit check(CourseCredit>0); + +--使用sql语句设置班级课程表ClassId 对应是 班级表ClassId 的外键 (外键约束) +alter table ClassCourse add constraint FK_ClassCourse_ClassId foreign key(ClassId) references Class(ClassId); +--使用sql语句设置班级课程表CourseId 对应是 课程表CourseId 的外键 (外键约束) +alter table ClassCourse add constraint FK_ClassCourse_CourseId foreign key(CourseId) references Course(CourseId); +--使用sql语句设置分数表StudentId 对应是 学生表StudentId 的外键 (外键约束) +alter table Score add constraint FK_Score_StudenId foreign key(StudentId) references Student(StudentId); +--使用sql语句设置分数表CourseId 对应是 课程表CourseId 的外键 (外键约束) +alter table Score add constraint FK_Score_CourseId foreign key(CourseId) references Course(CourseId); + +--学校开设了3个班级:软件一班、软件二班、计算机应用技术班 请插入班级表相关数据 +insert into Class(classname) values('软件一班'); +insert into Class(classname) values('软件二班'); +insert into Class(classname) values('计算机应用技术班'); + +--软件一班有3个同学,姓名、性别、生日、家庭住址 分别是 +insert into Student + values('刘正',1,'2000-01-01','广西省桂林市七星区空明西路10号鸾东小区',1,2244310804); +insert into Student + values('黄贵',1,'2001-03-20','江西省南昌市青山湖区艾溪湖南路南150米广阳小区',1,2244310801); +insert into Student + values('陈美',2,'2000-07-08','福建省龙岩市新罗区曹溪街道万达小区',1,2244310802); + +--软件二班有2个同学,姓名、性别、生日、家庭住址 分别是 +insert into Student +values('江文',1,'2000-08-10','安徽省合肥市庐阳区四里河路与潜山路交汇处万科城市之光',2,2244310803); +insert into Student +values('钟琪',2,'2001-03-21','湖南省长沙市雨花区红花坡社区',2,2244310805); + +--计算机应用技术班有4个同学,姓名、性别、生日、家庭住址 分别是 +insert into Student +values('曾小林',1,'1999-12-10','安徽省合肥市庐阳区四里河路与潜山路交汇处万科城市之光',3,2244310806); +insert into Student +values('欧阳天天',2,'2000-04-05','湖北省武汉市洪山区友谊大道与二环线交汇处融侨悦府',3,2244310807); +insert into Student +values('徐长卿',1,'2001-01-30','江苏省苏州市苏州工业园区独墅湖社区',3,2244310808); +insert into Student +values('李逍遥',1,'1999-11-11','广东省广州市白云区金沙洲岛御洲三街恒大绿洲',3,2244310809); + +insert into Course(coursename,coursecredit) values ('数据库高级应用',3); +insert into Course(coursename,coursecredit) values ('javascript编程基础',3); +insert into Course(coursename,coursecredit) values ('web前端程序设计基础',4); +insert into Course(coursename,coursecredit) values ('动态网页设计.net基础',6); +--软件一班开设课程,课程名称和学分分别为 +insert into ClassCourse(classid,courseid) values(1,1); +insert into ClassCourse(classid,courseid) values(1,2); +insert into ClassCourse(classid,courseid) values(1,3); +insert into ClassCourse(classid,courseid) values(1,4); +--软件二班开设课程,课程名称和学时分别为 +insert into ClassCourse(classid,courseid) values(2,1); +insert into ClassCourse(classid,courseid) values(2,2); +insert into ClassCourse(classid,courseid) values(2,3); +insert into ClassCourse(classid,courseid) values(2,4); +--计算机应用技术班开设课程,课程名称和学时分别为 +insert into Course(coursename,coursecredit) values ('动态网页设计php基础',6); +insert into ClassCourse(classid,courseid) values(3,1); +insert into ClassCourse(classid,courseid) values(3,2); +insert into ClassCourse(classid,courseid) values(3,3); +insert into ClassCourse(classid,courseid) values(3,5); + +--考试完成后,各学生各课程得分 +insert into Score(studentid,courseid,score) values(1,1,80); +insert into Score(studentid,courseid,score) values(1,2,78); +insert into Score(studentid,courseid,score) values(1,3,65); +insert into Score(studentid,courseid,score) values(1,4,90); + +insert into Score(studentid,courseid,score) values(2,1,60); +insert into Score(studentid,courseid,score) values(2,2,77); +insert into Score(studentid,courseid,score) values(2,3,68); +insert into Score(studentid,courseid,score) values(2,4,88); + +insert into Score(studentid,courseid,score) values(3,1,88); +insert into Score(studentid,courseid,score) values(3,2,45); +insert into Score(studentid,courseid,score) values(3,3,66); +insert into Score(studentid,courseid,score) values(3,4,75); + +insert into Score(studentid,courseid,score) values(4,1,56); +insert into Score(studentid,courseid,score) values(4,2,80); +insert into Score(studentid,courseid,score) values(4,3,75); +insert into Score(studentid,courseid,score) values(4,4,66); + +insert into Score(studentid,courseid,score) values(5,1,88); +insert into Score(studentid,courseid,score) values(5,2,79); +insert into Score(studentid,courseid,score) values(5,3,72); +insert into Score(studentid,courseid,score) values(5,4,85); + +insert into Score(studentid,courseid,score) values(6,1,68); +insert into Score(studentid,courseid,score) values(6,2,88); +insert into Score(studentid,courseid,score) values(6,3,73); +insert into Score(studentid,courseid,score) values(6,5,63); + +insert into Score(studentid,courseid,score) values(7,1,84); +insert into Score(studentid,courseid,score) values(7,2,90); +insert into Score(studentid,courseid,score) values(7,3,92); +insert into Score(studentid,courseid,score) values(7,5,78); + +insert into Score(studentid,courseid,score) values(8,1,58); +insert into Score(studentid,courseid,score) values(8,2,59); +insert into Score(studentid,courseid,score) values(8,3,65); +insert into Score(studentid,courseid,score) values(8,5,75); + +insert into Score(studentid,courseid,score) values(9,1,48); +insert into Score(studentid,courseid,score) values(9,2,67); +insert into Score(studentid,courseid,score) values(9,3,71); +insert into Score(studentid,courseid,score) values(9,4,56); +insert into Score(studentid,courseid,score) values(9,1,48); + +--分数表这边 李逍遥 数据库高级应用 成绩 插入重复了,请帮忙删除其中一条数据 +select * from Score +delete from score where scoreid=37; +--计算机应用技术班 的 欧阳天天 生日写错了,正确的生日应该是:2000-04-06,请用sql进行修改 +select * from Student +update student set studentbirth='2000-04-06' where studentid=7; +--计算机应用技术班 的 徐长卿 的 javascript编程基础 分数填错,正确的分数应该是:61,请用sql进行修改 +select * from Score +update score set score=61 where studentid=8 and courseid=2; + +--查询所有的班级 Class 信息 +select * from Class +--查询所有的学生 Student 信息 +select * from Student +--查询所有的课程 Course 信息 +select * from Course +--查询所有的班级课程 ClassCourse 信息 +select * from ClassCourse +--查询所有的分数 Score 信息 +select * from Score +--查询所有的课程 Course 信息,并且按照学分从大到小排列 (关键字:order by) +select * from Course order by coursecredit desc ; --(desc从大到小) +--查询所有的分数 Score 信息,并且按照分数从小到大排列 +select * from Score order by Score asc; --(asc从小到大) +--查询所有的学生 Student 信息,并且按照年龄从小到大排列 +select * from Student order by studentbirth desc; +--查询软件一班所有的学生信息,显示学生id,姓名、性别、生日、住址 +select studentid,studentname,studentsex,studentbirth,studentaddress from Student where classid=1; +--查询所有的女生,显示学生id,姓名、性别、生日、住址 +select studentid,studentname,studentsex,studentbirth,studentaddress from Student where studentsex=2; +--查询2000年出生的所有学生,显示学生id,姓名、性别、生日、住址 +select studentid,studentname,studentsex,studentbirth,studentaddress from Student where studentbirth>='2000-1-1' and studentbirth<='2000-12-31'; +--查询姓是欧阳的学生 (模糊查询 关键字:like) +select * from Student where studentname like '%欧阳%'; +--查询地址是桂林市的学生 +select * from Student where studentaddress like '%桂林市%'; +--查询姓李的学生,并且是三个字的 +select * from Student where studentname like '李__'; +--查询 软件一班 有几个学生 +select count(*) as 一班学生 from Student where classid=1; +--查询 软件一班 有几门课程 +select count(courseid) as 一班课程 from ClassCourse where classid=1; +--查询 刘正(学生编号为1) 的总分 +select sum(score) 总分 from Student +join score on student.studentid=score.studentid +where Student.studentid=1; +--查询所有学生 数据库高级应用 的平均分 +select avg(score) 平均分 from Course +join score on Course.courseid=score.courseid +where course.courseid=1 +select * from course +--查询 所有学生 的总分 +select sum(score) from Student +join Score on Student.studentid=score.studentid; +--查询 所有学生 的平均分 +select avg(score) from Student +join Score on Student.studentid=score.studentid; +--查询 所有学生 的平均分,并且按照平均分从高到低排列 +select studentname 学生姓名 ,avg(score) 平均分 from Student +join Score on Student.studentid=score.studentid +group by studentname +order by sum(Score) desc; +--查询 所有学生中 平均分 大于80分的学生(聚合查询 + 分组 + having) +select studentname 学生姓名, avg(Score) 平均分 from Student +join Score on Student.studentid=score.studentid +group by Student.studentname +having avg(score)>80 diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\345\215\201\344\270\200\346\254\241\344\275\234\344\270\232/SQLQuery2.sql" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\345\215\201\344\270\200\346\254\241\344\275\234\344\270\232/SQLQuery2.sql" new file mode 100644 index 0000000000000000000000000000000000000000..331011cbdd96e88e81ca3884752ca03cf7792135 --- /dev/null +++ "b/\346\236\227\346\231\223\351\233\252/\347\254\254\345\215\201\344\270\200\346\254\241\344\275\234\344\270\232/SQLQuery2.sql" @@ -0,0 +1,62 @@ +create database lxx +use lxx + +--上网卡信息表(tbl_card) +create table tb1_card( +id nvarchar(20) primary key, --id: 卡号,主键 +[password] int not null, --passWord:密码 +balance int , --balance:卡上的余额 +username nvarchar(20) --userName:该上网卡所属的用户名 +); + +alter table tb1_card alter column [password] nvarchar(20) + +--网吧机器说明表(tbl_computer) +create table tb1_computer( +id nvarchar(10) primary key , --id:机器编号,主键 +onuse int check(onuse=1 or onuse=0), --onUse:该机器是否正在使用,0为未使用,1为正在使用 +note text --note:该机器的说明 +); + +--上网记录表(tbl_record): +create table tb1_record( +id int primary key, --id:记录编号,主键 +cardid nvarchar(20) references tb1_card(id), --cardId:本次上网的卡号,外键 +computerid nvarchar(10) references tb1_computer(id), --ComputerId:本次上网记录所使用的机器号,外键 +begintime smalldatetime, --beginTime:本次上网记录的开始时间 +endtime smalldatetime, --endTime:本次上网记录的结束时间 +fee int --fee:本次上网的费用 +); +insert into tb1_card(id, [password], balance, username) +values('0023_ABC','555',98,'张军'), +('0025_bbd','abe',300,'朱骏'), +('0036_CCD','何柳',100,'何柳'), +('0045_YGR','0045_YGR',58,'证验'), +('0078_RJV','55885fg',600,'校庆'), +('0089_EDE','zhang',134,'张俊') +select * from tb1_card + +insert into tb1_computer(id, onuse, note) +values('02',0,'25555'), +('03',1,'55555'), +('04',0,'66666'), +('05',1,'88888'), +('06',0,'688878'), +('B01',0,'558558') +select * from tb1_computer +select * from tb1_card +select * from tb1_record +insert into tb1_record(id, cardid, computerid, begintime, endtime, fee) +values( 23,'0078_RJV','B01','2007-07-15 19:00:00','2007-07-15 21:00:00',20) + + +insert into tb1_record(id, cardid, computerid, begintime, endtime, fee) +values( 34,'0025_bbd','02','2006-12-25 18:00:00','2006-12-25 22:00:00',23), +(45 ,'0023_ABC','03','2006-12-23 15:26:00','2006-12-23 22:55:00',50), +(46,'0023_ABC','03','2006-12-22 15:26:00','2006-12-22 15:55:00',6), +(47,'0023_ABC','03','2006-12-23 15:26:00','2006-12-23 15:55:00',50), +(48,'0023_ABC','03','2006-1-6 15:26:00','2006-1-6 15:55:00',6), +(55,'0023_ABC','03','2006-7-21 15:26:00','2006-7-21 15:55:00',50), +(64,'0045_YGR','04','2006-12-24 18:00:00','2006-12-24 22:00:00',3), +(65,'0025_bbd','02','2006-12-28 18:00:00','2006-12-28 22:00:00',23), +(98,'0025_bbd','02','2006-12-28 18:00:00','2006-12-28 22:00:00',23) \ No newline at end of file diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\345\215\201\344\272\214\346\254\241\344\275\234\344\270\232/SQLQuery3.sql" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\345\215\201\344\272\214\346\254\241\344\275\234\344\270\232/SQLQuery3.sql" new file mode 100644 index 0000000000000000000000000000000000000000..8e8a06e773b4cdc573b53abcd817817c782b8d39 --- /dev/null +++ "b/\346\236\227\346\231\223\351\233\252/\347\254\254\345\215\201\344\272\214\346\254\241\344\275\234\344\270\232/SQLQuery3.sql" @@ -0,0 +1,82 @@ +create database lxx +use lxx + +--上网卡信息表(tbl_card) +create table tb1_card( +id nvarchar(20) primary key, --id: 卡号,主键 +[password] int not null, --passWord:密码 +balance int , --balance:卡上的余额 +username nvarchar(20) --userName:该上网卡所属的用户名 +); + +alter table tb1_card alter column [password] nvarchar(20) + +--网吧机器说明表(tbl_computer) +create table tb1_computer( +id nvarchar(10) primary key , --id:机器编号,主键 +onuse int check(onuse=1 or onuse=0), --onUse:该机器是否正在使用,0为未使用,1为正在使用 +note text --note:该机器的说明 +); + +--上网记录表(tbl_record): +create table tb1_record( +id int primary key, --id:记录编号,主键 +cardid nvarchar(20) references tb1_card(id), --cardId:本次上网的卡号,外键 +computerid nvarchar(10) references tb1_computer(id), --ComputerId:本次上网记录所使用的机器号,外键 +begintime smalldatetime, --beginTime:本次上网记录的开始时间 +endtime smalldatetime, --endTime:本次上网记录的结束时间 +fee int --fee:本次上网的费用 +); +insert into tb1_card(id, [password], balance, username) +values('0023_ABC','555',98,'张军'), +('0025_bbd','abe',300,'朱骏'), +('0036_CCD','何柳',100,'何柳'), +('0045_YGR','0045_YGR',58,'证验'), +('0078_RJV','55885fg',600,'校庆'), +('0089_EDE','zhang',134,'张俊') +select * from tb1_card + +insert into tb1_computer(id, onuse, note) +values('02',0,'25555'), +('03',1,'55555'), +('04',0,'66666'), +('05',1,'88888'), +('06',0,'688878'), +('B01',0,'558558') +select * from tb1_computer +select * from tb1_card +select * from tb1_record +insert into tb1_record(id, cardid, computerid, begintime, endtime, fee) +values( 23,'0078_RJV','B01','2007-07-15 19:00:00','2007-07-15 21:00:00',20) + + +insert into tb1_record(id, cardid, computerid, begintime, endtime, fee) +values( 34,'0025_bbd','02','2006-12-25 18:00:00','2006-12-25 22:00:00',23), +(45 ,'0023_ABC','03','2006-12-23 15:26:00','2006-12-23 22:55:00',50), +(46,'0023_ABC','03','2006-12-22 15:26:00','2006-12-22 15:55:00',6), +(47,'0023_ABC','03','2006-12-23 15:26:00','2006-12-23 15:55:00',50), +(48,'0023_ABC','03','2006-1-6 15:26:00','2006-1-6 15:55:00',6), +(55,'0023_ABC','03','2006-7-21 15:26:00','2006-7-21 15:55:00',50), +(64,'0045_YGR','04','2006-12-24 18:00:00','2006-12-24 22:00:00',3), +(65,'0025_bbd','02','2006-12-28 18:00:00','2006-12-28 22:00:00',23), +(98,'0025_bbd','02','2006-12-28 18:00:00','2006-12-28 22:00:00',23) + +--1. 查询出用户名为'张军'的上网卡的上网记录,要求显示卡号,用户名,机器编号、开始时间、结束时间,和消费金额,并按消费金额降序排列 +select * from tb1_card +join tb1_record on tb1_card.id=tb1_record.cardid +where tb1_card.username='张军' +order by fee desc +--2. 查询出每台机器上的上网次数和消费的总金额 +select computerid,count(*),sum(fee) from tb1_record group by computerid +--3. 查询出所有已经使用过的上网卡的消费总金额 +select cardid,count(*),sum(fee) from tb1_record group by cardid +--4. 查询出从未消费过的上网卡的卡号和用户名 +select tb1_card.id,tb1_card.username from tb1_card + where tb1_card.id not in(select cardid from tb1_card join tb1_record on tb1_card.id=tb1_record.cardid) +--5. 将密码与用户名一样的上网卡信息查询出来 +select * from tb1_card t1 join tb1_card t2 on t1.username=t2.username where t1.password=t2.username +--6. 查询出使用次数最多的机器号和使用次数 +select computerid,max(count(*)),count(*) from tb1_record group by computerid +--7. 查询出卡号是以'ABC'结尾的卡号,用户名,上网的机器号和消费金额 +select cardid,username,computerid,fee from tb1_card join tb1_record on tb1_card.id= tb1_record.cardid where cardid like '%ABC' +select top 3 cardid,username,computerid,begintime,endtime,fee from tb1_card join tb1_record on tb1_card.id= tb1_record.cardid order by fee desc \ No newline at end of file diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232/SQLQuery1.sql" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232/SQLQuery1.sql" new file mode 100644 index 0000000000000000000000000000000000000000..1bb7939532eed4eb516a47695fab1de32df9d70a --- /dev/null +++ "b/\346\236\227\346\231\223\351\233\252/\347\254\254\345\215\201\346\254\241\344\275\234\344\270\232/SQLQuery1.sql" @@ -0,0 +1,73 @@ +create database lxx +use lxx +--学生信息表(stuInfo) +create table stuinfo( +stuid int primary key identity, +stuname nvarchar(20), +stuage int, +stusex int, +time smalldatetime +); + +--课程信息表(courseInfo) +create table courseinfo( +courseid int primary key identity, +coursename nvarchar(20), +coursemarks int +); + +--分数信息表(scoreInfo) + create table scoreinfo ( + scoreid int primary key identity, + stuid int references stuinfo (stuid), + courseid int references courseinfo(courseid), + score int + ); + + insert into stuinfo (stuname,stuage,stusex) + values ('top',19,1) + + select * from stuinfo + + insert into stuinfo (stuname,stuage,stusex) + values ('jack',20,0),('rose',21,1),('lulu',19,1),('lili',21,0) + + insert into stuinfo (stuname,stuage,stusex,[time]) + values ('abc',20,1,getdate()) + + insert into courseinfo(coursename,coursemarks) + values ('javabase',4),('html',2),('javascript',2),('sqlbase',2) + + select * from courseinfo +select * from scoreinfo + insert into scoreinfo(stuid,courseid,score) + values(1,1,80),(1,2,85),(1,4,50),(2,1,75),(2,3,45),(2,4,75),(3,1,45),(4,1,95),(4,2,75),(4,3,90),(4,4,45) + + select * from stuinfo + + --1.查询出每个学生所选修的课程的数量和所选修的课程的考试的平均分 + select scoreinfo.stuid, count(*) 课程的数量,avg(score) 平均分 from stuinfo + join scoreinfo on stuinfo.stuid=scoreinfo.stuid + group by scoreinfo.stuid + +--2.查询出每门课程的选修的学生的个数和学生考试的总分 +select courseid,count(*),sum(score) from stuinfo join scoreinfo on stuinfo.stuid=scoreinfo.stuid group by courseid + +--3.查询出性别一样并且年龄一样的学生的信息 +select * from stuinfo s1 join stuinfo s2 on s1.stusex=s2.stusex +where s1.stuid != s2.stuid and s1.stuage=s2.stuage and s1.stusex=s2.stusex + +--4.查询出学分一样的课程信息 +select * from courseinfo c1 join courseinfo c2 on c1.coursemarks=c2.coursemarks where c1.coursemarks=c2.coursemarks and c1.courseid != c2.courseid +--5.查询出参加了考试的学生的学号,姓名,课程号和分数 +select stuinfo.stuid 学号,stuinfo.stuname 姓名,courseinfo.coursename 课程号,scoreinfo.score 分数 from stuinfo join scoreinfo on stuinfo.stuid=scoreinfo.stuid join courseinfo on courseinfo.courseid=scoreinfo.courseid +--6.查询出参加了考试的学生的学号,课程号,课程名,课程学分和分数 +select stuinfo.stuid 学号,stuinfo.stuname 姓名,courseinfo.coursename 课程号,courseinfo.coursemarks 课程分数, scoreinfo.score 分数 from stuinfo join scoreinfo on stuinfo.stuid=scoreinfo.stuid join courseinfo on courseinfo.courseid=scoreinfo.courseid +--7.查询出没有参加考试的学生的学号和姓名 +select stuinfo.stuid 学号,stuinfo.stuname 姓名 from stuinfo where stuinfo.stuid not in(select stuinfo.stuid from stuinfo join scoreinfo on stuinfo.stuid=scoreinfo.stuid) +--8.查询出是周六周天来报到的学生 + +--9.查询出姓名中有字母a的学生的信息 +select * from stuinfo where stuname like '%a%' +--10.查询出选修了2门课程以上的并且考试平均分在70以上的学生的学号和考试平均分以及选修课程的数量 +select stuinfo.stuid,avg(score),count(*) from stuinfo join scoreinfo on stuinfo.stuid=scoreinfo.stuid group by stuinfo.stuid having count(*)>2 and avg(score)>70 \ No newline at end of file diff --git "a/\346\236\227\346\231\223\351\233\252/\347\254\254\345\233\233\346\254\241\344\275\234\344\270\232/98\347\273\203\344\271\240\351\242\230\344\272\214.sql" "b/\346\236\227\346\231\223\351\233\252/\347\254\254\345\233\233\346\254\241\344\275\234\344\270\232/98\347\273\203\344\271\240\351\242\230\344\272\214.sql" new file mode 100644 index 0000000000000000000000000000000000000000..0a6a6b6d1c92edd2526cf8d898ecfea1d5bc17db --- /dev/null +++ "b/\346\236\227\346\231\223\351\233\252/\347\254\254\345\233\233\346\254\241\344\275\234\344\270\232/98\347\273\203\344\271\240\351\242\230\344\272\214.sql" @@ -0,0 +1,52 @@ +create database Bank; +use Bank; +--账号信息表 +create table AccountInfo( +accountid int identity not null, --账户编号 +accountcode varchar(20) not null, --身份证号码 +accountphone varchar(20), --电话号码 +realname varchar(20) not null, --真实姓名 +); +--银行卡表BankCard +create table BankCard( +cardno varchar(30) primary key, --银行卡号 +accountid int not null, --账户编号 +cardpwd varchar(30) not null, --银行密码 +cardbalance money not null, --银行卡余额 +cardstate tinyint not null, --银行卡状态:1正常;2挂失;3冻结;4注销;5睡眠 +cardtime varchar(30) not null, --开卡时间 +); +--创建 交易信息表 CardExchange +create table CardExchange( +ExchangeId int primary key identity, --交易编号 +CardNo varchar(30) not null, --银行卡号 +MoneyInBank money not null, --存钱金额 +MoneyOutBank money not null, --取钱金额 +ExchangeTime smalldatetime not null, --交易时间 +); + +--给 账号信息表 AccountInfo 增加字段 +alter table AccountInfo add OpenTime smalldatetime not null; --开户时间 +--给 银行卡表 BankCard 修改字段 +alter table BankCard alter column cardtime smalldatetime; --开卡时间 + +--AccountInfo.AccountId 设置为主键 +alter table AccountInfo add constraint PK_AccountInfo_AccountId primary key(AccountId); +--AccountInfo.AccountCode 设置为唯一 +alter table AccountInfo add constraint UQ_AccountInfo_AccountCode unique(AccountCode); +--AccountInfo.OpenTime 默认值设置为getdate() +alter table AccountInfo add constraint DF_AccountInfo_OpenTime default(getdate()) for OpenTime; +--AccountInfo.AccountPhone 设置为非空 +alter table AccountInfo alter column AccountPhone varchar(20) not null; +--BankCard.CardBalance 默认值设置为0.00 +alter table BankCard add constraint DF_BankCard_CardBalance default(0.00) for CardBalance; +--BankCard.CardState 默认值设置为1 +alter table BankCard add constraint DF_BankCard_CardState default(1) for CardState; +--BankCard.AccountId 设置为 AccountInfo.AccountId 的外键 +alter table BankCard add constraint FK_BankCard_AccountId foreign key (AccountId) references AccountInfo(AccountId); +--CardExchange.CardNo 设置为 BankCard.CardNo 的外键 +alter table CardExchange add constraint FK_CardExchange_CardNo foreign key (CardNo) references BankCard(CardNo); +--CardExchange.MoneyInBank 设置要大于等于0 +alter table CardExchange add constraint CK_CardExchange_MoneyInBank check(MoneyInBank>0); +--CardExchange.MoneyOutBank 设置要大于等于0 +alter table CardExchange add constraint CK_CardExchange_MoneyOutBank check(MoneyOutBank>0); \ No newline at end of file