代码
Master verwenden
gehen
-----------创建数据库------------
falls vorhanden (wählen Sie * aus sysdatabases aus, wobei name='stuDB')
Datenbank stuDB löschen
Datenbank stuDB erstellen
auf primär
(
name='stuDB_data',
Dateiname='D:stuDB_data.mdf',
Größe = 3 MB,
maximale Größe = 10 MB,
Dateiwachstum = 1 MB
)
anmelden
(
name='stuDB_log',
Dateiname='D:stuDB_data.ldf',
Größe = 1 MB,
Dateiwachstum = 1 MB
)
-----------创建数据库表------------
Verwenden Sie stuDB
gehen
falls vorhanden (wählen Sie * aus sysobjects aus, wobei name='stuInfo')
Drop-Tabelle stuInfo
Tabelle stuInfo erstellen
(
stuId int Identity(1,1) Primärschlüssel nicht null,
stuName varchar(20) nicht null,
stuNo varchar(20) nicht null,
stuSex char(6) nicht null,
stuAge int nicht null,
stuAddress text null
)
gehen
falls vorhanden (wählen Sie * aus sysobjects aus, wobei name='stuMarks')
Drop-Tabelle stuMarks
TabellenstuMarks erstellen
(
MarksId int Identity(1,1) Primärschlüssel nicht null,
ExamNo varchar(50) not null, --考号
stuNo char(6) not null,--学号
geschriebenExam int null,--笔试成绩
LabExam int null--机试成绩
)
gehen
--向学员信息表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插入数据--
INSERT INTO stuMarks(ExamNo,stuNo,scribedExam,LabExam) VALUES('E2005070001','s25301',80,58)
INSERT INTO stuMarks(ExamNo,stuNo,scribedExam) VALUES('E2005070002','s25302',50)
INSERT INTO stuMarks(ExamNo,stuNo,scribedExam,LabExam) VALUES('E2005070003','s25303',97,82)
--查看数据--
Wählen Sie * aus stuInfo
Wählen Sie * aus stuMarks
/*=======查询数据练习=========*/
--1.查询两表的数据--
Wählen Sie * aus stuInfo
Wählen Sie * aus stuMarks
--2.查询男学员名单--
Wählen Sie * aus stuInfo aus, wobei stuSex='男'
--3.
Wählen Sie * aus Stunoten aus, bei denen die schriftliche Prüfung zwischen 75 und 100 liegt
--4.
Wählen Sie i.stuName,m.scribedExam,m.LabExam aus stuInfo als i inner join stuMarks as m auf m.stuNo = i.stuNo aus
--5.统计笔试考试平均分和机试考试平均分--
Wählen Sie avg(writingExam) als 笔试平均成绩,avg(LabExam) als 机试平均成绩 aus stuMarks aus
Wählen Sie avg(writingExam) 笔试平均成绩,avg(LabExam) 机试平均成绩 from stuMarks
--6.统计参加本次考试的学员人数
Wählen Sie count(stuno) aus stumarks aus
--7.
Wählen Sie count(stuno) aus den Stumarks aus, bei denen die geschriebene Prüfung <= 60 oder die Laborprüfung <= 60 ist
Wählen Sie * aus Stumarks aus, bei denen geschriebenes Exam null oder labexam null ist
--8.
Wählen Sie stuno als 学号,writingExam 笔试,labexam 机试,(writingExam+labexam)/2 平均成绩 from stumarks
--9.排名次(按平均分从高到低排序),显示学号、平均分--
Wählen Sie Stuno als 学号,(schriftliche Prüfung+Laborprüfung)/2 平均成绩 aus Stumarks, Reihenfolge nach (schriftliche Prüfung+Laborprüfung)/2 desc
Wählen Sie Stuno als 学号,(schriftliche Prüfung+Laborprüfung)/2 平均成绩 aus Stumarks, Reihenfolge nach 平均成绩 desc
– 10.
Wählen Sie i.stuno als 学号,scribedExam 笔试,labexam 机试,(scribedExam+labexam)/2 平均成绩
from stumarks as m inner join stuinfo as i on m.stuno = i.stuno order by 平均成绩 desc
--根据以上SQL语句总结:凡是两个表中有同名的列名就需要用别名却分开来,如果没用别名可以直接查询列明
--11.
Wählen Sie Top 2 i.stuno als 学号,scribedExam 笔试,labexam 机试,(scribedExam+labexam)/2 平均成绩
from stumarks as m inner join stuinfo as i on m.stuno = i.stuno order by 平均成绩 desc
/*=======修改数据练习=========*/
--都提5分--
--100分封顶(加分后超过100分的, 按100分计算)--
Stumarks aktualisieren: geschriebenePrüfung = geschriebenePrüfung + 5
Aktualisieren Sie die Stumarks und legen Sie geschriebenePrüfung = 100 fest, wobei geschriebenePrüfung> 100 ist