irpas技术客

mysql 题带答案_ZoranGer_若要删除数据库中已经存在的表s

未知 1461

注意:主观题的答案,仅供参考,主观题是除了选择和填空题都是主观题,请各位老师在讲解时如有偏差可根据情况修 订。 第一部分:选择题 1、SQL语言通常称为( A ) A、结构化查询语言 B、结构化控制语言 C、结构化定义语言 D、结构化操纵语言 2、关系模型的基本结构是( A )。 A、二维表 B、树形结构 C、无向图 D、有向图 3、下列四项中,不属于数据库特点的是( D )。 A、数据共享 B、数据完整性 C、数据冗余很高 D、数据独立性高 4、DBMS是什么( B ) A、操作系统 B、数据库管理系统 C、数据库 D、数据库管理员 5、MySQL是一个( C )的数据库系统。 A、网状型 B、层次型 C、关系型 D、以上都不是 6、如果要修改表的结构,应该使用SQL语言的命令( C ) A、UPDATE TABLE B、MODIFY TABLE C、ALTER TABLE D、CHANGE TABLE 7、数据库中存放两个关系:教师(教师编号,姓名)和课程(课程号,课程名,教师编号),为快速 查出某位教师所讲授的课程,应该( C ) A、在教师表上按教师编号建索引 B、在课程表上按课程号建索引 C、在课程表上按教师编号建索引 D、在教师表上按姓名建索引 8、下列对DELETE权限的叙述中,正确的是( A ) A、允许删除数据 B、允许删除关系 C、允许对数据库模式进行删除 D、和DROP权限等价 9、数据库的完整性是指数据的( A )。 A、正确性和相容性 B、合法性和不被恶意破坏 C、正确性和不被非法存取 D、合法性和和相容性 10、MySQL中的Create Database语句可以创建一个( C )。 A、表 B、系统数据库 C、用户数据库 D、视图 11、下列用于定义字段的SQL语句中,错误的是( B )。 A、学号varchar(10) B、成绩int 4 C、产量float(5,2) D、价格decimal(8,4) 12、若要删除数据库中已经存在的表S,可用( C )。 A、delete table s B、delete s C、drop table s D、drop s 13、学生关系模式S(sno,sname,sex,age),S的属性分别表示学生的学号、姓名、性别、年龄。要 在表S中删除属性"年龄",可选用的SQL语句是( D ). A、delete age from s B、alter table s drop age C、update s age D、alter table s drop cloumn age 14、索引是对数据库表中( C )字段的值进行排序。 A、一个 B、多个 C、一个或多个 D、零个 15、在SQL中,建立表用的命令是( B )。 A、CREATE SCHEMA B、CREATE TABLE C、REATE VIEW D、CREATE INDEX 16、MySQL语言的grant和revoke语句用来维护数据库的( C ) A、完整性 B、可靠性 C、安全性 D、一致性 17、SQL语言中,删除一个表的命令是( B )。 A、DELETE B、DROP C、CLEAR D、REMOVE 18、以下关于外键和相应的主键之间的关系,正确的是( A )。 A、外键并不一定要与相应的主键同名 B、外键一定要与相应的主键同名 C、外键一定要与相应的主键同名而且唯一 D、外键一定要与相应的主键同名,但并不一定唯一 19、MySQL字符型数据类型主要包括( B )。 A、int、money、char B、char、varchar、text C、datetime、binary、int D、char、varchar、int 20、下面哪一个约束用来禁止输入重复值( A ) A、UNIQUE B、NULL C、DEFAULT D、FOREIGN KEY 21、以下哪种情况应尽量创建索引( A ) A、在where子句中出现频率较高的列 B、具有很多NULL值的列 C、记录较少的基本表 D、需要更新频繁的基本表 22、视图名称( A )与该用户拥有的任何表的名称相同。 A、不得 B、有可能 C、可以 D、根据需要 22、在SQL中,建立视图用的命令是( C )。 A、CREATE SCHEMA B、CREATE TABLE C、CREATE VIEW D、CREATE INDEX 23、在数据库中存储的是( D )。 A、数据B、数据模型 C、信息D、数据以及数据之间的联系 24、下面关于数据库系统的叙述中,正确的是( A )。 A、数据库系统减少了数据冗余 B、数据库系统避免了一切冗余 C、数据库系统中数据的一致性是指数据类型的一致 D、数据库系统是一个结构化的数据集合 25、数据的物理独立性是指( C ) A.数据库与数据库管理系统相互独立 B.用户程序与数据库管理系统相互独立 C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的 D.应用程序与数据库中数据的逻辑结构是相互独立的 26、下列不属于DBMS功能的是( C )。 A.数据定义B.数据操纵C.数据字典D.数据库运行控制 27、数据库系统的构成是:数据库、计算机硬件系统、用户和( C )。 A.数据集合B.操作系统C.数据库管理系统D.文件系统 28、数据库系统的核心是( C )。 A.数据库B.操作系统C.数据库管理系统D.文件系统 29、在数据库系统中,对存取权限的定义成为( B )。 A、命令B、授权 C、定义D、审计 30、假设存在一张职工表,包含“性别”属性,要求这个属性值只能取 “男”或“女”,这属于( C )。 A、实体完整性B、参照完整性 C、用户定义的完整性D、关系不变性 31、数据库的完整性是指数据的( D )。 A、正确性和不被非法存取B、合法性和不被恶意破坏 C、合法性和合法性D、正确性和相容性 32、用如下的SQL 语句创建一个Teacher 表 CREATE TABLE Teacher ( TNO Char(6) NOT NULL, NAME Char(8) NOT NULL, SEX Char(2), SAL INT, SDETP char(12) check (SDEPT IN(‘IS’,’MA’,’CS’))) 可以插入到Teacher 表中的元组是( A ) 。 (A)(‘T0203’,‘刘刚’,NULL,NULL,‘IS’) (B)( NULL, ‘王芳’,‘女’,‘1200’,‘CS’) (C)(‘T0111’,NULL,‘男’,23,‘MA’) (D)(‘T0101’,‘李华’,男,2100,‘EN’) 33、在下列关于规范化理论的叙述中,不正确的是( D )。 (A) 任何一个关系模式一定有键 (B) 任何一个包含两个属性的关系模式一定满足3NF (C) 任何一个包含两个属性的关系模式一定满足BCNF (D) 任何一个包含三个属性的关系模式一定满足2NF 34、SQL 的视图是从( D )中导出的。 (A)基本表 (C)数据库 (B)视图 (D) 基本表或视图 35、在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系 统阶段。在这几个阶段中数据独立性最高的是(A)阶段。 A.数据库系统B.文件系统 C.人工管理D.数据项管理 36、(B)是存储在计算机内有结构的数据的集合。 A.数据库系统B.数据库 C.数据库管理系统D.数据结构 37、关系模型中,一个关键字是(C)。 A.可由多个任意属性组成 B.至多由一个属性组成 C.可由一个或多个其值能惟一标识该关系模式中任何元组的属性组成 D.以上都不是 38、数据库管理系统通常提供授权功能来控制不同用户访问数据的权限,这主要是为 了实现数据库的(D) 。 A.可靠性B.一致性 C.完整性D.安全性 39、下面哪个不是数据库系统必须提供的数据控制功能(B) 。 A.安全性B.可移植性 C.完整性D.并发控制 40、在数据库的表定义中,限制成绩属性列的取值在0 到100 的范围内,属于 数据的(C)约束。 A、实体完整性B、参照完整性 C、用户自定义D、用户操作 41、在数据库设计中数据流图(DFD)和数据字典(DD)主要用来描结构化方法中的 (D)阶段的工具。 A、逻辑结构设计B、概念结构设计 C、可行性分析D、需求分析 42、当关系模式R(A,B)已属于3NF,下列说法中(B) 是正确的。 A.它一定消除了插入和删除异常 B.仍存在一定的插入和删除异常 C.一定属于BCNF D.A 和C 都是 43、在数据库设计中,用E-R 图来描述信息结构但不涉及信息在计算机中的表 示,它是数据库设计的(B) 阶段。 A.需求分析B.概念设计 C.逻辑设计D.物理设计 44、数据库(db)、数据库系统(dbs)和数据库管理系统(dbms)之间的关系是(b)。 A.db 包括dbs 和dbms B.dbs 包括db 和dbms C.dbms 包括db 和dbs D.三者平级关系 45、关于数据库的特点,以下说法不正确的是(b)。 A.数据结构化B.数据与程序一一对应 C.具有较高的数据独立性和统一的数据控制功能D.数据共享性高,冗余低, 易扩充 46、计算机数据管理依次经历的几个阶段为(c)。 A.文件系统、人工管理、数据库系统、分布式数据库系统和面向对象数据库系统 B.人工管理、文件系统、数据库系统、面向对象数据库系统和分布式数据库系统 C.人工管理、文件系统、数据库系统、分布式数据库系统和面向对象数据库系统 D.文件系统、人工管理、数据库系统、面向对象数据库系统和分布式数据库系统 47、数据库系统中所支持的数据模型有(c)。 A.层次模型、网状模型、链接模型B.网状模型、链接模型、关系模型 C.层次模型、网状模型、关系模型D.层次模型、网状模型、树形模型 48、在SQL 语言的SELECT 语句中,实现投影操作的是哪个子句?(A) A. select B. from C. Where D. group by 49、设属性A 是关系R 的主属性,则属性A 不能取空值(NULL)。这是(A) A. 实体完整性规则B. 参照完整性规则 C. 用户定义完整性规则D. 域完整性规则 50、在查询语句的Where 子句中,如果出现了“age Between 30 and 40”,这个表达式等 同于(A )。 A. age>=30 and age<=40 B. age>=30 or age<=40 C. age>30 and age<40 D. age>30 or age<40 51、SQL 的聚集函数COUNT、SUM、AVG、MAX、MIN 不允许出现在查询语句的( D) 子句之中。 A. SELECT B. HAVING C. GROUP BY… HAVING D. WHERE 52、列值为空值(NULL),则说明这一列( C)。 A. 数值为0 B. 数值为空格 C. 数值是未知的D. 不存在 53、在存在下列关键字的SQL 语句中,不可能出现Where 子句的是(D )。 A. Update B. Delete B. Insert D. Alter 54、如果要在一张管理职工工资的表中限制工资的输入范围,应使用(D )约束。 A. PDRIMARY KEY B. FOREIGN KEY C. unique D. check 55、记录数据库事务操作信息的文件是(D )。 A. 数据文件B. 索引文件 C. 辅助数据文件D. 日志文件 56、要查询XSH 数据库CP 表中产品名含有“冰箱”的产品情况,可用( C)命令。 A. SELECT * FROM CP WHERE 产品名称LIKE ‘冰箱’ B. SELECT * FROM XSH WHERE 产品名称LIKE ‘冰箱’ C. SELECT * FROM CP WHERE 产品名称LIKE ‘%冰箱%’ D. SELECT * FROM CP WHERE 产品名称=‘冰箱’ 57、储蓄所有多个储户,储户能够在多个储蓄所存取款,储蓄所与储户之间是 (D )。 A. 一对一的联系B. 一对多的联系 C. 多对一的联系D. 多对多的联系 58、数据库的数据一般存放在(D )中。 A. 内存B. CPU C. 寄存器D. 磁盘 59、下面对数据库三级模式结构的叙述中,不正确的是(C) A 三级模式结构可提供数据独立性 B 三级模式结构通过两级映像来实现数据独立性 C 模式做了修改,用户的应用程序必须修改 D 内模式做了修改,模式不必修改 60、数据库只存放视图的(A) A 定义B 操作C 结果D 数据 61、数据库系统的数据独立性体现在( A ) 。 A.不会因为数据存储结构与数据逻辑结构的变化而影响应用程序 B.不会因为数据的变化而影响到应用程序 C.不会因为存储策略的变化而影响存储结构 D.不会因为某些存储结构的变化而影响其他的存储结构 62、在SQL 语言中,子查询是( D ) 。 A.返回单表中数据子集的查询语言 B.选取多表中字段子集的查询语句 C.选取单表中字段子集的查询语句 D.嵌入到另一个查询语句之中的查询语句

详情下载地址

2019级师大《MySQL数据库》期末考试复习提纲.pdf-MySQL文档类资源-CSDN下载

第二部分:填空题 1.数据库系统的三级模式结构是指数据库系统是由模式、外模式和内 模式三级构成。 2.数据管理技术经历了人工管理,文件管理和数据库三个阶段。 3.职工(职工号,姓名,年龄,部门号)和部门(部门号,部门名称)存在引 用关系,其中职工是参照关系, 部门号是外码。 4.数据库设计分为6 个设计阶段,即需求分析概念结构设计阶段、逻辑结 构设计阶段、物理结构设计阶段、数据库实施阶段、数据库运行和维护阶 段六级结构进行组织。 5.实体之间的联系可抽象为三类,它们是1∶1 、1∶m 和m:n。 6.数据模型是由数据结构、数据操作和完整性约束三部分组成的。 7.在数据库系统中对存取权限的定义称为授权。 8.已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别, 入学日期,专业,系编号)两个表,系表的主关键字是系编号,学生表的主关键 字是学号,外关键字是系编号。 9.在Student 表的Sname 列上建立一个唯一索引的SQL 语句为: CREATE UNIQUE INDEX Stusname ON student(Sname) 10.假设学生表S 的结构为:S(SN,SEX,AGE,DEPT),查询所有比“王华”年龄 大的学生姓名、年龄和性别。正确的SELECT 语句是SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=”王华”) 11.数据完整性是指存储在数据库中的数据正确无误并且相关数据具有一致性,完整性约 束包括实体完整性、域完整性、引用完整性和用户定义完整性。 12. 如果要计算表中数据的平均值,可以使用的聚合函数是avg() 。 13. 语句SELECT (7+3)*4-17/(4-(8-6))+99%4 的执行结果是35 。 14. 在SELECT 查询语句中,distinct关键字用于去掉重复记录,into短语用于生成一个新 表, where短语用于指出查询条件,group by短语用于分组。 15. 若要修改某张表的结构, 应该使用的修改关键字是alter table ;若要创建一 个数据库,应该使用的语句是create database 。 16. 在数据库的表中,主关键字是指表中的某一列,该列的值唯一标识一行,例如学号 列。 17. 在查询操作中,将查询结果按指定表达式进行分组的子句是group by ; 对查询的结果集进行排序的子句是order by 。 18. SQL 语言的数据操纵功能包括数据插入,数据删除,数据更新,数据查询。 19. 语句select day('2004-4-6'), len('我们快放假了.') 的执行结果是:6 和7 20. 语句select round(13.4321,2), round(13.4567,3) 的执行结果是: 13.4300 和13.4570。 21. 语句select upper('beautiful') , ltrim('我心中的太阳') 的执行结果是 BEAUTIFUL 和我心中的太阳。 22. 索引的类型主要有聚集索引和非聚集索引。 23. 语句SELECT (7+3)*4-17/(4-(8-6))+99%4 的执行结果是35。 24. 视图是由一个或多个数据表(基本表)或视图导出的虚拟表。 25. 存储过程是已经存储在SQL Server 服务器中的一组预编译过的Transact- SQL 语句。 26. 触发器定义在一个表中,当在表中执行insert、update 或delete 操作时被触发自 动执行。 27. SELECT DATEADD(day, 10, '2005-12-22')结果是2006-01-01。 28. ROUND( )函数的是四舍五入函数。 29. 角色是指服务器管理、数据库管理和数据库访问特定的权限的集合。 30. 当表被删除时与它关联的触发器也一同被删除。 第三部分:SQL编写题 1、已知某数据库系统包含三个基本表: 商品基本表GOODS(G#,GNAME, PRICE ,TYPE , FACT) 商场基本表SHOPS(S#,SNAME,MANAG,ADDR ) 销售基本表SALES(S#,G#,QTY) 约定如下: G#,GNAME,PRICE,TYPE,FACT 分别代表商品号,商品名,单价,型号,制造 商; S#,SNAME,MANAG,ADD 分别代表商场号,商场名,经理,地址; QTY 代表销售数量 试用SQL 语句完成下列任务: 1. 使用SQL 语言从SHOPS 表中删除商场名为“百货大楼”的记录。 2. 使用SQL 语言为GOODS 表添加一条记录,内容是商品编号为“2018001”,商品名称 为“显示器”,但没有其他信息。 3. 使用SQL 语言查询生产了“微波炉”的制造商。 4. 使用SQL 语言查询销售“手机”的商店的编号和商店的名称。 5. 使用SQL 语言查各个制造商在“劝业场”的平均销售数量(要求输出制造 商名称及平均销售数量)。 6. 收回用户“张三”对SHOPS 表的查询权限。 (1) DELETE FROM SHOPS WHERE SNAME =‘百货大楼’ (2) INSERT INTO GOODS (G#,GNAME) VALUES('2018001', '显示器') (3) SELECT FACT FROM GOODS WHERE GNAME=’微波炉’ (4) SELECT S#,SNAME FROM SHOPS ,SALES ,GOODS WHERE GOODS.G#= SALES.G# AND SALES.S#=SHOPS.S# AND GNAME='手机' (5) SELECT FACT,AVG(QTY) FROM GOODS, SHOPS, SALES WHERE GOODS.G#=SALES.G# and SALES.S#=SHOPS.S# AND SNAME='劝业场' GROUP BY FACT; (6) Grant select on table shops to 张三 2、设学生课程数据库中有三个基本表: 学生表:S(SNO,SNAME,SAGE,SSEX,SDEPT) 课程表:C(CNO,CNAME) 选课表:SC(SNO,CNO,GRADE) 其中SNO、CNO、SNAME、SAGE、SSEX、SDEPT、GRADE、 CNAME 分别表示学号、课程号、姓名、年龄、性别、学生所在系、成绩和课程名。用 SQL 语句完成下列操作 1. 查询选修课程名称为“MATHS”的学生的学号与姓名。 2. 查询至少学习了课程号为“C1”和“C2”的学生的学号。 3. 使用SQL 语句创建视图v1,该视图仅包含化学系的学生信息。 4. 查询化学系中年龄大于19 岁的学生信息。 5. 查询选修了全部课程的学生姓名。 6. 收回用户“张三”对学生表S 的查询权限。 (1) SELECT SNAME,AGE FROM S,SC,C WHERE S.SNO =SC.SNO AND C.CNO =SC.CNO AND CNAME=’MATHS’ (2) SELECT SNO FROM SC WHERE CNO=’C1’ AND SNO IN( SELECT SNO FROM SC WHERE CNO=’C2’) (3) CREATEVIEW V1 AS SELECT SNO,SNAME,SSEX, SAGE,SDEPT FROM S WHERE (SDEPT='化学系'); (4) SESLECT * FROM S WHERESAGE>19 ANDSDEPT='化学系'; (或者)SESLECT * FROM V1 WHERESAGE>19; (5) SELECT SNAME FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE SNO=S.SNO AND CNO=C.CNO ) ) (6) Grant select on table s to 张三 3、现有“学生选课”数据库,其中主要的表有: “学生”表(学号,姓名,性别,专业,出生年月), “选课”表(学号,课程号,成绩), “课程”表(课程号,课程名,所属专业,学分) 按照下列要求写出SQL 语句: 1 )在“选课”表中,删除选了课程号为10004 的所有选课记录。 2 )在“课程”表中,修改课程号为10008 的课程名称:数字电路。 3 )设计子查询,查询“课程”表中,有哪些课程没有被任何同学报选。 4 )设计连接查询,查找选修了“数据结构”课程且成绩在80 分及以上的 学生的学号、姓名、课程名及成绩。 (1) use 学生选课 delete from 选课where 课程号=’10004’ (2) use 学生选课 update 课程set 课程名='数字电路' where 课程号='10008' (3) use 学生选课 select 课程号,课程名from 课程where 课程号not in (select distinct 课程号from 选课) (4) use 学生选课 select 学生.学号,姓名,课程.课程名,选课.成绩 from 学生join 选课on 学生.学号=选课.学号 join 课程on 课程.课程号=选课.课程号 where 课程.课程名=’数据结构’ and 选课.成绩>=80 4、有一个关系数据库,数据库名:Student,其中数据表如下: 学生信息(学号char(6),姓名char(8),性别char(2),民族char(2),身份 证号char(18)) 课程信息(课程号char(6),课程名varchar(20)) 成绩信息(学号char(6),课程号char(6),分数float) 用SQL 语言写出实现下列功能的语句代码。 1)创建数据表“学生信息”。 要求:学号为主键、身份证号为唯一索引、对性别字段进行检查。 2)查询课程成绩小于60 分的所有学生的信息,结果包括学号、姓名字段。 3)将下列课程信息添加到“课程信息”表。 课程号:101 , 课程名:西班牙语 4)创建视图“成绩信息视图”,字段为:(学号,姓名,课程名,成绩) 5)查询名字中带有‘丽’的女生信息。 (1) Create table 学生信息( 学号char(6) primary key not null , 姓名char(8), 性别char(2) check (性别=‘男’ or 性别=’女’), 民族char(2) , 身份证号varchar(18) unique key not null ) (2) Select 学号,姓名 From 学生信息,成绩信息 Where 学生信息.学号=成绩信息.学号and 成绩<60 (3) Insert into 课程信息values(‘101’,’西班牙语’) (4) Create view 成绩信息视图 As Select 学号,姓名,课程名, 成绩From 学生信息,成绩信息, 课程信息 Where 学生信息.学号=成绩信息.学号and 成绩信息.课程号=课程信息. 课 程号 (5) Select 姓名,性别,民族 From 学生信息 Where 姓名like ‘%丽%’ and 性别=‘女’ 5、表结构说明 下面是学生表的(Student)的结构说明: 字段名称字段解释字段类型字段长度约束 s_id 学号字符10 PK s_name 学生姓名字符50 Not null s_age 学生年龄数值3 Not null s-sex 学生性别字符(男:1女:0) 1 Not null 下面是教师表(Teacher )的结构说明: 字段名称字段解释字段类型字段长度约束 t_id 教师编号字符10 PK t_name 教师名字字符50 Not null 下面是课程表(Course)的结构说明: 字段名称字段解释字段类型字段长度约束 c_id 课程编号字符10 PK c_name 课程名字字符50 Not null t_id 教师编号字符10 Not null 下面是成绩表(SC)的结构说明: 字段名称字段解释字段类型字段长度约束 s_id 学号字符10 PK c_id 课程编号字符10 Notnull score 成绩数值3 Notnull 1)查询“001”课程比“002”课程成绩高的所有学生的学号; select a.s_id from (select s_id,score from SC where C_ID=‘001’) a,(select s_id,scorefrom SC where C_ID=‘002’) b where a.score>b.score and a.s_id=b.s_id; 2)查询平均成绩大于60分的同学的学号和平均成绩; select S_ID,avg(score) from sc group by S_ID having avg(score) >60; 3)查询所有同学的学号、姓名、选课数、总成绩; select Student.S_ID,Student.Sname,count(SC.C_ID),sum(score) from Student left Outer join SC on Student.S_ID=SC.S_ID group by Student.S_ID,Sname 4)查询姓“李”的老师的个数; select count(distinct(Tname)) from Teacher where Tname like ‘李%’; 5)查询所有课程成绩小于60分的同学的学号、姓名; select S_ID,Sname from Student where S_ID not in (select S.S_ID from Student AS S,SC where S.S_ID=SC.S_ID and score>60); 6)查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名; select distinct S_ID,Sname from Student,SC where Student.S_ID=SC.S_ID and SC.C_ID in (select C_ID from SC where S_ID=‘1001’); 6、Student学生表(学号,姓名、性别、年龄、组织部门),Course 课程表(编号,课 程名称),Sc选课表(学号,课程编号,成绩) 1)写一个SQL语句,查询选修了计算机原理的学生学号和姓名 select 学号,姓名from Student where 学号in(select 学号from Sc where 课程编 号in(Select 课程编号from Course where 课程名称= ‘计算机原理’)) 2)写一个SQL语句,查询“周星驰”同学选修了的课程名字 select 课程名称from Course where 编号in (select Sc.课程编号from Student,Sc where Student.姓名=’周星驰’ and Student.学号= Sc.学号) 第四部分:简答题 1、数据库MySQL分页时用的语句? 答:使用limit关键字。Select * from 表名where 条件limit 开始位置,结束位置。 通过动态的改变开始和结束位置的值来实现分页。 2、根据你以往的经验简单叙述一下MySQL的优化? 答:a、尽可能使用更小的整数类型.(mediumint就比int更合适). b、尽可能的定义字段为not null,除非这个字段需要null. c、如果想要清空表的所有记录,建议用truncate table tablename而不是delete from tablename. d、避免出现SELECT * FROM table 语句,要明确查出的字段。 e、小心使用IN 和OR,需要注意In集合中的数据量。建议集合中的数据不超过200个。 3、数据库设计中,一对多如何处理? 答:数据库外键关系表示的其实是一种一对多关系,所以处理一对多时可以使用外键。 4、数据库设计中,多对多一般如何处理? 答:引入中间表,把一个多对多表示为两个一对多。 5、MySQL数据库中,常用的数据类型 答:类型名称说明 int(integer) 整数类型 double 小数类型 decimal(m,d) 指定整数位与小数位长度的小数类型 date 日期类型,格式为yyyy-MM-dd,包含年月日,不包含时分秒 datetime 日期类型,格式为yyyy-MM-dd HH:mm:ss,包含年月日时分秒 timestamp 日期类型,时间戳 varchar(M) 文本类型,M为0~65535之间的整数 6、什么是基本表?什么是视图? 答:基本表是本身独立存在的表,在SQL 中一个关系就对应一个表。 视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。 7、索引的作用?和它的优点缺点是什么? 答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类 似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯 一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也 增加了数据库的尺寸大小。 8、如何通俗地理解三个范式? 答:第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解; 第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性; 第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字 段没有冗余。。 范式化设计优缺点: 优点: 可以尽量得减少数据冗余,使得更新快,体积小 缺点:对于查询需要多个表进行关联,减少写得效率增加读得效率,更难进行索引优化 反范式化: 优点:可以减少表得关联,可以更好得进行索引优化 缺点:数据冗余以及数据异常,数据得修改需要更多的成本 9、视图和表的区别和联系。 答:区别: 1)视图是已经编译好的sql语句。而表不是 2)视图没有实际的物理记录。而表有。 3)表是内容,视图是窗口 4)表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进 行修改,但视图只能有创建的语句来修改 5)表是内模式,视图是外模式 6)视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL 语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。 7)表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。 8)视图的建立和删除只影响视图本身,不影响对应的基本表。 联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所 有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也 可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。 10、不可重复读和幻读到底有什么区别呢? 答:(1)不可重复读是读取了其他事务更改的数据,针对insert与update操作 解决:使用行级锁,锁定该行,事务A多次读取操作完成后才释放该锁,这个时候才允许 其他事务更改刚才的数据。 (2)幻读是读取了其他事务新增的数据,针对insert与delete操作 解决:使用表级锁,锁定整张表,事务A多次读取数据总量之后才释放该锁,这个时候才 允许其他事务新增数据。 第五部分:编程题(代码不分大小写) 1、数据库表如下图所示,如何能够查看任意部门的平均工资水平?编写带参存储过程程 序,并写出执行存储过程的语句。 参考答案: 1)代码如下: Delimiter $$ --------1分 CREATE PROCEDURE getavg1(in var_dname varchar(10))---------1分 begin select avg(sal) from emp e join dept d on e.deptno=d.deptno where d.dname=’var_dname’; ----------1分 end; $$ 2) 运行代码: Call getavg1(‘research’); --------1分 或者 set @x='research'; call get_agv1(@x); 2、student表的结构如下: student表结构 字段名数据类型主键外键非空唯一自增 sno Char(10) 是否是是否 sname VARCHAR(20) 否否是否否 ssex CHAR(2) 否否是否否 Sage smallint 否否是否否 Sdept VARCHAR(30) 否否是否否 enterdate datetime 否否是否否 创建一存储过程insert_student_condition_user,利用自定义错误触发条件定义,当插入学 生的性别不是“男”或“女”时结束存储过程,并提示“学生性别不正确”。 参考代码: 代码如下 delimiter $$ ---------1分 create PROCEDURE insert_student_condition_user(in sno int,in sname VARCHAR(20), in ssex varchar(2),in sage int,in sdept varchar(30)) -------1分 BEGIN DECLARE continue handler for sqlstate '42S02' select '学生性别不正确';---1分 if ssex='男' or ssex='女' THEN insert into student values(sno,sname,ssex,sage,sdept); end if; ------1分 end $$ delimiter; 3、student表的结构如下: student表结构 字段名数据类型主键外键非空唯一自增 sno Char(10) 是否是是否 sname VARCHAR(20) 否否是否否 ssex CHAR(2) 否否是否否 Sage smallint 否否是否否 Sdept VARCHAR(30) 否否是否否 enterdate datetime 否否是否否 borthyear int 否否否否否 创建一存储过程update_student_borthyear,在学生表(表结构如表7.3)中添加字段” borthyear”(出生年份),在存储过程中利用游标,通过学生年龄计算出出生年份并修改表 中对应字段。 参考代码: 代码如下 create procedure update_student_borthyear(in s_no char(10)) BEGIN declare s_age char(10); declare state char(20); declare cur cursor for select sage from student; declare exit handler for 1329 set state='error'; open cur; REPEAT fetch cur into s_age; update student set borthyear=2018-s_age where sno=s_no; until state='error' end repeat; close cur; END 4、编写一个存储过程PR_GET_PASS_RATE统计某门课程的及格率,其传入参数是课程号P_CNO,传 出参数是该课程成绩的及格率P_PASSRATE,及格率的格式形如:86.56%。 create or replace procedure PR_passrate_count (p_cno char,P_PASSRATE out char) as v_passcnt int; v_totalcnt int; begin --先求及格人数 select count(*) into v_passcnt from sc where cno=p_cno and grade>=60; --若及格人数为0则给出结果 if v_passcnt=0 then P_PASSRATE:='0%'; else select count(*) into v_totalcnt from sc where cno=p_cno; P_PASSRATE:=to_char(round(100*v_passcnt/v_totalcnt,2))||'%'; end if; end; 5、创建一个存储过程查询学号为“020101” 的学生的平均分是否超过了85分, 若超过则输出 “ X X 考出了高分”, 否则输出“XX 考的一般”。 (1)创建存储过程: CREATE PROCEDURE test05() --1分 BEGIN IF (SELECT score from student WHERE id=1)>85 THEN --1分 SELECT '考得好'; ELSE SELECT '考得不好'; --1分 END IF; END (2)执行存储过程: CALL test05() --1分 6、有一个关系数据库,数据库名:Student,其中数据表如下: 学生信息(学号char(6),姓名char(8),性别char(2),民族char(2),身份 证号char(18)) 课程信息(课程号char(6),课程名varchar(20)) 成绩信息(学号char(6),课程号char(6),分数float) 创建带参数的存储过程“某门课程高低均分”。存储过程功能:输入课程名,即可查询得到此 课程的最高分、最低分、平均分。 参考答案: (1)创建存储过程: CREATE PROCEDURE 某门课程高低均分( class_name VARCHAR(20)) BEGIN SELECT max(分数),min(分数),avg(分数) FROM 学生信 息s,课程信息k,成绩信息c WHERE s.学号=c.学号AND k.课程号=c.课程号AND 课程名=class_name; END (2)执行存储过程: CALL 某门课程高低均分(‘语文’) 第六部分:综合设计题 1、设有商店和顾客两个实体,“商店”有属性:商店编号、商店名、地址、电话, “顾客”有属性:顾客编号、姓名、地址、年龄、性别。假设一个商店有多个顾客 购物,一个顾客可以到多个商店购物,顾客每次去商店购物有一个消费金额和日期, 而且规定每个顾客在每个商店里每天最多消费一次。 ①试画出ER 图,并注明属性和联系类型。(5 分) ②将E-R 图转换成关系模型,并注明主码和外码(5 分) 商店编号商店地址电话 n 金额消费日期 m 顾客编号姓名地址年龄性别 顾客 商店 商店(商店编号,商店名,地址,电话) 顾客(顾客编号,姓名,地址,年龄,性别) 消费(商店编号,顾客编号,消费金额,日期) 2、某医院病房计算机管理中需要如下信息: 科室:科名,科地址,科电话,医生姓名; 病房:病房号,病床号,所属科室名; 医生:姓名,职称,所属科室名,年龄,工作证号; 病人:病历号,姓名,性别,诊断,主管医生,病房号。 其中,一个科室有多个病房,多个医生,一个病房只能属于一个科室, 一个医生只属于一个科室,但可负责多个病人能的诊治,一个病人的主管医 生只有一个。 完成如下设计: (1) 设计该计算机管理系统的E-R 图; (2) 将该E-R 图转换为关系模型的结构并指出主码; 学号 成绩 姓名 课程号 m n 年龄选课 课程名 1 地址 任教 性别 m 职工号 教师姓名 职称 教师 学生 课程 (2) 科室(科名,科地址,科电话) 病房(病房号,床位号,科室名) 医生(工作证号,姓名,职称,科室名,年龄) 病人(病历号,姓名,性别,主管医生,病房号) 3、假设每个学生选修若干门课程,且每个学生每选一门课只有一个成绩,每个教 师只担任一门课的教学,一门课由若干教师任教。“学生”有属性:学号、姓名、地 址、年龄、性别。“教师”有属性:职工号、教师姓名、职称,“课程”有属性:课程 号、课程名。 ①试画出ER 图,并注明属性和联系类型。(5 分) ②将E-R 图转换成关系模型,并注明主码和外码(5 分) 工产编号厂名地址产品编号产品名规格 工厂 m n 生产品 1 计划数量 聘聘期 n 工资 职工 职工号姓名 学生(学号,姓名,地址,年龄,性别) 课程(课程号,课程名) 教师(职工号,教师姓名,职称,课程) 选课(学号,课程号,成绩) 4、某企业集团有若干工厂,每个工厂生产多种产品,且每一种产品可以在多个工 厂生产,每个工厂按照固定的计划数量生产产品;每个工厂聘用多名职工,且每名 职工只能在一个工厂工作,工厂聘用职工有聘期和工资。工厂的属性有工厂编号、 厂名、地址,产品的属性有产品编号、产品名、规格,职工的属性有职工号、姓名。 1) 根据上述语义画出E-R 图;(5 分) 2) 将该E-R 模型转换为关系模型;(5 分) 3) (要求:1:1 和1:n 的联系进行合并) 4) 指出转换结果中每个关系模式的主码和外码。(5 分) (2) 转化后的关系模式如下: 工厂(工厂编号,厂名,地址) 产品(产品编号,产品名,规格) 职工(职工号,姓名,工厂编号,聘期, 工资) 生产(工厂编号,产品编号,计划数量) (3) 每个关系模式的主码、外码如下: 工厂:主码是工厂编号,无外码; 产品:主码是产品编号,无外码; 职工:主码职工号,外码是工厂编号; 生产:主码是(工厂编号,产品编号)外码是工厂编号、产品编号。 仓库编号仓库名地址 聘期 属于 聘用 工资 1 n 公司编号公司名地址职工编号姓名性别 公司 职工 n 1 仓库 5、设某商业公司数据库中有三个实体集,一是”公司”实体集,属性有公司编号、 公司名、地址等;二是”仓库”实体集,属性有仓库编号、仓库名、地址等;三是” 职工”实体集,属性有职工编号、姓名、性别等。每个公司有若干个仓库, 每个仓 库只能属于1 个公司,每个仓库可聘用若干职工,每个职工只能在一个仓库工作, 仓库聘用职工有聘期和工资。 ①试画出E-R 图(5 分) ②将E-R 图转换成关系模型,并注明主码和外码(5 分) 仓库(仓库编号,仓库名,地址,公司编号) 公司(公司编号,公司名,地址) 职工(职工编号,姓名,性别,仓库编号,聘期,工资) 6、设有运动员和比赛项目两个实体,“运动员”有属性:运动员编号、姓名、单 位、性别、年龄,“比赛项目”有属性:项目号、名称、最好成绩。一个运动员可以 参加多个项目,一个项目由多名运动员参加,运动员参赛还包括比赛时间、比赛成绩 等信息。 ①试画出ER 图,并注明属性和联系类型。(5 分) ②将E-R 图转换成关系模型,并注明主码和外码(5 分 运动员编号姓名单位性别年龄 m 比赛时间参加比赛成绩 n 项目号名称最好成绩 比赛项目 运动员 运动员(运动员编号,姓名,单位,性别,年龄) 比赛项目(项目号,名称,最好成绩) 参赛(运动员编号,项目号,比赛时间,比赛成绩) 7、工厂(包括厂名和厂长名)需要建立一个管理数据库存储以下信息:(1)一 个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话。(2)一 个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种。3)一个车 间生产多种产品,产品有产品号和价格。4)一个车间生产多种零件,一个零件 也可能为多个车间制造。零件有零件号、重量和价格。(5)一个产品由多种零 件组成,一种零件也可装配出多种产品。6)产品与零件均存入仓库中。7)厂内 有多个仓库,仓库有仓库号、仓库主任姓名和电话。 (1) 据工厂的情况,用E-R 图画出概念模型,并注联系类型。(10 分) (2) 将E-R 图转换成关系模型,并注明主码和外码。(10 分) 工厂(厂名,厂长名) 车间(车间号,车间主任姓名,地址,电话,厂名) 工人(职工号、姓名、年龄、性别和工种,车间号) 产品(产品号,价格,车间号) 零件(零件号,重量,价格) 仓库(仓库号,仓库主任姓名,电话,厂名) 生产产品(产品号,车间号,数量) 生产零件(零件号,车间号,数量) 装配产品(产品号,零件号,数量) 存放产品(产品号,仓库号,数量) 存放零件(零件号,仓库号,数量) 1 厂名厂长名 属于 产品号价格 1 车间号 拥有仓库号 n o 车间主任姓名n 生产p 存入 m 1 n 组成仓库主任姓名 地址 m 1 n 电话o p n 生产存入 工作 电话 n 零件号重量价格 职工号姓名年龄性别工种 零件 仓库 车间 产品 工厂 工人


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #若要删除数据库中已经存在的表s #a