当前位置:首页 >> IT/计算机 >>

sql语句复习

第三章:sql语言 查询成绩在~分之间的学生情况。 SELECT Sno, Cno, Grade FROM SC WHERE Grade >= 85 AND Grade <= 90

查询Student表中所有学生的学号、姓名、性别和出生年份
SELECT Sno as 学号, Sname as 姓名, Ssex as 性别, Year(GetDate()) - Sage as 出 生年份 FROM Students // as 取别名 或者用学号= Sno Year(GetDate()) – Sage计算学生出生年 查询有成绩的学生的学号。 SELECT DISTINCT Sno FROM SC //使用 DISTINCT 关键字,可以消除重复记录 查询学生成绩为或的学生的学号。 SELECT * FROM SC WHERE Grade IN (80, 85) //使用IN关键字,选择不连续条件的记录 查询姓“张”的学生的基本情况。 SELECT * FROM Student WHERE Sname LIKE '张%' //使用谓词 LIKE 和通配符“%”或“_” ,实现模糊查询

%”代表0个或多个字符, “_”代表一个字符,一个汉字占两个字符
查询所有学生的号课的成绩,并按成绩由高向低排序。 SELECT * FROM SC WHERE Cno =’2’ ORDER BY Grade DESC

//ASC 为升序 DESC 为降序
查询2号课成绩最高的学生记录
SELECT TOP 1 * FROM SC WHERE Cno = '1' ORDER BY Grade DESC

//使用TOP关键字,选择查询结果的前几条记录

将总分在分以上的学生的情况(学号、姓名、性别、总成绩)存储到数据表GradeList中,假设数 据表GradeList不存在。 SELECT A.Sno, Sname, Ssex, SUM(Grade) AS sumGrade INTO GradeList

FROM Student A, SC WHERE A.Sno = SC.Sno GROUP BY A.Sno, Sname, Ssex HAVING (SUM(SC.Grade) >= 200)

查询学号为200215121的学生1号课的成绩,将其保存到变量Grade中
DECLARE @Grade INT --定义变量 SELECT @Grade = Grade --给变量赋值 FROM SC WHERE Sno = '200215122' PRINT @Grade --显示变量的值

求计算机系学生的学号和姓名
SELECT Sno,Sname FROM Students WHERE Sdept IN (SELECT Sdept FROM Students WHERE Sdept='CS')

求选修 3 号课程的学生学号和成绩,结果按成绩降序排列,如成绩同按学号升序排列
SELECT Sno,Grade FROM SC WHERE Cno IN (SELECT Cno FROM SC WHERE Cno='3') ORDER BY Grade DESC,Sno

ASC

求选修课程 2 成绩在 80-90 之间的学生学号和成绩,并将成绩乘以 0.8 输出
SELECT Sno,Grade*0.8 FROM SC WHERE Cno IN (SELECT Cno FROM SC WHERE Cno='2' ) AND Grade BETWEEN 80 AND 90

求数学或计算机系姓’张’的学生的信息
SELECT * FROM Students WHERE Sname LIKE '张%' AND (Sdept='IS' OR Sdept='MA')

查询总成绩在 200 分以上的学生的学号、总成绩和平均成绩。
SELECT Students.Sno,SUM(Grade) AS sumGrade,AVG(Grade) AS avgGrade FROM Students, SC WHERE Students.Sno = SC.Sno GROUP BY Students.Sno

HAVING (SUM(SC.Grade) >= 200)

在 FROM 子句中用 INNER JOIN 连接符指定连接条件查询所有有 2 号课程成绩的学生的学号、 姓名和成绩。
go use Student select Students.Sno,Students.Sname,Grade from Students inner join SC on Students.Sno=SC.Sno where SC.Cno='2'

查询学生中年龄相同的学生情况(使用自连接查询) 。
go use Student select a.Sno,a.Sname,a.Sage from Students as a,Students as b where a.Sage=b.Sage and a.Sname<>b.Sname

查询所有学生的总成绩(包括没有成绩的学生) 、学号和姓名(外部连接查询) 。
SELECT Students.Sno,Students.Sname,SUM(Grade),AVG(Grade) FROM Students left join SC on Students.Sno=SC.Sno GROUP BY Students.Sno,Students.Sname

查询某课程成绩在 90 分以上的学生的学号和姓名(使用谓词 IN 连接子查询) 。
go use Student select Students.Sno,Students.Sname from Students,SC where Students.Sno=SC.Sno and Grade IN (select Grade from SC where Grade>=90 )

查询有课程成绩的学生的学号和姓名(使用谓词 EXISTS 连接子查询)。
go use Student select Students.Sno,Students.Sname from Students where exists (select * from SC where SC.Sno=Students.Sno and Grade is not null )

第四章:数据库安全性 create login login6 with password='stu1' create user stu6 for login login6

create role myrole grant select //all 全部权限 on Students to stu6 with grant option //stu6可以把权限给其它用户 revoke select on Students from stu6 CASCADE //public 全部用户 CASCADE 级联 exec sp_droplogin login6 exec sp_dropuser stu6 exec sp_droprole myrole

go use Student alter TABLE SC add CONSTRAINT FK_Sno FOREIGN KEY (Sno) REFERENCES Students (Sno) ON update CASCADE; update Students SET sno='200215128' WHERE sno='200215121';

设置 Student 表中 Sdept 的取值默认为‘CS’ ;
ALTER TABLE Student add CONSTRAINT Mydefault default'CS' FOR Sdept

触发器: 要求为 Course 表编写一个名为 CourseTrigger 插入触发器,当插入记录到 Course 表时,该触 发器检查新插入记录的 userid 字段, 如果插入这个字段的值不存在于 Teacher 表中, 则从 Course 表中删除这个新插入记录。
create trigger CourseTrigger on Course for insert as declare @course_id char(20) set @course_id = (select userid from inserted) if not exists(select * from Teacher where userid = @course_id) begin delete from Course where userid=@course_id end

创建一个 after 触发器,在 Student 表中删除某学生的记录时,删除其相应的选课记录 (不允 许使用外键级联删除约束)。
create trigger StudentTrigger on Students for delete as declare @sno_id char(10) set @sno_id=(select Sno from deleted ) if exists(select * from SC where Sno=@sno_id) begin delete from SC where Sno=@sno_id end

创建一个触发器,不允许删除 Course 表中的任何数据。
create trigger CourseTrigger on Course for delete as if(select count(*) from deleted)>0 begin print('你不能删除该表中的任何记录') rollback transaction end

使用 STUDENT 数据库中的学生表、课程表、选课表,创建一个带参数的存储过程—userproc。 该存储过程的作用是:当任意输入一个学生的姓名时,将从三个表中返回该学生的学号、选修 的课程名称和课程成绩。
use Student go create procedure student_userproc @Sname char(10) as begin select Students.Sno,SC.Grade,Course.Cname from Students,SC,Course where Sname=@Sname and Students.Sno=SC.Sno and SC.Cno=Course.Cno end

exec student_userproc 刘晨

将姓名为 XXX 的学生所有课程的成绩减少 10 分(其中学生姓名为存储过程的参数) 。
use Student go create procedure Grade_userproc @Sname char(10) as begin declare @Sno char(10) select @Sno=Sno from Students where Sname=@Sname update SC set Grade=Grade-10 where Sno=@Sno end

exec Grade_userproc 刘晨


相关文章:
sql语句复习.doc
sql语句复习_电脑基础知识_IT/计算机_专业资料。SQL语句,应试宝典 表:
SQL语句复习版.doc
SQL语句复习版 - 一、基础 1、 说明:创建数据库 CREATE DATAB
sql语句练习题及答案.doc
sql语句练习题及答案_从业资格考试_资格考试/认证_教育专区。一 在数据库 s
复习SQL关键语句_图文.ppt
复习SQL关键语句 - 数据查询 ? ? ? ? ? T1 、在数据库stude
sql语句练习50题.doc
sql 语句练习 50 题 Student(Sid,Sname,Sage,Sse
SQL语句练习题.doc
SQL语句练习题 - 一、对于学生和课程之间的学习关系,有如下的属性: 学生(学
SQL语句练习题答案.doc
篇三:sql 语句强化练习题及答案 sql 语句强化练习题及答案 一、简单查询
SQL语句练习.doc
SQL语句练习 - 现在有一教学管理系统,具体的关系模式如下: Student
数据库系统工程师复习必备资料--SQL语句.pdf
数据库系统工程师复习必备资料--SQL语句_从业资格考试_资格考试/认证_教育专区。数据库系统工程师复习必备资料--SQL语句,精心整理。把这个看熟就行了。...
sql语句复习题.doc
sql语句复习题_理化生_高中教育_教育专区。很全的sql 和oracle语句
SQL语句练习及答案.doc
SQL语句练习及答案 - sql 语句练习题 1 数据库有如下四个表格: stu
sql语句练习.doc
sql语句练习_电脑基础知识_IT/计算机_专业资料。有关sql的各种操作-...口腔执业医师实践技能复习资料 中医护理学基础重点 执业医师实践技能考试模拟试题文档...
SQL语句复习题.doc
SQL语句复习题 - 一、对于教学数据库的三个基本表 学生 S(S#,SNAME
软考SQL语句复习资料.doc
软考SQL语句复习资料 - 本文件简单总结,我打印出来,用于考前快速浏览知识点用
sql语句练习题及答案.doc
sql语句练习题及答案 - 一 在数据库 school 中建立 student
数据库期末复习_T-SQL语句.doc
数据库期末复习_T-SQL语句 - T-SQL 语句应用实例 【例 1-1】查询
SQL语句练习题.doc
SQL语句练习题 - 一、设有一数据库,包括四个表:学生表 (Student)、
SQL复习题(附部分答案).pdf
SQL复习题(附部分答案) - 一、单选题 1.根据关系数据基于的数据模型关
SQL复习题.doc
SQL复习题 - 数据查询 一、目的与要求 1.掌握 SELECT 语句的基本语法。 2.掌握子查询的表示。 3.掌握连接查询的表示。 4.掌握 SELECT 语句的统计函数的作用和...
SQL期末复习2013-2014学年第二学期 14.doc
SQL期末复习2013-2014学年第二学期 14 - SQL 期末复习 考核知