使用SQL创建视图和存储过程
文章目录
- 1.定义所有女生信息的视图“F_Student”(5分)
- 2.通过视图“F_Student”查询小于18岁的女生人数。(5分)
- 3.定义“计算机系”学生的视图”CS_Student”,并要求透过该视图进行的更新操作只涉及计算机系学生。(5分)
- 4.通过视图CS_Student插入一条学生记录,数据自拟,插入的数据在Sdept是否有限制?(5分)
- 6.建立选修了“数据库原理”这门课的学生信息视图“DB_SC”,视图列包含:学号,姓名,所在系,课程名,分数。(5分)
- 7.在视图“DB_SC”上定义新视图“DB_SC_60”,选修了“数据库原理”这门课且成绩及格的学生信息视图。(5分)
- 9.将视图“F_Student”修改为记录所有男生信息的视图。(5分)
- 10.删除视图“F_Student”(5分)
- 11.创建一个存储过程“PROC_STU”,查询所有学生信息,执行该存储过程,查看结果。(10分)
- 12.创建一个存储过程“PROC_SELECT_SEX_COUNT”,查询男生和女生的人数。执行该存储过程,查看执行结果。(10分)
- 13.创建一个带有参数的存储过程,根据系别查询学生人数,执行该存储过程,查看执行结果。(10分)
- 14.创建一个带有参数的存储过程,根据课程名,查询其先修课的课程名,要求使用输出参数返回查询结果,并执行该存储过程查看结果。(15分)
1.定义所有女生信息的视图“F_Student”(5分)
CREATE VIEW F_Student
AS
SELECT *
FROM Student
WHERE Sex='女'
2.通过视图“F_Student”查询小于18岁的女生人数。(5分)
SELECT COUNT(*)
FROM F_Student
WHERE Sage<18
3.定义“计算机系”学生的视图”CS_Student”,并要求透过该视图进行的更新操作只涉及计算机系学生。(5分)
CREATE VIEW CS_Student
AS
SELECT Sno,Sname,Sex,Sage,Sdept
FROM Student
WHERE Sdept= '计算机系'
WITH CHECK OPTION
4.通过视图CS_Student插入一条学生记录,数据自拟,插入的数据在Sdept是否有限制?(5分)
INSERT INTO CS_Student
VALUES('19250101','王芳','女',20,'计算机系')有限制:所插入的数据在Sdept列上必须是“计算机系”5.通过视图CS_Student删除姓名为“徐庆”的学生记录,能否成功?为什么?(10分)
DELETE FROM CS_Student
WHERE Sname='徐庆'
go
--执行结果显示0行受影响,则说明未删除成功SELECT *
FROM Student
WHERE Sname='徐庆'
go
--执行查询依然可看到该生信息
原因:徐庆并非“计算机系”学生,因此无法透过视图“CS_Student”来实现删除功能。
6.建立选修了“数据库原理”这门课的学生信息视图“DB_SC”,视图列包含:学号,姓名,所在系,课程名,分数。(5分)
CREATE VIEW DB_SC(Sno,Sname,Sdept,Cname,Score)
AS
SELECT Student.Sno,Sname,Sdept,Course.Cname,Score
FROM Student,SC,Course
WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Cname='数据库原理'
7.在视图“DB_SC”上定义新视图“DB_SC_60”,选修了“数据库原理”这门课且成绩及格的学生信息视图。(5分)
CREATE VIEW DB_SC_60
AS
SELECT *
FROM DB_SC
WHERE Score>=608.将每门课程及其平均分建立视图,视图名自定义(5分)
CREATE VIEW Cour_AVG(Cno,Cavg)
AS
SELECT Cno, AVG(Score)
FROM SC
GROUP BY Cno
goSelect *
from Cour_AVG
GO
9.将视图“F_Student”修改为记录所有男生信息的视图。(5分)
ALTER VIEW F_Student
AS
SELECT *
FROM Student
WHERE Sex='男'
10.删除视图“F_Student”(5分)
DROP VIEW F_Student
存储过程
11.创建一个存储过程“PROC_STU”,查询所有学生信息,执行该存储过程,查看结果。(10分)
CREATE PROCEDURE PROC_STU
AS
SELECT *
FROM Student
GOEXEC PROC_STU
go
12.创建一个存储过程“PROC_SELECT_SEX_COUNT”,查询男生和女生的人数。执行该存储过程,查看执行结果。(10分)
CREATE PROCEDURE PROC_SELECT_SEX_COUNT
AS
SELECT Sex,COUNT(Sno)
FROM Student
GROUP BY Sex
GOEXEC PROC_SELECT_SEX_COUNT
GO
13.创建一个带有参数的存储过程,根据系别查询学生人数,执行该存储过程,查看执行结果。(10分)
CREATE PROCEDURE PROC_SELECT_COUNT_BYDEPT
@Dept varchar(50)
AS
SELECT COUNT(Sno)
FROM Student
WHERE Sdept=@Dept
GROUP BY Sdept
goEXEC PROC_SELECT_COUNT_BYDEPT '计算机系'
go
14.创建一个带有参数的存储过程,根据课程名,查询其先修课的课程名,要求使用输出参数返回查询结果,并执行该存储过程查看结果。(15分)
CREATE PROCEDURE PROC_COURSE_PRE
@cname varchar(50),@precname varchar(50) OUTPUT
AS
SELECT @precname=Cname
FROM Course
WHERE Cno IN(SELECT Cpno
FROM Course
WHERE Cname=@cname)
GODECLARE @name varchar(50),@pre varchar(50)
SET @name='数据库原理'
EXEC PROC_COURSE_PRE @name,@pre OUTPUT
PRINT @pre
go
使用SQL创建视图和存储过程相关推荐
- 为计算机系创建视图,使用SQL创建视图和存储过程
@[toc] 1.定义所有女生信息的视图"F_Student"(5分) CREATE VIEW F_Student AS SELECT * FROM Student WHERE S ...
- SQL创建视图时设置默认值
ISNULL(字段,0) 查看全文 http://www.taodudu.cc/news/show-3644124.html 相关文章: 使用SQL创建视图和存储过程 SQL创建视图注意事项 mysq ...
- mysql 视图 局部变量_mysql创建视图和存储过程,变量
创建视图 sql>create view 视图名 as select语句; 修改视图并添加别名 sql>create or replace view empvu10 (employee_n ...
- SQL创建视图(CREATE VIEW)
视图是基于 SELECT 语句的结果集的可视化的表. 什么是视图? 在 SQL 中,一个视图是基于某个 SELECT 语句的结果集的可视化的表. 视图包含行和列,就像一个真实的表.视图中的域就是来自一 ...
- sql——创建视图和索引
一.视图 1.使用视图 创建视图:给BILLS表创建视图.创建的视图实际上是一个虚表. CREATE VIEW DEBTS AS SELECT * FROM BILLS; 可以选择特定的行进行新视图的 ...
- SQL 创建视图访问其他数据库 不同数据库表格的关联查询
我们访问其它 SQL Server的数据库,我们可以通过 OPENDATASOURCE (SQL Server 2000 以上版本支持) 来完成. 1.创建视图的方式访问数据库 Create VIEW ...
- sql创建视图时,需要设置默认值字段
文章目录 1 问题 2 解决 1 问题 创建视图的sql, 希望有一个字段使用默认值(拼接的结果集,本身没有这个字段) 2 解决 select 默认值 as 字段名 from 表名
- SQL创建视图注意事项
视图的创建和注意事项 1.如何创建视图及注意事项 创建视图图的基本语法: CREATE VIEW <视图名称>(<列名1>,<列名2>,...) AS <SE ...
- mysql 视图 动态sql_sql-server – 使用动态Sql创建视图
我正在尝试创建一个动态数据库创建脚本. 有很多步骤,我们经常创建这个数据库,所以脚本看起来像这样. DECLARE @databaseName nvarchar(100) = 'DatabaseNam ...
最新文章
- IT创业光技术好,谋略定位不好,你很可能会死得很惨,丢钱、丢客户、丢成果、丢商机、丢思路...
- Exchange2013公用文件夹
- BZOJ 2208[Jsoi2010]连通数
- PHP错误处理函数set_error_handler()的用法
- 修改 Workshop 中 text box 输入内容的颜色
- @scheduled 每30s 执行一次_全球首发5G神U麒麟820,荣耀30S卡位5G档位最强,售价2399起...
- verilog经验谈
- 160 - 40 DaNiEl-RJ.1
- 高可用—Keepalived安装部署使用详解
- C#实现重新启动计算机
- [转载] python基础知识三——try与except处理异常语句
- 微信小程序云数据库调用模板
- linux mysql max_allowed_packet_Linux服务器上如何设置MySQL的max_allowed_packe
- 2020年11月软考网络规划设计师上午真题及答案解析
- 手机开USB热点给电脑使用失败
- MMA-符号学运算的奥妙
- 【论文投稿】(一)新手向投稿准备
- 面对二维码地推无法分辨地区之间的优劣,我们该怎么做!
- App Store 中国区已支持人民币支付
- 世界上最近的路是摸黑走夜路