代码
ใช้ต้นแบบ
ไป
-----------创建数据库------------
ถ้ามี (เลือก * จาก sysdatabases โดยที่ name='stuDB')
วางฐานข้อมูล stuDB
สร้างฐานข้อมูล stuDB
ในระดับประถมศึกษา
-
ชื่อ='stuDB_data',
filename='D:stuDB_data.mdf',
ขนาด=3เมกะไบต์,
ขนาดสูงสุด=10mb,
การเติบโตของไฟล์=1mb
-
เข้าสู่ระบบ
-
ชื่อ='stuDB_log',
filename='D:stuDB_data.ldf',
ขนาด=1เมกะไบต์,
การเติบโตของไฟล์=1mb
-
-----------创建数据库表------------
ใช้สตูดีบี
ไป
ถ้ามี (เลือก * จาก sysobjects โดยที่ name='stuInfo')
วางตาราง stuInfo
สร้างตาราง stuInfo
-
stuId int identity(1,1) คีย์หลักไม่เป็นโมฆะ
stuName varchar(20) ไม่เป็นโมฆะ
stuNo varchar (20) ไม่เป็นโมฆะ
stuSex char(6) ไม่เป็นโมฆะ
stuAge int ไม่เป็นโมฆะ
ข้อความ stuAddress เป็นโมฆะ
-
ไป
ถ้ามี (เลือก * จาก sysobjects โดยที่ name='stuMarks')
วางตาราง stuMarks
สร้าง stuMarks ตาราง
-
marksId int identity(1,1) คีย์หลักไม่เป็นโมฆะ
ExamNo varchar(50) ไม่ใช่ null, --考号
stuNo char(6) ไม่ใช่ null,--学号
wroteExam int null,--笔试成绩
LabExam int null--บทช่วยสอน
-
ไป
--向学员信息表stuInfo插入数据--
INSERT INTO stuInfo(stuName,stuNo,stuSex,stuAge,stuAddress)VALUES('张秋丽','s25301','男',18,'北京海淀')
INSERT INTO stuInfo(stuName,stuNo,stuSex,stuAge,stuAddress) VALUES('李斯文','s25303','女',22,'河南洛阳')
INSERT INTO stuInfo(stuName,stuNo,stuSex,stuAge) VALUES('李文才','s25302','男',31)
INSERT INTO stuInfo(stuName,stuNo,stuSex,stuAge,stuAddress) VALUES('欧阳俊雄','s25304','男',28,'威武哈')
--向学员成绩表stuMarks插入数据--
แทรกลงใน stuMarks (ExamNo, stuNo, การสอบเขียน, LabExam) ค่า ('E2005070001', 's25301', 80,58)
INSERT INTO stuMarks(ExamNo,stuNo,writeExam) ค่า('E2005070002','s25302',50)
แทรกลงใน stuMarks (ExamNo, stuNo, การสอบเขียน, LabExam) ค่า ('E2005070003', 's25303', 97,82)
--查看数据--
เลือก * จาก stuInfo
เลือก * จาก stuMarks
/*=======查询数据练习=========*/
--1.查询两表的数据--
เลือก * จาก stuInfo
เลือก * จาก stuMarks
--2.查询男学员名单--
เลือก * จาก stuInfo โดยที่ stuSex='男'
--3.查询笔试成绩优秀的学员情况(成绩在75~100之间)--
เลือก * จาก stumarks โดยที่ writeexam ระหว่าง 75 ถึง 100
--4.查询参加本次考试的学员成绩,包括学员姓名,笔试成绩,机试成绩--
เลือก i.stuName,m.writeExam,m.LabExam จาก stuInfo เนื่องจากฉันเข้าร่วม stuMarks ภายในเป็น m บน m.stuNo = i.stuNo
--5.统计笔试考试平均分和机试考试平均分--
เลือก avg(writeExam) เป็น 笔试平均成绩,avg(LabExam) เป็น 机试平均成绩 จาก stuMarks
เลือก avg(writeExam) 笔试平均成绩,avg(LabExam) 机试平均成绩 จาก stuMarks
--6.统计参加本次考试的学员人数
เลือกจำนวน (stuno) จาก stumarks
--7.查询没有通过考试的人数(笔试或机试小于60分)--
เลือกจำนวน (stuno) จาก stumarks โดยที่ wroteExam <= 60 หรือ labexam <=60
เลือก * จาก stumarks โดยที่ writeExam เป็นโมฆะ หรือ labexam เป็นโมฆะ --查询为全部参加考试的信息
--8.查询学员成绩,显示学号,笔试成绩,机试成绩,平均分--
เลือก stuno เป็น 学号,writeExam 笔试,labexam 机试,(writeExam+labexam)/2 平均成绩 จาก stumarks
--9.排名次(按平均分从高到低排序),显示学号、平均分--
เลือก stuno เป็น 学号,(writeExam+labexam)/2 平均成绩 จาก stumarks เรียงลำดับโดย (writeExam+labexam)/2 เรียงลำดับ
เลือก stuno เป็น 学号,(writeExam+labexam)/2 平均成绩 จาก stumarks order by 平均成绩 desc
--10.排名次(按平均分从高到低排序),显示姓名,笔试成绩,机试成绩,平均分--
เลือก i.stuno เป็น 学号,writeExam 笔试,labexam 机试,(writeExam+labexam)/2 平均成绩
จาก stumarks as m inner เข้าร่วม stuinfo as i บน m.stuno = i.stuno สั่งซื้อโดย 平均成绩 desc
--根据以上SQL语句总结:凡是两个表中有同名的列名就需要用别名却分需要用别名却分结结,如果没用别名可以直接查询列明
--11.根据平均分,显示前两名信息,包括姓名、笔试成绩、机试成绩、平均分--
เลือก 2 อันดับแรก i.stuno เป็น 学号,writeExam 笔试,labexam 机试,(writeExam+labexam)/2 平均成绩
จาก stumarks as m inner เข้าร่วม stuinfo as i บน m.stuno = i.stuno สั่งซื้อโดย 平均成绩 desc
/*=======修改数据练习=========*/
--都提5นาที--
--100分封顶(加分后超过100分的,按100分计算)--
อัปเดตชุด stumarks wroteExam = wroteExam + 5
อัปเดตชุด stumarks wroteExam = 100 โดยที่ wroteExam>100