代码
usar maestro
ir
-----------创建数据库------------
si existe (seleccione * de sysdatabases donde nombre='stuDB')
soltar base de datos stuDB
crear base de datos stuDB
en primaria
(
nombre = 'stuDB_data',
nombre de archivo = 'D:stuDB_data.mdf',
tamaño = 3 MB,
tamaño máximo = 10 MB,
crecimiento de archivos = 1mb
)
acceder
(
nombre = 'stuDB_log',
nombre de archivo = 'D:stuDB_data.ldf',
tamaño = 1mb,
crecimiento de archivos = 1mb
)
-----------创建数据库表------------
utilizar estuDB
ir
si existe (seleccione * de sysobjects donde nombre='stuInfo')
soltar tabla stuInfo
crear tabla stuInfo
(
estudiante int identidad (1,1) clave primaria no nula,
stuName varchar(20) no es nulo,
stuNo varchar(20) no nulo,
stuSex char(6) no es nulo,
estuAge int no nulo,
stuDirección texto nulo
)
ir
si existe (seleccione * de sysobjects donde nombre = 'stuMarks')
colocar mesa stuMarks
crear stuMarks de tabla
(
marksId int identidad(1,1) clave primaria no nula,
ExamNo varchar(50) no nulo, --考号
stuNo char(6) no nulo,--学号
escritoExamen int nulo,--笔试成绩
LabExam int null--机试成绩
)
ir
--向学员信息表stuInfo插入数据--
INSERTAR EN estuInfo(stuNombre,stuNo,stuSexo,stuEdad,stuDirección)VALUES('张秋丽','s25301','男',18,'北京海淀')
INSERTAR EN estuInfo(stuNombre,stuNo,stuSexo,stuEdad,stuDirección) VALUES('李斯文','s25303','女',22,'河南洛阳')
INSERT INTO stuInfo(stuName,stuNo,stuSex,stuAge) VALUES('李文才','s25302','男',31)
INSERT INTO stuInfo(stuName,stuNo,stuSex,stuEdad,stuAddress) VALUES('欧阳俊雄','s25304','男',28,'威武哈')
--向学员成绩表stuMarks插入数据--
INSERTAR EN stuMarks(ExamNo,stuNo,Examen escrito,Examen de laboratorio) VALORES('E2005070001','s25301',80,58)
INSERTAR EN estuMarks(ExamNo,stuNo,Examen escrito) VALUES('E2005070002','s25302',50)
INSERTAR EN estuMarks(ExamNo,stuNo,Examen escrito,Examen de laboratorio) VALORES('E2005070003','s25303',97,82)
--查看数据--
seleccione * de stuInfo
seleccione * de stuMarks
/*=======查询数据练习=========*/
--1.查询两表的数据--
seleccione * de stuInfo
seleccione * de stuMarks
--2.查询男学员名单--
seleccione * de stuInfo donde stuSex='男'
--3.查询笔试成绩优秀的学员情况(成绩在75~100之间)--
seleccione * de las notas donde el examen escrito está entre 75 y 100
--4.查询参加本次考试的学员成绩,包括学员姓名,笔试成绩,机试成绩--
seleccione i.stuName,m.writeExam,m.LabExam de stuInfo como i interno unir stuMarks como m en m.stuNo = i.stuNo
--5.统计笔试考试平均分和机试考试平均分--
seleccione avg(Examen escrito) como 笔试平均成绩,avg(LabExam) como 机试平均成绩 de stuMarks
seleccione avg(Examen escrito) 笔试平均成绩,avg(LabExam) 机试平均成绩 de stuMarks
--6.
seleccione contar (stuno) de stumarks
--7.查询没有通过考试的人数(笔试或机试小于60分)--
seleccione el recuento (stuno) de las notas donde el examen escrito <= 60 o el examen labe <= 60
seleccione * de estumarks donde el examen escrito es nulo o el examen labe es nulo --查询为全部参加考试的信息
--8.查询学员成绩,显示学号,笔试成绩,机试成绩,平均分--
seleccione stuno como 学号,Examen escrito 笔试,labexam 机试,(Examen escrito+labexam)/2 平均成绩 de stumarks
--9.排名次(按平均分从高到低排序),显示学号、平均分--
seleccione stuno como 学号,(examen escrito+labexam)/2 平均成绩 de stumarks ordenar por (examen escrito+labexam)/2 desc
seleccione stuno como 学号,(Examen escrito+labexam)/2 平均成绩 de stumarks ordenar por 平均成绩 desc
--10.排名次(按平均分从高到低排序),显示姓名,笔试成绩,机试成绩,平均分--
seleccione i.stuno como 学号,escritoExamen 笔试,labexam 机试,(escritoExamen+labexam)/2 平均成绩
de stumarks como m unión interna stuinfo como i en m.stuno = i.stuno ordenar por 平均成绩 desc
--根据以上SQL语句总结:凡是两个表中有同名的列名就需要用别名却分开来,如果没用别名可以直接查询列明
--11.根据平均分,显示前两名信息,包括姓名、笔试成绩、机试成绩、平均分--
seleccione los 2 mejores i.stuno como 学号,escritoExamen 笔试,labexam 机试,(escritoExamen+labexam)/2 平均成绩
de stumarks como m unión interna stuinfo como i en m.stuno = i.stuno ordenar por 平均成绩 desc
/*=======修改数据练习=========*/
--都提5分--
--100分封顶(加分后超过100分的,按100分计算)--
actualizar el conjunto de calificaciones de examen escrito = examen escrito + 5
actualizar estumarks establecido examen escrito = 100 donde examen escrito> 100