写出每一问得答案语句
现要为学校建立一个数据库,设学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生。 . 现要建立关于系、学生、班级的数据库,关系模式为:
学生 STUDENT (学号,姓名,性别,年龄,班号)
班 CLASS (班号,专业名,系名,入学年份)
系 DEPARTMENT (系号,系名)
试用 SQL 语言完成以下功能:
1、建表,在定义中要求声明:
( 1 )每个表的主外码。
( 2 )学生的年龄介于 15 到 40 岁之间。
( 3 )学生姓名不能为空。
( 4 )只有班里没有学生的时候,才能删除该班级。
2、插入如下数据
CLASS (
101 ,软件,计算机, 1995 ; 102 ,微电子,计算机, 1996 ;
111 ,无机化学,化学, 1995 ; 112 ,高分子化学,化学, 1996 ;
121 ,统计数学,数学, 1995 ; 131 ,现代语言,中文, 1996 ;
141 ,国际贸易,经济, 1997 ; 142 ,国际金融,经济, 1996 ;
)
STUDENT (
8101 ,张三,男, 18 , 101 ; 8102 ,钱四,女, 16 , 121 ;
8103 ,王玲,女, 17 , 131 ; 8105 ,李飞,男, 19 , 102 ;
8109 ,赵四,女, 18 , 141 ; 8110 ,李可,女, 20 , 142;
8201 ,张飞,男, 18 , 111 ; 8302 ,周瑜,男, 16 , 112 ;
8203 ,王亮,男, 17 , 111 ; 8305 ,董庆,男, 19 , 102 ;
8409 ,赵龙,男, 18 , 101 ; 8510 ,李丽,女, 20 , 142 )
DEPARTMENT(
01,中文; 02,计算机;
03,数学; 04,化学;
05,经济;)3 完成以下查询功能
( 1 )找出所有姓李的学生,并按其年龄由小到大排序。
( 2 )列0。
( 3 )列出学生的基本信息、入学年份、所在系的名称。
( 4 )列出年龄在19~20之间的学生的姓名、系名和年龄
4.创建一个视图,包含学生的姓名,性别,班号和系号。
5.在班级表建立一个触发器,当某班号的记录被删除时,学生表中对应班号的记录自动删除。
现要为学校建立一个数据库,设学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生。 . 现要建立关于系、学生、班级的数据库,关系模式为:
学生 STUDENT (学号,姓名,性别,年龄,班号)
班 CLASS (班号,专业名,系名,入学年份)
系 DEPARTMENT (系号,系名)
试用 SQL 语言完成以下功能:
1、建表,在定义中要求声明:
( 1 )每个表的主外码。
( 2 )学生的年龄介于 15 到 40 岁之间。
( 3 )学生姓名不能为空。
( 4 )只有班里没有学生的时候,才能删除该班级。
2、插入如下数据
CLASS (
101 ,软件,计算机, 1995 ; 102 ,微电子,计算机, 1996 ;
111 ,无机化学,化学, 1995 ; 112 ,高分子化学,化学, 1996 ;
121 ,统计数学,数学, 1995 ; 131 ,现代语言,中文, 1996 ;
141 ,国际贸易,经济, 1997 ; 142 ,国际金融,经济, 1996 ;
)
STUDENT (
8101 ,张三,男, 18 , 101 ; 8102 ,钱四,女, 16 , 121 ;
8103 ,王玲,女, 17 , 131 ; 8105 ,李飞,男, 19 , 102 ;
8109 ,赵四,女, 18 , 141 ; 8110 ,李可,女, 20 , 142;
8201 ,张飞,男, 18 , 111 ; 8302 ,周瑜,男, 16 , 112 ;
8203 ,王亮,男, 17 , 111 ; 8305 ,董庆,男, 19 , 102 ;
8409 ,赵龙,男, 18 , 101 ; 8510 ,李丽,女, 20 , 142 )
DEPARTMENT(
01,中文; 02,计算机;
03,数学; 04,化学;
05,经济;)3 完成以下查询功能
( 1 )找出所有姓李的学生,并按其年龄由小到大排序。
( 2 )列0。
( 3 )列出学生的基本信息、入学年份、所在系的名称。
( 4 )列出年龄在19~20之间的学生的姓名、系名和年龄
4.创建一个视图,包含学生的姓名,性别,班号和系号。
5.在班级表建立一个触发器,当某班号的记录被删除时,学生表中对应班号的记录自动删除。
select a.* from student a where name like '李%' order by age
3、
(1) SELECT * FROM Student WHERE 姓名 LIKE '李%' ORDER BY 年龄(2) ……(3) SELECT s.*,c.入学年份,c.系名 FROM Student s INNER JOIN Class c on s.班号=c.班号 (4) SELECT s.姓名,c.系名,s.年龄 FROM Student s INNER JOIN Class c ON s.班号=c.班号 WHERE s.年龄 BETWEEN 19 AND 204、
CREATE VIEW vw_Student_PartInfo
AS
SELECT s.姓名,s.性别,s.班号,p.系号 FROM Student s INNER JOIN Class c ON s.班号=c.班号 INNER JOIN Department p ONc.系名=p.系名5、
CREATE TRIGGER trg_Class
ON Class
AFTER DELTE
AS
IF EXISTS(SELECT COUNT(*) FROM Student WHERE 班号 IN (SELECT 班号 FROM DELETED) > 0 )
BEGIN
PRINT '该班还有学生,操作失败!'
ROLLBACK
END
GO