当前位置:首页 >> 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语言复习_图文.ppt
SQL语言复习 - sql语言的复习文档 sql语言总结... SQL语言复习_IT认证_资格考试/认证_教育专区。sql语言的复习文档 sql语言总结 SQL复习演讲人 王浩 学校:北大青鸟...
复习SQL关键语句_图文.ppt
复习SQL关键语句 - 数据查询 ? ? ? ? ? T1 、在数据库stude
数据库系统工程师复习必备资料--SQL语句.pdf
数据库系统工程师复习必备资料--SQL语句_从业资格考试_资格考试/认证_教育专区。数据库系统工程师复习必备资料--SQL语句,精心整理。把这个看熟就行了。...
sql语句练习题及答案.doc
sql语句练习题及答案 - 一 在数据库 school 中建立 student
SQL复习题(附部分答案).doc
SQL复习题(附部分答案) - 一、单选题 1. 根据关系数据基于的数据模型
Sql语句复习.doc
Sql语句复习 - Sql 语句复习 数据定义:create,alter,dro
软考SQL语句复习资料.doc
软考SQL语句复习资料 - 本文件简单总结,我打印出来,用于考前快速浏览知识点用
SQL语句复习题.doc
SQL语句复习题 - 一、对于教学数据库的三个基本表 学生 S(S#,SNAME
SQL语句强化练习题及答案.doc
SQL 语句强化练习题及答案 一、简单查询 1、列出全部学生的信息。 SELEC
SQL语句复习_图文.ppt
SQL语句复习 - 零基础学SQL Server 2005... SQL语句复习_IT/计算机_专业资料。零基础学SQL Server 2005 复习S(Sno , Sname ,Age,Sex,sdept ) SC( Sno, Cno,...
SQL语句练习题.doc
SQL语句练习题 - 一、设有一数据库,包括四个表:学生表 (Student)、
SQL语句复习三.doc
SQL语句复习三 - 查询练习(一) --1.选择部门 30 中的雇员 sele
SQL语句复习二.doc
SQL语句复习二 - 一、Oracle 学习查询语句的笔记 在 Oracle 中
数据库期末复习_T-SQL语句.doc
数据库期末复习_T-SQL语句 - T-SQL 语句应用实例 【例 1-1】查询
第六章 SQL语句(复习)_图文.ppt
第六章 SQL语句(复习) - P80 实训四 表单的代码解释 1、四个表单的作
sql语句复习.doc
sql语句复习 - 第三章:sql语言 查询成绩在~分之间的学生情况。 SELE
2013最新SQL_Server复习题汇总.doc
2013最新SQL_Server复习题汇总 - 复习题 一、选择题 1、数据库系
MS SQL2008复习题.doc
MS SQL2008复习题 - 1. MS SQL2008 属于( ) A) 关系数据库 B) 层次数据库 C) 网状数据库 D) 文件数据库 2.SQL 语言中修改表应使用( )。 A) M...
数据库复习2012秋(题目与答案).doc
数据库复习2012秋(题目与答案)_其它_高等教育_教育专区。数据库复习2012秋(题目...利用 SQL 语句进行查询 在上题的基础上, 如果要查询 “张红老师承担的所有...