CREATE TABLE SC
- 格式:docx
- 大小:15.14 KB
- 文档页数:5
《数据库系统工程师》课程试卷A适用专业: 考试日期: 闭卷所需时间:120分钟 总分:100分一、 填空题:(共8小题,每空1分,共18分)1. 对于十进制数字143,它的二进制表示是 ,八进制表示是 ,十六进制表示是 ,BCD 码是 ;十六进制数3CF 对应的十进制是 。
2. 若指令流水线把一条指令分为取指、分析和执行3部分,且3部分的时间分别是ns t 2=取指,ns t 2=分析,ns t 1=执行。
则100条指令全部执行完毕需 ns 。
3. 对现实世界进行第一层抽象的模型,称为 模型;对现实世界进行第二层抽象的模型,称为 模型。
4. 层次模型的数据结构是 结构;网状模型的数据结构是 结构;关系模型的数据结构是 结构。
5. 在数据库技术中,编写应用程序的语言仍然是C 一类的高级语言,这些语言被称为 语言。
6. 要使数据库具有可恢复性,在平时要做好两件事: 和 。
7. 封锁能避免错误的发生,但会引起 问题。
8. 能激活触发器执行的操作是 、 和 。
二、 选择题:(共18小题,每空1分,共24分)1. 是指按内容访问的存储器。
A.相联存储器B.虚拟存储器C.高速缓存(Cache)D.随机访问存储器2. 内存按字节编址,地址从A4000H 到CBFFFH ,共有 (1) 。
若用存储容量为32K ×8b 的存储芯片构成该内存,至少需要 (2) 。
(1)A .80KB B.96KB C.160KB D.192KB (2)A.2 B.5 C.8 D.103. Internet 提供的服务有通信、远程登录、浏览和检索等。
(1) 直接用于个人之间的通信方式, (2) 用于远程登录。
(1)A .Telnet B. E-Mail C.URL D.PPP(2)A .Telnet B. URL C.P2P D.PPP 4. 软件测式的目的是 。
A.表明软件的正确性B.评价软件质量C.尽可能发现软件中的错误D.判定软件是否合格5. 是面向对象程序设计语言中的一种机制,此种机制实现了方法的定义与具体的对象无关,而对方法的调用则可关联于具体的对象。
sql练习-S-C-SC建表use selectpractice;drop table if exists SC;create table SC(sno varchar(200),cno varchar(200),scgrade varchar(200));drop table if exists S;create table S(sno varchar(200),sname varchar(200));drop table if exists C;create table C(cno varchar(200),cname varchar(200),cteacher varchar(200));insert into C(cno, cname, cteacher) value('1', '语⽂', '张');insert into C(cno, cname, cteacher) value('2', '政治', '王');insert into C(cno, cname, cteacher) value('3', '英语', '李');insert into C(cno, cname, cteacher) value('4', '数学', '赵');insert into C(cno, cname, cteacher) value('5', '物理', '周');commit;insert into S(sno, sname) values('1', '学⽣1');insert into S(sno, sname) values('2', '学⽣2');insert into S(sno, sname) values('3', '学⽣3');insert into S(sno, sname) values('4', '学⽣4');commit;insert into SC(sno, cno, scgrade) values('1', '1', '40');insert into SC(sno, cno, scgrade) values('1', '2', '30');insert into SC(sno, cno, scgrade) values('1', '3', '20');insert into SC(sno, cno, scgrade) values('1', '4', '80');insert into SC(sno, cno, scgrade) values('1', '5', '60');insert into SC(sno, cno, scgrade) values('2', '1', '60');insert into SC(sno, cno, scgrade) values('2', '2', '60');insert into SC(sno, cno, scgrade) values('2', '3', '60');insert into SC(sno, cno, scgrade) values('2', '4', '60');insert into SC(sno, cno, scgrade) values('2', '5', '60');insert into SC(sno, cno, scgrade) values('3', '1', '60');insert into SC(sno, cno, scgrade) values('3', '3', '80');commit;。
用SQL语句创建如下三个基本表:学生表(Student)、课程表(Course)、学生选课表(SC),结构如下所示Student表结构Create table S tudent(Sno varchar(7) primary key,Sname varchar(10) not null,页脚内容1Ssex char (2) check(Ssex=‘男’or Ssex=’女’),Sage int check(Sage between 15 and 45),Sdept varchar(20) default(‘计算机系’))Course表结构Create table course(页脚内容2Cno varchar(10) primary key,Cname varchar(20) not null,Ccredit int check(Sctedit>0),Semester int check(Semester>0),Period int check(Period>0))SC表结构Create table SC(Sno varchar(7) foreign key references student(Sno),页脚内容3Cno varchar(10) foreign key references course(Cno),Grade int check(Grade between 0 and 100),Primary key (Sno,Cno))1.查询学生选课表中的全部数据。
SELECT *FROM SCgo2.查询计算机系学生的姓名、年龄。
Select Sname,SageFrom StudentWhere Sdept=’计算机系’3.查询成绩在70~80分之间的学生的学号、课程号和成绩。
Select Sno,Cno,GradeFrom Course,ScWhere o=o and sc.Grade between 70 and 80页脚内容44.查询计算机系年龄在18~20之间且性别为“男”的学生的姓名和年龄。
SQL-Server实验答案上海师范大学计算机系目录第一部分企业管理器的使用 (3)试验一注册服务器.................................................................................. 错误!未定义书签。
试验二创建数据库.................................................................................. 错误!未定义书签。
试验三创建表.......................................................................................... 错误!未定义书签。
实验四数据输入...................................................................................... 错误!未定义书签。
实验五登录到数据库服务器.................................................................. 错误!未定义书签。
第二部分SQL语言 (3)第二部分SQL语言 (3)试验一数据库创建 (3)试验二创建表 (3)试验三创建数据完整性 (5)试验四数据完整性试验 (6)试验五索引 (10)试验六更新数据 (11)试验七 Sql 查询语句 (12)试验八视图 (15)试验九安全性控制实验 (16)试验十存储过程 (17)试验十二触发器 (21)试验十二恢复技术 (25)试验十三事务 (26)试验十四锁 (27)第一部分企业管理器的使用第二部分SQL语言试验一数据库创建目的:1掌握利用SQL语言进行数据库的创建、维护。
2 sp_helpdb 命令要求:1 创建数据库 2 修改数据库 3 删除数据库一建立school 数据库1 使用查询分析器创建数据库 schoolCreate DataBase school2 使用 SP_helpdb 查询数据库 School 的信息3 使用SQL-Server 的企业管理器查看数据库 school 的信息。
3.3数据定义中的例题创建student,course,sc三个母表的代码如下:CREATE T ABLE student(sno CHAR(9) PRIMARY KEY,/*列级完整性约束,设置sno属性为主码*/ sname CHAR(20) not null,/*列级完整性约束,要求sname属性的值唯一*/ssex CHAR(2) DEFAULT '男' CHECK(ssex IN ('男','女')),/*DEFAULT默认值约束,CHECK约束限制ssex属性的取值范围*/ sage SMALLINT CHECK(sage>=15 AND sage<=45),/*检查约束的实现*/sdept CHAR(20));CREATE T ABLE course(cno CHAR(4) ,cname CHAR(40),cpno CHAR(4),ccredit SMALLINT,PRIMARY KEY(cno),/*也可以在表级约束上设置主码*/);CREATE T ABLE sc(sno CHAR(9),cno CHAR(4),grade SMALLINT CHECK((grade IS NULL)OR(grade BETWEEN 0 AND 100)), PRIMARY KEY(sno,cno),/*主码约束的实现*/FOREIGN KEY(sno) REFERENCES student(sno),/*表级完速性约束,sno是表的外码,被参照表是student,被参照列是sno*/ FOREIGN KEY(cno) REFERENCES course(cno)/*表级完速性约束,cno是表的外码,被参照表是course,被参照列是cno*//*外码约束的实现,表明sno和cno都是表sc的外码*/);/*下列语句向student表插入记录*/INSERT INTO student V ALUES('200215121','李勇','男',20,'CS')INSERT INTO student V ALUES('200215122','刘晨','女',19,'CS')INSERT INTO student V ALUES('200215123','王敏','女',18,'MA')INSERT INTO student V ALUES('200215125','张立','男',19,'IS')/*下列语句向course表插入记录*/INSERT INTO course V ALUES('1','数据库','5',4)INSERT INTO course V ALUES('2','数学',null,2)INSERT INTO course V ALUES('3','信息系统','1',4)INSERT INTO course V ALUES('4','操作系统','6',3)INSERT INTO course V ALUES('5','数据结构','7',4)INSERT INTO course V ALUES('6','数据处理',null,2)INSERT INTO course V ALUES('7','PASCAL语言','6',4)/*下列语句向sc表插入记录*/INSERT INTO sc V ALUES('200215121','1',92)INSERT INTO sc V ALUES('200215121','2',85)INSERT INTO sc V ALUES('200215121','3',88)INSERT INTO sc V ALUES('200215122','2',90)INSERT INTO sc V ALUES('200215122','3',80)【例8】alter table student add s_entrance datet改为:alter table student add s_entrance datetime/*SQL SERVER中的日期类型用datetime表示*/【例9】alter table student alter column sage int/*显示:服务器: 消息5074,级别16,状态6,行 1对象'CK__student__sage__1CF15040' 依赖于列'sage'。
实验三SQL语言用于数据库的建立和维护实验目的熟练掌握SQL语言建立数据库和表,向数据库输入数据、修改数据和删除数据的操作。
实验内容建立数据库并设计各表,输入多条实际数据,并实现数据的增、删、改操作。
创建用于学生管理数据库,数据库名为XSGL,包含学生的基本信息,课程信息和选课信息。
数据库XSGL包含下列3个表:(l)student:学生基本信息。
(2)course:课程信息表。
(3)sc:学生选课表。
各表的结构分别如表1、表2和表3所示。
表3 学生选课表:sc一. 数据库的建立:(a)在SQLSERVER中,在查询分析器中使用T-SQL语句:CREATE DATABASE XSGL二. 表的建立:在SQL SERVER中查询分析器的编辑窗口中用下列SQL语句:use XSGLCreate table student(sno CHAR(5) primary key NOT NULL,sname CHAR(10) NULL,ssex CHAR(2) NULL,sage INT NULL,sdept CHAR(4) NULL)goCreate table course(cno CHAR(2) primary key NOT NULL,cname CHAR(30) NULL,credit INT NULL,pcno C HAR(2) NULL)goCreate table sc(sno CHAR(5),cno CHAR(2),grade INT NULL,primary key(sno,cno))go三. 表数据的添加:在SQL SERVER中查询分析器的编辑窗口中使用下列SQL 语句插入数据:insert into student(sno,sname, s sex,sage,sdept) values('95001', '李勇', '男', 20, 'CS') insert into student(sno,sname, s sex,sage,sdept) values('95002', '刘晨', '女', 19, 'IS') insert into student(sno,sname, s sex,sage,sdept) values('95003', '王敏', '女', 18, 'MA') insert into student(sno,sname, s sex,sage,sdept) values('95004', '张立', '男', 19, 'IS') insert into student(sno,sname, s sex,sage,sdept) values('95005', '刘云', '女', 18, 'CS ')insert into course(cno, cname,credit,pcno) values('1', '数据库', 4, '5')insert into course(cno, cname,credit,pcno) values('2', '数学', 6, null)insert into course(cno, cname,credit,pcno) values('3', '信息系统', 3, '1')insert into course(cno, cname,credit,pcno) values('4', '操作系统', 4, '6')insert into course(cno, cname,credit,pcno) values('5', '数据结构', 4, '7')insert into course(cno, cname,credit,pcno) values('6', '数据处理', 3, null)insert into course(cno, cname,credit,pcno) values('7', 'PASCAL语言', 4, '6')insert into sc(sno,cno,grade) values('95001', '1' ,92)insert into sc(sno,cno,grade) values('95001', '2' ,85)insert into sc(sno,cno,grade) values('95001', '3' ,88)insert into sc(sno,cno,grade) values('95002', '2' ,90)insert into sc(sno,cno,grade) values('95002', '3' ,80)insert into sc(sno,cno,grade) values('95003', '2' ,85)insert into sc(sno,cno,grade) values('95004', '1' ,58) insert into sc(sno,cno,grade) values('95004', '2' ,85) 形成下表:四. 表数据的修改:将所有学生的年龄增加一岁: update student set sage=sage+1将4号课程的学分改为4: update course set credit=4 where cno=4 设置7号课程没有先行课: update course set pcno=null where cno=7 将95001号学生的1号课程的成绩增加3分:update sc set grade=grade+3 where sno=’95001’ and cno=’1’五. 表数据的删除:删除学号为95005的学生的记录:delete from student where sno=’95005’删除所有的课程记录:delete from course删除成绩为不及格(少于60分)的学生的选课记录:delete from sc where grade<60实验四:数据库的简单查询和连接查询实验目的:掌握简单表的数据查询、数据排序和数据联结查询的操作方法。
一在数据库 school 中建立student , sc, course 表。
学生表、课程表、选课表属于数据库 school ,其各自的数据结构如下:学生 student (sno,sname,ssex,sage,sdept)课程表 course(cno,cname,cpno,ccredit)学生选课 sc(sno,cno,grade)二设定主码1 student表的主码:sno2 course表的主码:cno3 sc表的主码:sno,cno1写出使用 create table 语句创建表 student , sc, course 的sql语句23 删除student表中的元组4在数据库school中删除关系student5在student表添加属性sbirthdate 类型 datetimedelete1 删除所有 jsj 系的男生 delete from student where sdept=’jsj’ and ssex=’男’;2 删除“数据库原理”的课的选课纪录delete from sc where cno in (select cno fromcourse where cname=’数据库原理’); update1 修改 0001 学生的系科为: jsj2 把陈小明的年龄加1岁,性别改为女。
2 修改李文庆的1001课程的成绩为 93 分 3 把“数据库原理”课的成绩减去1分select 查询语句一单表1查询年龄在19至21岁之间的女生的学号,姓名,年龄,按年龄从大到小排列。
2查询姓名中第2个字为“明”字的学生学号、性别。
3查询 1001课程没有成绩的学生学号、课程号4查询jsj 、sx、wl 系的年龄大于25岁的学生学号,姓名,结果按系排列 5按10分制查询学生的sno,cno,10分制成绩(1-10分为1 ,11-20分为2 ,30-39分为3,。
90-100为10) 6查询 student 表中的学生共分布在那几个系中。
用SQL语句创建如下三个基本表:学生表(Student)、课程表(Course)、学生选课表(SC),结构如下所示Student表结构Create table Student(Sno varchar(7) primary key,Sname varchar(10) not null,Ssex char (2) check(Ssex=‘男’or Ssex=’女’),Sage int check(Sage between 15 and 45),Sdept varchar(20) default(‘计算机系’))Course表结构Create table course(Cno varchar(10) primary key,Cname varchar(20) not null,Ccredit int check(Sctedit>0),Semester int check(Semester>0),Period int check(Period>0))SC表结构Create table SC(Sno varchar(7) foreign key references student(Sno),Cno varchar(10) foreign key references course(Cno),Grade int check(Grade between 0 and 100),Primary key (Sno,Cno))1.查询学生选课表中的全部数据。
SELECT *FROM SCgo2.查询计算机系学生的姓名、年龄。
Select Sname,SageFrom StudentWhere Sdept=’计算机系’3.查询成绩在70~80分之间的学生的学号、课程号和成绩。
Select Sno,Cno,GradeFrom Course,ScWhere o=o and sc.Grade between 70 and 804.查询计算机系年龄在18~20之间且性别为“男”的学生的姓名和年龄。
《数据库原理与应用》练习题及参考答案一、单项选择题1.有两个不同的实体集,它们之间存在着一个1:N 联系和一个M :N 联系,那么根据E-R 模型转换成关系模型的规则,这个E-R 结构转换成的关系模式个数为( )。
A .2个B .3个C .4个D .5个 2.下列四项中,不属于关系数据库特点的是()。
A .数据冗余小B .数据独立性高C .数据共享性好D .多用户访问 3.对关系代数表达式的查询树进行优化时,( )运算要尽可能先做。
A .连接 B .投影 C .选择 D .广义笛卡尔积 4.数据独立性是指( )之间相互独立,彼此不受影响。
A .应用程序和用户B .应用程序和数据C .数据库和用户D .数据库和程序员 5.设有两个事务T1、T2,其并发操作如下图所示,下面评价正确的是()。
A .并发事务不存在问题B .并发事务导致丢失修改C .并发事务导致不能重复读D .并发事务导致读“脏”数据6.设关系R 和S 的属性个数分别为r 和s,那么(R ×S )操作结果的属性个数为( )。
A .r+s B .r-s C .r ×s D .max(r,s) 7.设计E-R 图属于数据库设计的( )。
A.逻辑设计B.概念设计C.物理设计D.需求分析 8.1NF 通过()可以规范化为2NF 。
A .消除非主属性对码的部分函数依赖B .消除非主属性对码的传递函数依赖C .消除主属性对码的部分和传递函数依赖D .消除非平凡且非函数依赖的多值依赖 9.在关系模式中,函数依赖X →Y 的语义是( )。
A.在R 的任意两个关系中,若X 值相等,则Y 值也相等 B.在R 的当前关系中,若两个元组的X 值相等,则Y 值也相等 C.在R 的任意关系中,Y 值应与X 值相等 D .在R 的当前关系中,Y 值应与X 值相等10.E-R 模型是数据库设计的有力工具,适于建立数据库的()。
A .数据模型 B .概念模型 C .逻辑模型 D .结构模型 11.下面对视图的描述中,错误的是( )。
CREATE TABLE SC
(Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT,
PRIMARY KEY(Sno,Cno),
FOREIGN KEY(Sno)REFERENCES Student(Sno),
FOREIGN KEY(Cno)REFERENCES Student(Sno),
);
ALTER TABLE Student ADD S_entrance DATE;
已验证--
ALTER TABLE Student ALTER COLUMN Sage INT;
已验证--
ALTER TABLE Course ADD UNIQUE(Cname);
已验证--
DROP TABLE Student CASCADE;
已验证--
CREATE VIEW IS_Student
AS
SELECT Sno,Sname,Sage
FROM Student
WHERE Sdept='IS';
DROP TABLE Student RESTRICT;
--ERROR:cannot drop table Student because other objects depend on it
DROP TABLE Student CASCADE;
--NOTICE:drop cascades to view IS_Student
SELECT*FROM IS_Student;
--ERROR:relation" IS_Student" does not exist
已验证--
CREATE CLUSTER INDEX Stusname ON Student(Sname);
已验证--
CREATE UNIQUE INDEX Stusno ON Student(Sno);
CREATE UNIQUE INDEX Coucno ON Course(Cno);
CREATE UNIQUE INDEX Scno ON SC(Sno ASC,Cno DESC);
已验证--
DROP INDEX Stusname;
已验证--
SELECT Sno,Sname
FROM Student;
已验证--
SELECT Sname,Sno,Sdept
FROM Student;
已验证--
SELECT*
FROM Student;
已验证--
SELECT Sname,2004-Sage
FROM Student;
已验证--
SELECT Sname,'Year of Birth:',2004-Sage,LOWER(Sdept) FROM Student;
已验证--
SELECT Sno
FROM SC;
已验证--
SELECT Sname
FROM Student
WHERE Sdept='CS';
已验证--
SELECT Sname,Sage
FROM Student
WHERE Sage<20;
已验证--
SELECT DISTINCT Sno
FROM SC
WHERE Grade<60;
已验证--
SELECT Sname,Sdept,Sage
FROM Student
WHERE Sage BETWEEn 20 AND 23;
已验证--
SELECT Sname,Ssex
FROM Student
WHERE Sdept IN('CS','MA','IS');
已验证--
SELECT*
FROM Student
WHERE Sno LIKE'200215121';
已验证--
SELECT Sname,Sno,Ssex
FROM Student
WHERE Sname LIKE'刘%’;
已验证--
SELECT Sname
FROM Student
WHERE Sname LIKE'欧阳——‘;
已验证--
SELECT Sname,Sno,Ssex
FROM Student
WHERE Sname NOT LIKE'刘%‘;
已验证--
SELECT Cno,Ccredit
FROM Course
WHERE Cname LIKE'DB\_Design'ESCAPE'\'; 已验证--
SELECT *
FROM Course
WHERE Cname LIKE'DB\_% i_ _'ESCAPE'\'; 已验证--
SELECT Sno,Cno
FROM SC
WHERE Grade IS NULL;
已验证--
SELECT Sno,Cno
FROM SC
WHERE Grade IS NOT NULL;
已验证--
SELECT Sname
FROM Student
WHERE Sdept='CS' AND Sage<20;
已验证--
SELECT Sno,Grade
FROM SC
WHERE Cno='3'
ORDER BY Grade DESC;
已验证--
SELECT *
FROM Student
ORDER BY Sdept,Sage DESC;
已验证--
SELECT COUNT(*)
FROM Student;
已验证--
SELECT COUNT(DISTINCT Sno)
FROM SC;
已验证--
SELECT AVG(Grade)
FROM SC
WHERE Cno='1';
已验证--
SELECT MAX(Grade)
FROM SC
WHERE Cno='1';
已验证--
SELECT SUM(Ccredit)
FROM SC,Course
WHERE Sno='200215012'AND o=o; 已验证--
SELECT Cno,COUNT(Sno) FROM SC
GROUP BY Cno;
已验证--
SELECT Sno
FROM SC
GROUP BY Sno
HAVING COUNT(*) >3;
已验证--。