代码
마스터 사용
가다
-----------创建数据库------------
존재하는 경우(이름='stuDB'인 sysdatabases에서 * 선택)
데이터베이스 stuDB 삭제
데이터베이스 stuDB 생성
기본에
(
이름='stuDB_data',
파일 이름='D:stuDB_data.mdf',
크기=3MB,
최대 크기=10MB,
파일 증가=1mb
)
로그온하다
(
이름='stuDB_log',
파일 이름='D:stuDB_data.ldf',
크기=1MB,
파일 증가=1MB
)
-----------创建数据库表------------
StuDB를 사용하다
가다
존재하는 경우(name='stuInfo'인 sysobjects에서 * 선택)
드롭 테이블 stuInfo
stuInfo 테이블 생성
(
stuId int Identity(1,1) 기본 키는 null이 아닙니다.
stuName varchar(20)은 null이 아닙니다.
stuNo varchar(20)은 null이 아닙니다.
stuSex char(6)은 null이 아닙니다.
stuAge int는 null이 아닙니다.
stuAddress 텍스트 null
)
가다
존재하는 경우(이름='stuMarks'인 sysobjects에서 * 선택)
드롭 테이블 stuMarks
StuMarks 테이블 생성
(
marksId int Identity(1,1) 기본 키는 null이 아닙니다.
ExamNo varchar(50) null이 아님, --考号
stuNo char(6) null이 아님,--school号
WrittenExam int null,--笔试成绩
LabExam int null--机试成绩
)
가다
--向school员信息表stuInfo插入数据--
stuInfo(stuName,stuNo,stuSex,stuAge,stuAddress)VALUES('张秋丽','s25301','男',18,'北京海淀')에 삽입
stuInfo(stuName,stuNo,stuSex,stuAge,stuAddress) VALUES('lee斯文','s25303','女',22,'河南洛阳')에 삽입
stuInfo(stuName,stuNo,stuSex,stuAge) VALUES('文才','s25302','男',31)에 삽입
INSERT INTO stuInfo(stuName,stuNo,stuSex,stuAge,stuAddress) VALUES('欧阳俊雄','s25304','男',28,'威武哈')
--向school员成绩表stuMarks插入数据--
stuMarks(ExamNo,stuNo,writerExam,LabExam) VALUES('E2005070001','s25301',80,58)에 삽입
StuMarks(ExamNo,stuNo,writerExam) VALUES('E2005070002','s25302',50)에 삽입
stuMarks(ExamNo,stuNo,writerExam,LabExam) VALUES('E2005070003','s25303',97,82)에 삽입
--查看数据--
stuInfo에서 *를 선택하세요
stuMarks에서 *를 선택하세요
/*=======查询数据练习=========*/
--1.查询两表的数据--
stuInfo에서 *를 선택하세요
stuMarks에서 *를 선택하세요
--2.查询男science员name单--
stuSex='男'인 stuInfo에서 *를 선택하세요.
--3.查询笔试成绩优秀的school员情况(成绩在75~100之间)--
75에서 100 사이의 시험을 치르는 스투마크에서 *를 선택하세요.
--4.查询参加本次考试成绩,包括school员姓name,笔试成绩,机试成绩--
m.stuNo = i.stuNo에서 m으로 stuMarks를 내부 조인하므로 stuInfo에서 i.stuName,m.writerExam,m.LabExam을 선택하세요.
--5.统计笔试考试平均分과机试考试平均分--
stuMarks에서 笔试平均成绩로 avg(writerExam)를 선택하고, stuMarks에서 机试平均成绩로 avg(LabExam)을 선택합니다.
stuMarks에서 avg(writerExam) 笔试平均成绩,avg(LabExam) 机试平均成绩를 선택하세요.
--6.统计参加本次考试의학술인회
stumarks에서 개수(stuno) 선택
--7.查询没有通过考试的人数(笔试或机试small于60分)--
writingExam <= 60 또는 labexam<=60인 stumark에서 개수(stuno)를 선택하세요.
WrittenExam이 null이거나 labexam이 null인 stumark에서 *를 선택하세요.
--8.查询school员成绩,显示school号,笔试成绩,机试成绩,平均分--
Stumarks에서 school号,writerExam 笔试,labexam 机试,(writerExam+labexam)/2 平均成绩로 stuno를 선택하세요.
--9.排name次(按平均分从高到低排序),显示school号、平均分--
Stuno를 school号,(writingExam+labexam)/2 平均成绩로 선택하십시오. stumarks 순서는 (writingExam+labexam)/2 desc입니다.
Stuno를 school号,(writingExam+labexam)/2 平均成绩로 선택하십시오. stumarks 순서에서 平均成绩 desc
--10.排name次(按平均分从高到低排序),显示姓name,笔试成绩,机试成绩,平均分--
i.stuno를 school号,writerExam 笔试,labexam 机试,(writerExam+labexam)/2 平均成绩로 선택하세요.
stumarks에서 m 내부 조인 stuinfo로 m.stuno = i.stuno 순서 by 平均成绩 desc
--根据以上SQL语句总结:凡是两个表中에는 서로 다른 이름이 있습니다.
--11.根据平均分,显示前两name信息,包括姓name、笔试成绩、机试成绩、平均分--
상위 2개 i.stuno를 school号,writerExam 笔试,labexam 机试,(writingExam+labexam)/2 平均成绩로 선택하세요.
stumarks에서 m 내부 조인 stuinfo로 m.stuno = i.stuno 순서 by 平均成绩 desc
/*=======修改数据练习=========*/
--공유5분--
--100分封顶(加分后超过100分的,按100分计算)--
스터마크 세트로 업데이트 WriteExam = WriteExam + 5
WrittenExam>100인 곳에서 스터마크 세트 WrittenExam = 100 업데이트