数据库的基础

下列四项中,不属于数据库特点的是( )。 A.数据共享 B.数据完整性 C.数据冗余很高 D.数据独立性高
试题答案:C
下列描述正确的是( )。 A.一个数据库只能包含一个数据表 B.一个数据库可以包含多个数据表 C.一个数据库只能包含两个数据表 D.一个数据表可以包含多个数据库
试题答案:B
MySQL是一种( )类型的数据库管理系统。 A.关系模型 B.网状模型 C.实体-关系模型 D.层次模型
试题答案:A
E-R图是数据库设计的工具之一,它一般适用于建立数据库的________。 A.概念模型 B.结构模型 C.物理模型 D.逻辑模型
试题答案:A
设有部门和职员两个实体,每个职员只能属于一个部门,一个部门可以有多名职员。则部门与职员实体之间的联系类型是 A.m:n B.1:m C.m:1 D.1:1
试题答案:B
储蓄所有多个储户,储户在多个储蓄所存取款,储蓄所与储户之间是( )。 A.一对一的联系 B.一对多的联系 C.多对一的联系 D.多对多的联系
试题答案:D
在SQL语句中,与表达式"仓库号 NOT IN(“wh1”,“wh2”)"功能相同的表达式是 A.仓库号=“wh1” AND 仓库号=“wh2” B.仓库号!=“wh1” OR 仓库号!= “wh2” C.仓库号=“wh1” OR 仓库号=“wh2” D.仓库号!=“wh1” AND 仓库号!=“wh2”
试题答案:D
在SELECT语句中用于实现条件选择运算的关键字是 A.FOR B.WHILE C.WHERE D.CONDITION
试题答案:C
根据关系模式的完整性规则,一个关系中的主键(  )。 A.不能由两个字段组成 B.不能成为另一个关系的外部键 C.不允许空值 D.可以取空值
试题答案:C
在SQL中,DROP INDEX 语句的作用是() A.建立索引 B. 删除索引 C.修改索引 D. 更新索引
试题答案:B
用SQL 的ALTER TABLE 语句修改基本表时,删除其中某个列的约束条件应使用的子句是( ) A.ADD B. DELETE C. MODIFY D. DROP
试题答案:D
陈述A:查询的类型返回一个带有多值结果的单列用IN子句实现。 陈述B:对于是否存在数据的子查询用EXISTS实现。 关于对以上陈述的描述中,正确的是( )。 A.陈述A错误,陈述B正确 B.陈述A正确,陈述B错误 C.都是错误的 D.都正确
试题答案:D
有一表:DEPT (dno, dname) ,如果要找出倒数第三个字母为W,并且至少包含4个字母的dname,则查询条件子句应写成 where dname like ( )。 A.’_ W% ’ B.’%W ’ C.’W ’ D.’W%’
试题答案:B
查询结果集中将name字段显示为“姓名”,应该使用下面哪个语句?( ) A. select name from authors as 姓名 B. select au_fname=姓名 from authors C. select * from authors where name=姓名 D. select name 姓名 from authors
试题答案:D
下列语言中属于结构化查询语言的是( )。 A.Java B.C C.SQL D.C++
试题答案:C
在SQL中,建立视图用(  )。 A. Create table 命令 B. Create view 命令 C. Create index 命令 D. Create proc 命令
试题答案:B
要快速完全清空一个表,可以使用如下语句: A. TRUNCATE TABLE B. DELETE TABLE C. DROP TABLE D. CLEAR TABLE
试题答案:A
要想对表中记录分组查询,可以使用哪一子句? A.GROUP BY B.AS GROUP C.GROUP AS D.TO GROUP
试题答案:A
创建表时,不允许某列为空可以使用: A.NOT NULL B.NO NULL C.NOT BLANK D.NO BLANK
试题答案:A
使用ALTER TABLE修改表时,如果要修改表的名称,可以使用哪一子句? A.CHANGE NAME B.SET NAME C.RENAME D.NEW NAME
试题答案:C
数据库信息系统的核心是
_______。 A.数据模型 B.数据库管理系统 C.数据库 D.数据库管理员
试题答案:C
以下哪些命令是DDL语句() A.CREATE DATABASE命令 B. Update命令 C.SELECT 命令 D. INSERT命令
试题答案:A
在SQL中,删除视图用______。 A.DROP SCHEMA命令 B.CREATE TABLE命令 C.DROP VIEW命令 D.DROP INDEX命令
试题答案:C
若MySql默认设置为手动提交,DELETE FROM S WHERE 年龄>60语句的功能是______。 A.从S表中彻底删除年龄大于60岁的记录 B.S表中年龄大于60岁的记录被加上删除标记 C.删除S表 D.删除S表的年龄列
试题答案:B
使用SELECT语句显示表的所有的列时,选用的符号是( )。 A.* B.[] C._ D.[^]
试题答案:A
SQL 查询中去除重复数据的是( ) A. ORDER BY B. GROUP BY C. DISTINCT D. DESC
试题答案:C
下列哪一种连接保证包含第一个表中的所有行和第二个表中的所有匹配行( )。 A. LEFT OUTER JOIN B. RIGHT OUTER JOIN C. INNER JOIN D. JOIN
试题答案:A
视图是一个“虚表”,视图的构造基于( ) A.基本表 B.视图 C.基本表或视图 D.数据字典
试题答案:C
创建视图时: A. 可以引用其它的视图 B. 一个视图只能涉及一张表 C. 可以替代一个基表 D. 以上说法都不正确
试题答案:A
( )SQL语句将为计算列SAL12生成别名Annual Salary A.SELECT ename,sal12 ‘Annual Salary’ FROM emp; B.SELECT ename,sal12 “Annual Salary” FROM emp; C.SELECT ename,sal12 AS Annual Salary FROM emp; D.SELECT ename,sal12 AS INITCAP(“Annual Salary”) FROM emp;
试题答案:A
评估SQL语句: SELECT ROUND(45.953, -1) FROM dual; 该语句的显示结果? A. 46 B. 45.93 C. 50 D. 45.9
试题答案:C
评估SQL语句:SELECT ename, sal, 12
sal+100 FROM emp; Sal 列存储的是月薪,现在要求查询语句能够显示 每月增加100元补贴后的年薪,上面的语句如何更改? A. 不需要做任何修改 B. SELECT ename, sal, 12*(sal+100) FROM emp; C. SELECT ename, sal, (12sal)+100 FROM emp; D. SELECT ename, sal+100,12 FROM emp;
试题答案:B
用于显示表结构的命令是什么? A. DESC B. HOST C. SELECT D. DIR
试题答案:A
评估SQL语句 SELECT ROUND(TRUNCATE(MOD(1600,10),-1),2) FROM dual;语句执行完成后的结果是? A. 0 B. 1 C. 0.00 D. 发生错误
试题答案:A
下列SELECT语句用于查询表中email列为空值的行,哪个是正确的? A. SELECT ename,sal,email from emp where email = 0; B. SELECT ename,sal,email from emp where email =’ ’; C. SELECT ename,sal,email from emp where email is null; D. SELECT ename,sal,email from emp where email is not null;
试题答案:C
你需要修改 STUDENTS 表在STUDENT_ID列上增加一个PK约束,当前此表为空表,下面语句正确的是? A. ALTER TABLE students ADD PRIMARY KEY student_id; B. ALTER TABLE students ADD CONSTRAINT PRIMARY KEY (student_id); C. ALTER TABLE students ADD CONSTRAINT stud_id_pk PRIMARY KEY student_id; D. ALTER TABLE students ADD CONSTRAINT stud_id_pk PRIMARY KEY (student_id);
试题答案:D
分析以下的SQL命令: SELECT 图书.书号,图书.书名,借阅.读者号 FROM 借阅 RIGHT JOIN 图书 ON 图书.书号=借阅.书号 如下描述正确的是(  )。 A 将没借书的读者信息也查出来 B 只查出被借走的图书信息 C 将没被借走的图书信息也查出来 D 只查出被借走图书的书号和书名
试题答案:C
CREATE,DROP,ALTER等命令属于下列哪类命令( ) A. DCL B. DDL C. DML D. DQL
试题答案:B
下列哪类命令在未提交前可以通过ROLLBACK命令进行回退( ) A. DCL B. DDL C. DML D. DQL
试题答案:C
( )函数通常用来计算累计排名、移动平均数和报表聚合等。 A.汇总 B.分析 C.分组 D.单行
试题答案:A
INSERT,UPDATE,DELETE等命令属于下列哪类命令( ) A. DCL B. DDL C. DML D. DQL
试题答案:C
关于约束,下列哪些描述是正确的?() A. UNIQUE约束不允许空值 B. 在创建PK或UNIQUE 约束时默认会同进创建唯一性索引 C. PK 约束允许列中有一个空值 D. NOT NULL约束是确保列中会出现空值
试题答案:B
使用哪个命令可以从表的行中删除所有数据而不删除表自身? A. ALTER TABLE B. DROP TABLE C. MODIFY D. DELETE FROM
试题答案:D
如果需要更新 6 月 30 日之前生产的产品的有效期。应在 UPDATE 语句的哪个子句中指定这一条件? A. ON 子句 B. WHERE 子句 C. SET 子句 D. USING 子句
试题答案:B
若需要更新居住地为亚特兰大 (Atlanta) 的雇员的区域代码。考虑下面的部分 UPDATE 语句: UPDATE 雇员 SET 区域代码 = 770 应在 UPDATE 语句中包括以下哪个子句才能得到所需结果? A. UPDATE 城市 = Atlanta; B. SET 城市 = ‘Atlanta’; C. WHERE 城市 = ‘Atlanta’; D. LIKE ‘At%’;
试题答案:C
有数据”test”分别存放到char(10)和varchar(10)类型的字段中,其实际存储长度为 A. 10 10 B. 4 4 C. 10 4 D. 4 10
试题答案:C
哪个命令用来创建一个primary key constraint pk_books 在表 BOOKS, 列 ISBN上? 请选择一个。 A. create primary key on books(ISBN); B. create constraint pk_books primary key on books(ISBN); C. alter table books add constraint pk_books primary key (ISBN); D. alter table books add primary key (ISBN);
试题答案:C
MySql数据库中,取余数的运算符是()。 A. % B. mod C. / D.
试题答案:A
关于表的主键,说法正确的是( )。 A. 主键字段最多只能建立在一个字段上 B. 主键字段的值可以重复 C. 主键字段的值能为Null D. 主键字段的值不能重复
试题答案:D
MySql数据库中,下面( )可以作为有效的列名。 A. Column B. 123_NUM C. NUM_#123 D. #NUM123
试题答案:C
MySql数据库中,以下( )命令可以删除整个表中的数据,并且无法回滚。 A. drop B. delete C. truncate D. cascade
试题答案:C
若MySql设置默认提交方式为手动提交,第一步执行了DELETE命令,删除了某表中的一条记录.第二步执行了COMMIT命令. 最后又执行了ROLLBACK命令.请问以下叙述正确的是( ) A. 被删除的记录又被恢复回来,仍然存放在数据库的表中 B. 被删除的记录彻底从数据库中被删除掉了 C. 被删除的记录只是当前用户看不到了,而其它用户还能看到 D. 被删除的记录当前用户可以看到,而其它用户却看不到了
试题答案:B
若MySql设置默认提交方式为手动提交,第一步用DELETE命令删除了表A中的数据(但并没有提交),第二步成功创建了一个表B, 第三步执行了一个ROLLBACK回滚操作.请问以下叙述正确的是( ) A. 表A中的数据被恢复回来,创建的表B被从数据库中被删除,恢复为未建表之前的状态 B. 表A中的数据被恢复回来,表B被创建在数据库中. C. 表A中的数据被彻底从数据库中删除,但表B被从数据库中被删除,恢复为未建表之前的状态 D. 表A中的数据被彻底从数据库中删除,表B被创建在数据库中.
试题答案:B
若MySql设置默认提交方式为手动提交,第一步用DELETE命令删除了表A中的数据(但并没有提交), 第二步试图创建了一个表B,但由于权限不足,表B并没有创建成功. 第三步执行了一个ROLLBACK回滚操作.请问以下叙述正确的是( ) A. 表A中的数据被恢复回来 B. 表A中的数据被彻底从数据库中删除 C. 表A中的数据被移至一个临时的表中 D. 表A中的数据将处于一个不确定的状态
试题答案:A
若想要修改一个表的结构,应该用以下哪个命令( ) A. ALTER TABLE B. DEFINE TABLE C. MODIFY TABLE D. REBUILD TABLE
试题答案:A
以下对于事务的叙述,比较全面的是( ) A. 事务中的操作是一个整体,要成功都成功,要失败都失败 B. 事务可以把所操作的数据库由一个状态转变到另一个状态 C. 事务在提交之前,其它事务看不到它对数据库的影响 D. 以上所述都是正确的
试题答案:D
以下哪个命令是DDL命令( ) A. CREATE B. INSERT C. COMMIT D. SELECT
试题答案:A
对于MySql数据库,设计用户表时,家庭住址字段最好采用下面的哪个数据类型进行存储 A. CHAR B. CHAR2 C. VARCHAR D. VARCHAR2
试题答案:C
假定有一张表用户表users,其中一身份证字段ID_card.为了维护数据的完整性,在设计数据库时,最好对ID_card字段添加约束,请问应该添加什么约束(  ) A.primary key B.check C.default D.not null
试题答案:A
下面哪个命令不属于数据操纵语言(DML)( ) A.ALTER… B.INSERT… C.UPDATE… D. Delete…
试题答案:A
删除emp表中所有数据,且可以rollback,以下语句哪个命令可以实现( ) A. truncate table emp B. drop table emp C. delete * from emp D. delete from emp
试题答案:D
以下哪个选项不是有效的MySql约束类型?( ) A. UNIQUE B.NONUNIQUE C. CHECK D.PRIMARY KEY
试题答案:B
以下关于列的叙述中,哪一项是不正确的? A. 可以增大 CHAR 列的宽度。 B. 如果列包含非空数据,则可以修改列的数据类型。 C. 可以将 CHAR 数据类型的列转换为 VARCHAR 数据类型。 D. 可以将 DATE 日期类型的列转换为 VARCHAR 列。
试题答案:B
以下哪个命令是DCL命令( ) A. CREATE B. INSERT C. COMMIT D. GRANT
试题答案:D
以下哪项陈述最符合此 SQL 语句中“学生”表发生的变化? UPDATE 学生 SET 午餐编号 = (SELECT 午餐编号 FROM 学生 WHERE 学生标识 = 17 ) WHERE 学生标识 = 19; A. 此语句将更新“学生”表,具体操作为将标识号为 19 的学生的午餐编号替换为标识号为 17 的学生的午餐编号。 B. 将一个新行插入“学生”表中。 C. 不发生任何变化,因为不能在 UPDATE 语句中使用子查询。 D. 删除学生 17 的午餐编号,并根据学生 19 的午餐编号插入一个新值。
试题答案:A
应使用以下哪个组函数来显示“雇员”表中的最高薪金值? A. AVG B. COUNT C. MAX D. MIN
试题答案:C
以下 SQL 语句将返回什么结果? SELECT COUNT(DISTINCT 薪金) FROM 雇员; A. 雇员表中所有唯一薪金的列表 B. 雇员表中的薪金总额 C. 雇员表中的总行数 D. 雇员表中的唯一薪金的数量
试题答案:D
在MySQL中,下面用于限制分组函数的返回值的子句是()。 A.WHERE B.HAVING C.ORDER BY D.无法限定分组函数的返回值
试题答案:B
在MySQL中,有一个教师表teacher的结构如下: ID int(5) NAME VARCHAR(25) EMAIL VARCHAR(50) 下面哪个语句显示没有Email地址的教师姓名()。 A.SELECT name FROM teacher WHERE email = NULL; B.SELECT name FROM teacher WHERE email <> NULL; C.SELECT name FROM teacher WHERE email IS NULL; D.SELECT name FROM teacher WHERE email IS NOT NULL;
试题答案:C
关于通配符中的“%”,以下说法正确的两项是( )。 A. 代表任意一个字符,与Like结合使用 B. 代表任意多个字符,与Like结合使用 C. 代表任意一个字符,在Like后的表达式中只能使用一次“%” D. 代表任意多个字符,在Like后的表达式中不可以使用多次“%”
试题答案:B
要统计某表中记录的总个数,以下哪项是正确的SQL语句( )。 A. select Max(
) from 表名 B. select Sum() from 表名 C. select Count() from 表名 D. select Min() from 表名
试题答案:C
下列正确查询姓张的学生的语句是( )。 A. select * from 表名 where 姓名 = ‘张’ B. select * from 表名 where 姓名 like ‘张%’ C. select * from 表名 where 姓名 = ‘%张%’ D. select * from 表名 where 姓名 like ‘张’
试题答案:B
列出EMP表中,从事每个工种(JOB)的员工人数( ) A. select job from emp; B. select job,count(
) from emp; C. select distinct job,count() from emp; D. select job,count() from emp group by job;
试题答案:D
查询出当前的日期,可以用下面哪个选项( ) A. select curdate(); B. select to_char(sysdate,‘YYYY-MM-DD HH24:MI:SS’) from dual; C. select date(sysdate,‘YYYY-MM-DD HH24:MI:SS’) from dual; D. select chr(sysdate,‘YYYY-MM-DD HH24:MI:SS’) from dual;
试题答案:A
查询出所有名字以’S’开始的员工( ) A. select * from emp where ename in ‘S%’; B. select * from emp where ename=‘S%’; C. select * from emp where ename like ‘S%’; D. select * from emp where ename like ‘S_’;
试题答案:C
取出工资在2000到3000元(包括上下限)之间的员工( ) A. select * from emp wher sal in (2000,3000); B. select * from emp wher sal like (2000,3000); C. select * from emp wher sal = (2000,3000); D. select * from emp wher sal between 2000 and 3000;
试题答案:D
查询出EMP表中COMM字段为空的记录( ) A. select * from emp where comm=‘’; B. select * from emp where comm=null; C. select * from emp where nvl(comm)=0; D. select * from emp where comm is null;
试题答案:D
查询出EMP表中1982年及以后入职的员工信息(注:字段hiredate为入职日期,数据类型为DATE型) A. select * from emp where hiredate>=‘19820101’; B. select * from emp where hiredate>=to_char(‘19820101’,‘YYYYMMDD’); C. select * from emp where to_date(hiredate,‘YYYYMMDD’)>=‘19820101’; D. select * from emp where to_char(hiredate,‘YYYYMMDD’)>=‘19820101’;
试题答案:A
下面四个语句中哪一个是正确的?( ) A.SELECT * , ENAME FROM EMP; B.DELETE * FROM EMP; C.SELECT DISTINCT EMPNO ,HIREDATE FROM EMP; D.SELECT ENAME|SAL AS “name” FROM EMP ;
试题答案:C
( )子句用于查询列的唯一值。 A.unique B.distinct C.order by D.group by
试题答案:B
哪一个是子查询执行的顺序( ) A.从最里面的查询到最外面的查询 B.从最外面的查询到最里面的查询 C.从简单查询到复杂查询 D.从复杂查询到简单查询
试题答案:A
下面哪一个语句可以使用子查询( ) A.SELECT 语句 B.UPDATE语句 C.DELETE语句 D.以上都是
试题答案:D
下列哪个是组合主键的特征( ) A.每列有唯一的值,但不是NULL值 B.组合有唯一的值,并且其中每列没有NULL值 C.组合的第一列和最后一列有唯一值 D.组合的第一列和最后一列有唯一值,但没有NULL值
试题答案:B
语句SELECT * FROM dept WHERE NOT EXISTS (SELECT * FROM emp WHERE deptno=dept.deptno)执行后的结果为( ) A.只显示存在于EMP表中的部门全部信息。 B.只显示不存在于EMP表中的部门全部信息 C.未返回任何数据 D.显示DEPT表中的全部信息
试题答案:B
要求查询物资表wz(wno,wname,wtype,wunit)物资单位wunit列为null的记录,取结果的前5条记录显示,以下正确的SQL语句是( ) A.select * from wz where wunit is null limit 0,5; B.select * from wz where wunit = null limit 0,5; C.select * from wz where wunit is null limit 1,5; D.select * form wz where wunit = null limit 1,5;
试题答案:A
使用以下哪个函数可返回当前日期? A. END_DAY B. FINAL_DAY C. HIGHEST_DAY D. NOW
试题答案:D
对于以下SQL语句说法正确的是 SELECT ename FROM emp WHERE sal IN (SELECT MAX(sal) FROM emp GROUP BY deptno);
A. 这个语句是符合语法的 B. 这个语句是不能执行的,因为缺少HAVING子句 C. 这个语句是不能执行的,因为分组的条件列不在SELECT列表中 D. 这个语句是不能执行的,因为GROUP BY子句应该在主查询中,而不是在子查询中
试题答案:A
以下哪项陈述最符合此 SQL 语句中“学生”表发生的变化? UPDATE 学生 SET 午餐编号 = (SELECT 午餐编号 FROM 学生 WHERE 学生标识 = 17 ) WHERE 学生标识 = 19; A. 此语句将更新“学生”表,具体操作为将标识号为 19 的学生的午餐编号替换为标识号为 17 的学生的午餐编号。 B. 将一个新行插入“学生”表中。 C. 不发生任何变化,因为不能在 UPDATE 语句中使用子查询。 D. 删除学生 17 的午餐编号,并根据学生 19 的午餐编号插入一个新值。
试题答案:A
若需要更新居住地为亚特兰大 (Atlanta) 的雇员的区域代码。考虑下面的部分 UPDATE 语句: UPDATE 雇员 SET 区域代码 = 770 应在 UPDATE 语句中包括以下哪个子句才能得到所需结果? A. UPDATE 城市 = Atlanta; B. SET 城市 = ‘Atlanta’; C. WHERE 城市 = ‘Atlanta’; D. LIKE ‘At%’;
试题答案:C
在WHILE循环语句中,如果循环体语句条数多于一条,必须使用。 A . GOTO B . CASE…END C . IF…THEN D . BEGIN…END
试题答案:D
应使用以下哪个组函数来显示“雇员”表中的最高薪金值? A. AVG B. COUNT C. MAX D. MIN
试题答案:C
以下 SQL 语句将返回什么结果? SELECT COUNT(DISTINCT 薪金) FROM 雇员; A. 雇员表中所有唯一薪金的列表 B. 雇员表中的薪金总额 C. 雇员表中的总行数 D. 雇员表中的唯一薪金的数量
试题答案:D
在MySQL中,有一个教师表teacher的结构如下: ID int(5) NAME VARCHAR(25) EMAIL VARCHAR(50) 下面哪个语句显示没有Email地址的教师姓名()。 A.SELECT name FROM teacher WHERE email = NULL; B.SELECT name FROM teacher WHERE email <> NULL; C.SELECT name FROM teacher WHERE email IS NULL; D.SELECT name FROM teacher WHERE email IS NOT NULL;
试题答案:C
哪个命令用来创建一个primary key constraint pk_books 在表 BOOKS, 列 ISBN上? 请选择一个。 A. create primary key on books(ISBN); B. create constraint pk_books primary key on books(ISBN); C. alter table books add constraint pk_books primary key (ISBN); D. alter table books add primary key (ISBN);
试题答案:C
在Mysql中,事务中使用下列SQL语句不会引起锁定( )。 A. SELECT B. INSERT C. UPDATE D. DELETE
试题答案:A
若MySql设置默认提交方式为手动提交,第一步执行了DELETE命令,删除了某表中的一条记录.第二步执行了COMMIT命令. 最后又执行了ROLLBACK命令.请问以下叙述正确的是( ) A. 被删除的记录又被恢复回来,仍然存放在数据库的表中 B. 被删除的记录彻底从数据库中被删除掉了 C. 被删除的记录只是当前用户看不到了,而其它用户还能看到 D. 被删除的记录当前用户可以看到,而其它用户却看不到了
试题答案:B
若MySql设置默认提交方式为手动提交,第一步用DELETE命令删除了表A中的数据(但并没有提交),第二步成功创建了一个表B, 第三步执行了一个ROLLBACK回滚操作.请问以下叙述正确的是( ) A. 表A中的数据被恢复回来,创建的表B被从数据库中被删除,恢复为未建表之前的状态 B. 表A中的数据被恢复回来,表B被创建在数据库中. C. 表A中的数据被彻底从数据库中删除,但表B被从数据库中被删除,恢复为未建表之前的状态 D. 表A中的数据被彻底从数据库中删除,表B被创建在数据库中.
试题答案:B
下列关于PL/SQL的说法正确的是( ) A. PL/SQL是应用于各种数据库上的通用语言 B. PL/SQL是过程化的SQL语言 C. PL/SQL是只能在SQLPLUS中运行 D. 在PL/SQL可以直接执行所有的SQL操作
试题答案:B
以下的PL/SQL声明哪个是正确的? A. v_id NUMBER(4); B. v_x, v_y, v_z VARCHAR2(10); C. v_birthdate DATE NOT NULL; D. v_in_stock BOOLEAN := 1;
试题答案:A
假定有一张表用户表users,其中一身份证字段ID_card.为了维护数据的完整性,在设计数据库时,最好对ID_card字段添加约束,请问应该添加什么约束(  ) A.primary key B.check C.default D.not null
试题答案:A
下面哪一个语句可以使用子查询( ) A.SELECT 语句 B.UPDATE语句 C.DELETE语句 D.以上都是
试题答案:D
语句SELECT * FROM dept WHERE NOT EXISTS (SELECT * FROM emp WHERE deptno=dept.deptno)执行后的结果为( ) A.只显示存在于EMP表中的部门全部信息。 B.只显示不存在于EMP表中的部门全部信息 C.未返回任何数据 D.显示DEPT表中的全部信息
试题答案:B
若用户要连接数据库,则该用户必须拥有的权限是( ) A.create table B.create index C.create session D.connect
试题答案:D
数据库信息系统的核心是________。 A.数据模型 B.数据库管理系统 C.数据库 D.数据库管理员
试题答案:C
MySQL是一种( )类型的数据库管理系统。 A.关系模型 B.网状模型 C.实体-关系模型 D.层次模型
试题答案:A
E-R图是数据库设计的工具之一,它一般适用于建立数据库的________。 A.概念模型 B.结构模型 C.物理模型 D.逻辑模型
试题答案:A
在SQL语句中,与表达式"仓库号 NOT IN(“wh1”,“wh2”)"功能相同的表达式是 A.仓库号=“wh1” AND 仓库号=“wh2” B.仓库号!=“wh1” OR 仓库号!= “wh2” C.仓库号=“wh1” OR 仓库号=“wh2” D.仓库号!=“wh1” AND 仓库号!=“wh2”
试题答案:D
若MySql默认设置为手动提交,DELETE FROM S WHERE 年龄>60语句的功能是______。 A.从S表中彻底删除年龄大于60岁的记录 B.S表中年龄大于60岁的记录被加上删除标记 C.删除S表 D.删除S表的年龄列
试题答案:B
用SQL 的ALTER TABLE 语句修改基本表时,删除其中某个列的约束条件应使用的子句是( ) A.ADD B. DELETE C. MODIFY D. DROP
试题答案:D
下列哪一种连接保证包含第一个表中的所有行和第二个表中的所有匹配行( )。 A. LEFT OUTER JOIN B. RIGHT OUTER JOIN C. INNER JOIN D. JOIN
试题答案:A
陈述A:查询的类型返回一个带有多值结果的单列用IN子句实现。 陈述B:对于是否存在数据的子查询用EXISTS实现。 关于对以上陈述的描述中,正确的是( )。 A.陈述A错误,陈述B正确 B.陈述A正确,陈述B错误 C.都是错误的 D.都正确
试题答案:D
要快速完全清空一个表,可以使用如下语句: A. TRUNCATE TABLE B. DELETE TABLE C. DROP TABLE D. CLEAR TABLE
试题答案:A
创建表时,不允许某列为空可以使用: A.NOT NULL B.NO NULL C.NOT BLANK D.NO BLANK
试题答案:A
( )函数通常用来计算累计排名、移动平均数和报表聚合等。 A.汇总 B.分析 C.分组 D.单行
试题答案:A
用于显示表结构的命令是什么? A. DESC B. HOST C. SELECT D. DIR
试题答案:A
评估SQL语句 SELECT ROUND(TRUNCATE(MOD(1600,10),-1),2) FROM dual;语句执行完成后的结果是? A. 0 B. 1 C. 0.00 D. 发生错误
试题答案:A
下列SELECT语句用于查询表中email列为空值的行,哪个是正确的? A. SELECT ename,sal,email from emp where email = 0; B. SELECT ename,sal,email from emp where email =’ ’; C. SELECT ename,sal,email from emp where email is null; D. SELECT ename,sal,email from emp where email is not null;
试题答案:C
下面的各个选项中,哪一个正确的描述了MySQL数据库的逻辑结构 A.表空间由段组成,段由区组成,区由数据块组成 B.段由表空间组成,表空间由盘区组成,盘区由表空间组成 C.盘区由数据块组成,数据块由段组成,段由表空间组成 D.数据块由段组成,段由区组成,盘区由表空间组成。
试题答案:A
在MySQL中,一个用户拥有的所有数据库对象统称为()。 A.数据库 B.模式 C.表空间 D.实例
试题答案:D
下面哪个用户不是MySQL缺省安装后就存在的用户( ) A . SYSDBA B. SYSTEM C. SCOTT D. SYS
试题答案:A
当用SQL
PLUS已经登录到某一数据库,此时想登录到另一数据库,应该用命令( ) A. CONN B. DISC C. GOTO D. LOGIN
试题答案:A
CREATE,DROP,ALTER等命令属于下列哪类命令( ) A. DCL B. DDL C. DML D. DQL
试题答案:B
下列哪类命令在未提交前可以通过ROLLBACK命令进行回退( ) A. DCL B. DDL C. DML D. DQL
试题答案:C
select * from student 该代码中的 * 号,表示的正确含义是:    A 普通的字符号   B 错误信息   C 所有的字段名   D 模糊查询
试题答案:C
图书与读者之间是( ) A.一对一关系 B.多对一关系 C.多对多关系 D.一对多关系
试题答案:B
出生时间字段不宜选择( )类型。 A.date B. char C.int D.datetime
试题答案:C
( )字段可以采用默认值。 A.姓名 B.专业 C.备注 D.出生时间
试题答案:B
插入记录时,( )不会出错。 A.非空字段为空 B.主键内容不唯一 C.字符内容超过长度 D.采用默认值的字段INSERT没有留位置
试题答案:C
视图不能实现( ) 的功能。 A.控制操作表的列和记录 B. 把常用多表查询变成对视图的简单操作 C.可以更新原表内容 D.可以修改原表结构
试题答案:D
关于索引的说法,错误的是( )。 A.一个表可以创建多个唯-索引 B.一个表可以创建多个不唯索引 C.创建索引并不改变表记录的排列顺序 D.可以按照表达式创建索引
试题答案:C
不能采用( )创建索引。 A. CREATE TABLE B. CREATE INDEX C. ALTER TABLE D. ALTER INDEX
试题答案:C
实现列值的唯一性不能通过( )。 A.主键 B. UNIQUE C. identity 属性 D. CHECK约束
试题答案:D
在成绩表、学生表、课程表和教师表之间,不正确的说法是( )。 A.成绩表与教师表之间具有参照完整性 B.课程表与教师表之间具有参照完整性 C.学生表和教师表之间具有参照完整性 D.成绩表与学生表和课程表之间具有参照完整性
试题答案:D
下列( )不是常量。 A. 'a student B.0xABC C. 1998-04-15 D.2.0
试题答案:C
下列说法错误的是( )。 A. SELECT可以运算字符表达式 B. SELECT中的输出列可以是由字段组成的表达式 C.游标只能顺序移动 D. SQL 程序用于触发器和存储过程中
试题答案:D
关于触发器的说法错误的是( )。 A. INSERT 触发器先插入记录后判断 B. DELETE触发器先删除记录后判断 C. UPDATE触发器先判断后修改记录 D.选项A和B
试题答案:D
关于触发器的说法错误的是( )。 A.游标一般用于存储过程 B.游标也可用于触发器 C.应用程序可以调用触发器 D.触发器般针对表
试题答案:C
下面语句中,哪种语句用来创建视图? A. CREATE TABLE B. ALTE VIEW C. DROP VIEW D. CREATE VIEW
试题答案:D
如果需要以全部大写的形式显示每个雇员的姓名,应使用以下哪个函数? A. CASE B. UCASE C. UPPER D. TOUPPER
试题答案:C
SQL语句中_______命令可以授予用户对象权限。 A. REVOKE B. GRANT C. DENY D. CREATE
试题答案:B
使用以下哪个函数可返回当前日期? A. END_DAY B. FINAL_DAY C. HIGHEST_DAY D. NOW
试题答案:D
以下哪些函数可用于处理字符、数字和日期列值? A. CONCAT、RPAD 和 TRIM B. UPPER、LOWER 和 INITCAP C. ROUND、TRUNC 和 MOD D. ROUND、TRUNC 和 ADD_MONTHS
试题答案:A
在MySQL中,下面用于限制分组函数的返回值的子句是()。 A.WHERE B.HAVING C.ORDER BY D.无法限定分组函数的返回值
试题答案:B
PL/SQL中,创建触发器的语句是()。 A. Create Package B. Create Trigger C. Create Procedure D. Create Function
试题答案:B
PL/SQL中,触发器触发的时机有哪两种()。 A. Trigger Before B. Before Before C. After Before D. New Before
试题答案:C
查询出当前的日期,可以用下面哪个选项( ) A. select curdate(); B. select to_char(sysdate,‘YYYY-MM-DD HH24:MI:SS’) from dual; C. select date(sysdate,‘YYYY-MM-DD HH24:MI:SS’) from dual; D. select chr(sysdate,‘YYYY-MM-DD HH24:MI:SS’) from dual;
试题答案:A
以下关于数据库过程和函数叙述正确的是( ) A. 过程和函数都是命名的PL/SQL块,但执行效率要比普通PL/SQL块高 B. 过程和函数都是命名的子程序,每次执行前由数据库进行编译 C. 过程是没有返回参数的,而函数是有返回参数的 D. 过程不带输入参数,而函数是要带输入参数的
试题答案:A
以下关于数据库包的叙述正确是的( ) A.包是由包头和包体组成的,在定义包头时,必须也要同时定义好包体 B. 包是由包头和包体组成的,包头和包体是可以分别创建的 C. 包是由包头和包体组成的,包头和包体可以写在一起,也可以分别定义 D. 包是由包头和包体组成的,包头是包体中所有变量的定义区,而包体则只是执行代码部分
试题答案:B
有如下2步操作,并且均成功执行,请选择结果( ) delete from emp; rollback; A. emp表中数据处于回滚段中 B. emp表中的数据被永久删除 C. emp表中的数据没有变化 D. 原来的emp表中的数据被添加到新emp表中
试题答案:C
对于以下SQL语句说法正确的是 SELECT ename FROM emp WHERE sal IN (SELECT MAX(sal) FROM emp GROUP BY deptno); A. 这个语句是符合语法的 B. 这个语句是不能执行的,因为缺少HAVING子句 C. 这个语句是不能执行的,因为分组的条件列不在SELECT列表中 D. 这个语句是不能执行的,因为GROUP BY子句应该在主查询中,而不是在子查询中
试题答案:A
以下对PL/SQL变量的定义,正确的是 A. v_hiredate DATE:=TO_DATE(SYSDATE); B. v_deptno NUMBER(2) NOT NULL:=10; C. v_location VARCHAR2(13) := “Attanta”; D. c_comm CONSTANT NUMBER;
试题答案:C
下列哪个命令是用于MySQL中数据导出的 ( ) A.exp B.imp C.input D.output
试题答案:A
下面四个语句中哪一个是正确的?( ) A.SELECT * , ENAME FROM EMP; B.DELETE * FROM EMP; C.SELECT DISTINCT EMPNO ,HIREDATE FROM EMP; D.SELECT ENAME|SAL AS “name” FROM EMP ;
试题答案:C
下列哪个是组合主键的特征( ) A.每列有唯一的值,但不是NULL值 B.组合有唯一的值,并且其中每列没有NULL值 C.组合的第一列和最后一列有唯一值 D.组合的第一列和最后一列有唯一值,但没有NULL值
试题答案:B
授予删除任何表的系统权限(DROP ANY TABLE)给user1,并使其能继续授该权限给其他用户,以下正确的SQL语句是( ) A.Grant drop any table to user1; B.Grant drop any table to user1 with admin option; C.Grant drop table to user1; D.Grant drop any table to user1 with check potion;
试题答案:B
下面哪个命令不属于数据操纵语言(DML)( ) A.ALTER… B.INSERT… C.UPDATE… D. Delete…
试题答案:A
下面关于删除视图的说法哪一个是正确的(  )。 A.删除视图后应立即用COMMIT语句使更改生效 B.删除视图后,和视图关联的表中的数据不再存在 C.视图被删除后视图中的数据也将被删除 D.用dorp VIEW删除视图
试题答案:D
SQL 查询中去除重复数据的是( ) A. ORDER BY B. GROUP BY C. DISTINCT D. DESC
试题答案:C
下列语言中属于结构化查询语言的是( )。 A.Java B.C C.SQL D.C++
试题答案:C
要想对表中记录分组查询,可以使用哪一子句? A.GROUP BY B.AS GROUP C.GROUP AS D.TO GROUP
试题答案:A
创建视图时: A. 可以引用其它的视图 B. 一个视图只能涉及一张表 C. 可以替代一个基表 D. 以上说法都不正确
试题答案:A
评估SQL语句: SELECT ROUND(45.953, -1) FROM dual; 该语句的显示结果? A. 46 B. 45.93 C. 50 D. 45.9
试题答案:C
关于约束,下列哪些描述是正确的?() A. UNIQUE约束不允许空值 B. 在创建PK或UNIQUE 约束时默认会同进创建唯一性索引 C. PK 约束允许列中有一个空值 D. NOT NULL约束是确保列中会出现空值
试题答案:B
在MySQL数据库的逻辑结构中有以下组件: A 表空间 B 数据块 C 区 D 段 这些组件从大到小依次是()。 A.A→B→C→D B.A→D→C→B C.A→C→B→D D.D→A→C→B
试题答案:B
INSERT,UPDATE,DELETE等命令属于下列哪类命令( ) A. DCL B. DDL C. DML D. DQL
试题答案:C
建表语句中的 not null,该代码表示的含义是:    A 允许空格 B 非空约束   C 不允许写入数据   D 不允许读取数据
试题答案:B
在语句 select * from student where s_name like ’%晓%’ where 关键字表示的含义是:    A 条件   B 在哪里   C 模糊查询   D 逻辑运算
试题答案:C
MySQL组织数据采用( ) A.层次模型 B.网状模型 C.关系模型 D.数据模型
试题答案:C
下列说法错误的是( ) A.数据库通过文件存放在计算机中 B.数据库中的数据具有一定的关系 C.浏览器中的脚本可操作数据库 D.浏览器中运行的文件存放在服务器中
试题答案:C
删除表的所有记录采用() A. DELETE B. DROP TABLE C. TRUNCATE TABLE.选项A和C
试题答案:D
删除列的内容不能采用( ) A.先删除列后添加该字段 B.UPDATE C. DELETE D.ALTER
试题答案:D
下列说法错误的是( )。 A.界面创建的视图不能通过命令修改 B.能够完全像操作表一样操作视图 C.视图中是定义而无数据 D.删除视图不会影响原表数据
试题答案:B
实现列值的非空不能通过( )。 A. NOTNULL B. DEFAULT C. CHECK 约束 D.数据类型
试题答案:D
以下关于列的叙述中,哪一项是不正确的? A. 可以增大 CHAR 列的宽度。 B. 如果列包含非空数据,则可以修改列的数据类型。 C. 可以将 CHAR 数据类型的列转换为 VARCHAR 数据类型。 D. 可以将 DATE 日期类型的列转换为 VARCHAR 列。
试题答案:B
使用哪个命令可以从表的行中删除所有数据而不删除表自身? A. ALTER TABLE B. DROP TABLE C. MODIFY D. DELETE FROM
试题答案:D
如果需要更新 6 月 30 日之前生产的产品的有效期。应在 UPDATE 语句的哪个子句中指定这一条件? A. ON 子句 B. WHERE 子句 C. SET 子句 D. USING 子句
试题答案:B
一个VIEW被以下语句创建,请问在该VIEW上可进行哪个操作? CREATE VIEW USA_STATES AS SELECT count(
) FROM STATE WHERE CNT_CODE =1 WITH check option; A. SELECT B. SELECT , UPDATE C. SELECT , DELETE D. SELECT , INSERT
试题答案:A
下面哪个操作会导致用户连接到MySQL数据库,但不能创建表( ) A.授予了CONNECT的角色,但没有授予RESOURCE的角色 B.没有授予用户系统管理员的角色 C.数据库实例没有启动 D.数据库监听没有启动
试题答案:A
MySql数据库中,下面( )可以作为有效的列名。 A. Column B. 123_NUM C. NUM_#123 D. #NUM123
试题答案:C
若MySql设置默认提交方式为手动提交,第一步用DELETE命令删除了表A中的数据(但并没有提交), 第二步试图创建了一个表B,但由于权限不足,表B并没有创建成功. 第三步执行了一个ROLLBACK回滚操作.请问以下叙述正确的是( ) A. 表A中的数据被恢复回来 B. 表A中的数据被彻底从数据库中删除 C. 表A中的数据被移至一个临时的表中 D. 表A中的数据将处于一个不确定的状态
试题答案:A
查询出EMP表中COMM字段为空的记录( ) A. select * from emp where comm=‘’; B. select * from emp where comm=null; C. select * from emp where nvl(comm)=0; D. select * from emp where comm is null;
试题答案:D
如何将变量v_row定义为emp表的记录类型( ) A. v_row emp%type; B. v_row emp%record; C. v_row emp%tabletype; D. v_row emp%rowtype;
试题答案:D
要求查询物资表wz(wno,wname,wtype,wunit)物资单位wunit列为null的记录,取结果的前5条记录显示,以下正确的SQL语句是( ) A.select * from wz where wunit is null limit 0,5; B.select * from wz where wunit = null limit 0,5; C.select * from wz where wunit is null limit 1,5; D.select * form wz where wunit = null limit 1,5;
试题答案:A
以下哪个选项不是有效的MySql约束类型?( ) A. UNIQUE B.NONUNIQUE C. CHECK D.PRIMARY KEY
试题答案:B
PL/SQL块中不能直接使用的SQL命令是( ) A.SELECT B.INSERT C.UPDATE D.DROP
试题答案:D
以下哪个命令是DCL命令( ) A. CREATE B. INSERT C. COMMIT D. GRANT
试题答案:D
下列四项中,不属于数据库特点的是( )。 A.数据共享 B.数据完整性 C.数据冗余很高 D.数据独立性高
试题答案:C
设有部门和职员两个实体,每个职员只能属于一个部门,一个部门可以有多名职员。则部门与职员实体之间的联系类型是 A.m:n B.1:m C.m:1 D.1:1
试题答案:B
在SELECT语句中用于实现条件选择运算的关键字是 A.FOR B.WHILE C.WHERE D.CONDITION
试题答案:C
根据关系模式的完整性规则,一个关系中的主键(  )。 A.不能由两个字段组成 B.不能成为另一个关系的外部键 C.不允许空值 D.可以取空值
试题答案:C
以下哪些命令是DDL语句() A.CREATE DATABASE命令 B. Update命令 C.SELECT 命令 D. INSERT命令
试题答案:A
查询结果集中将name字段显示为“姓名”,应该使用下面哪个语句?( ) A. select name from authors as 姓名 B. select au_fname=姓名 from authors C. select * from authors where name=姓名 D. select name 姓名 from authors
试题答案:D
视图是一个“虚表”,视图的构造基于( ) A.基本表 B.视图 C.基本表或视图 D.数据字典
试题答案:C
在SQL中,建立视图用(  )。 A. Create table 命令 B. Create view 命令 C. Create index 命令 D. Create proc 命令
试题答案:B
( )SQL语句将为计算列SAL12生成别名Annual Salary A.SELECT ename,sal12 ‘Annual Salary’ FROM emp; B.SELECT ename,sal12 “Annual Salary” FROM emp; C.SELECT ename,sal12 AS Annual Salary FROM emp; D.SELECT ename,sal12 AS INITCAP(“Annual Salary”) FROM emp;
试题答案:A
评估SQL语句:SELECT ename, sal, 12
sal+100 FROM emp; Sal 列存储的是月薪,现在要求查询语句能够显示 每月增加100元补贴后的年薪,上面的语句如何更改? A. 不需要做任何修改 B. SELECT ename, sal, 12*(sal+100) FROM emp; C. SELECT ename, sal, (12sal)+100 FROM emp; D. SELECT ename, sal+100,12 FROM emp;
试题答案:B
( )是实体属性。 A.形状 B.汽车 C.盘子 D.高铁
试题答案:A
MySQL普通用户通过( )操作数据库对象。 A.DBMS B. SQL C. MySQL的SQL D.应用程序
试题答案:D
性别字段最适合选择( ) A.字符串类型 B.整型 C.枚举类型 D.浮点型
试题答案:B
关于变量的说法错误的是( )。 A.用户变量用于临时存放数据 B.用户变量是本地的 C.用户变量可用于操作数据库命令 D.系统变量可以读写
试题答案:D
有数据”test”分别存放到char(10)和varchar(10)类型的字段中,其实际存储长度为 A. 10 10 B. 4 4 C. 10 4 D. 4 10
试题答案:C
关于通配符中的“%”,以下说法正确的两项是( )。 A. 代表任意一个字符,与Like结合使用 B. 代表任意多个字符,与Like结合使用 C. 代表任意一个字符,在Like后的表达式中只能使用一次“%” D. 代表任意多个字符,在Like后的表达式中不可以使用多次“%”
试题答案:B
下列正确查询姓张的学生的语句是( )。 A. select * from 表名 where 姓名 = ‘张’ B. select * from 表名 where 姓名 like ‘张%’ C. select * from 表名 where 姓名 = ‘%张%’ D. select * from 表名 where 姓名 like ‘张’
试题答案:B
PL/SQL中,关于Instead Of触发器,说法错误的是()。 A. 是定义在视图上的触发器 B. 是定义在表上的触发器 C. 可以针对相关的表编写 INSERT、UPDATE 及 DELETE 语句 D. 执行在触发器主体中编写的操作
试题答案:B
以下对于事务的叙述,比较全面的是( ) A. 事务中的操作是一个整体,要成功都成功,要失败都失败 B. 事务可以把所操作的数据库由一个状态转变到另一个状态 C. 事务在提交之前,其它事务看不到它对数据库的影响 D. 以上所述都是正确的
试题答案:D
列出EMP表中,从事每个工种(JOB)的员工人数( ) A. select job from emp; B. select job,count() from emp; C. select distinct job,count(
) from emp; D. select job,count() from emp group by job;
试题答案:D
查询出所有名字以’S’开始的员工( ) A. select * from emp where ename in ‘S%’; B. select * from emp where ename=‘S%’; C. select * from emp where ename like ‘S%’; D. select * from emp where ename like ‘S_’;
试题答案:C
查询出EMP表中1982年及以后入职的员工信息(注:字段hiredate为入职日期,数据类型为DATE型) A. select * from emp where hiredate>=‘19820101’; B. select * from emp where hiredate>=to_char(‘19820101’,‘YYYYMMDD’); C. select * from emp where to_date(hiredate,‘YYYYMMDD’)>=‘19820101’; D. select * from emp where to_char(hiredate,‘YYYYMMDD’)>=‘19820101’;
试题答案:A
关于PL/SQL块的说法正确的是( ) A. 执行部分是必须的,因此声明部分也可以放到执行部分中来 B. PL/SQL块在执行时,是统一传输给数据库服务器进行执行的 C. 在PL/SQL中SELECT的语句的用法与在SQL
PLUS中完全一致 D. 匿名PL/SQL块的执行效率要高于命名PL/SQL块
试题答案:B
对于MySql数据库,设计用户表时,家庭住址字段最好采用下面的哪个数据类型进行存储 A. CHAR B. CHAR2 C. VARCHAR D. VARCHAR2
试题答案:C
一般在( )中有机会使用:NEW和:OLD A.游标 B.存储过程 C.函数 D.触发器
试题答案:D
( )是一个单一的逻辑工作单元。 A.记录 B.数据库 C.事务 D.字段
试题答案:C
删除emp表中所有数据,且可以rollback,以下语句哪个命令可以实现( ) A. truncate table emp B. drop table emp C. delete * from emp D. delete from emp
试题答案:D
在SQL中,删除视图用______。 A.DROP SCHEMA命令 B.CREATE TABLE命令 C.DROP VIEW命令 D.DROP INDEX命令
试题答案:C
使用SELECT语句显示表的所有的列时,选用的符号是( )。 A.* B.[] C._ D.[^]
试题答案:A
分析以下的SQL命令: SELECT 图书.书号,图书.书名,借阅.读者号 FROM 借阅 RIGHT JOIN 图书 ON 图书.书号=借阅.书号 如下描述正确的是(  )。 A 将没借书的读者信息也查出来 B 只查出被借走的图书信息 C 将没被借走的图书信息也查出来 D 只查出被借走图书的书号和书名
试题答案:C
MySQL逻辑结构中的段可以分为4种类型,以下选项不在其列的是 A.数据段 B.索引段 C.分区段 D.临时段.
试题答案:C
MySQL是( ) A.数据库 B.DBA C. DBMS D.数据库系统
试题答案:C
SELECT 查询结果顺序不可以是( )。 A.主键值顺序 B. ORDER控制 C.物理记录顺序 D.随机顺序
试题答案:D
多表查询可通过( )实现。 A. FROM包含多表 B.子查询 C. UNION D.选项A、B和C
试题答案:D
关于完整性与索引的关系,下列说法错误的是( )。 A.没有索引不能实现完整性 B.没有实现完整性的表必须人为来达到完整性 C.已经实现完整性可以解除完整性 D.索引就是为了实现完整性
试题答案:D
下列说法错误的是( )。 A.语句体包含一个以上语句时需要采用BEGIN.END B.多重分支只能用CASE语句 C. WHILE中循环体可以一-次不执行 D.注释内容不会产生任何动作
试题答案:B
PL/SQL中,创建过程的语句是()。 A. Create Package B. Create Function C. Create Procedure D. Create Package Body
试题答案:C
以下哪个命令是DDL命令( ) A. CREATE B. INSERT C. COMMIT D. SELECT
试题答案:A
取出工资在2000到3000元(包括上下限)之间的员工( ) A. select * from emp wher sal in (2000,3000); B. select * from emp wher sal like (2000,3000); C. select * from emp wher sal = (2000,3000); D. select * from emp wher sal between 2000 and 3000;
试题答案:D
( )是用于控制数据访问的语言。 A.DML B.DDL C.DCL D.DLL
试题答案:C
( )子句用于查询列的唯一值。 A.unique B.distinct C.order by D.group by
试题答案:B
使用ALTER TABLE修改表时,如果要修改表的名称,可以使用哪一子句? A.CHANGE NAME B.SET NAME C.RENAME D.NEW NAME
试题答案:C
你需要修改 STUDENTS 表在STUDENT_ID列上增加一个PK约束,当前此表为空表,下面语句正确的是? A. ALTER TABLE students ADD PRIMARY KEY student_id; B. ALTER TABLE students ADD CONSTRAINT PRIMARY KEY (student_id); C. ALTER TABLE students ADD CONSTRAINT stud_id_pk PRIMARY KEY student_id; D. ALTER TABLE students ADD CONSTRAINT stud_id_pk PRIMARY KEY (student_id);
试题答案:D
修改记录内容不能采用( ) A. UPDATE B. DELETE和 INSERT C.界面方式 D.ALTER
试题答案:D
存储过程与外界的交互不能通过( )。 A.表 B.输入参数 C.输出参数 D.游标
试题答案:D
关于数据控制语言中,收回所授予的权限的语句是()。 A. Create B. Revoke C. Grant D. Update
试题答案:B
MySql数据库中,取余数的运算符是()。 A. % B. mod C. / D.*
试题答案:A
要统计某表中记录的总个数,以下哪项是正确的SQL语句( )。 A. select Max() from 表名 B. select Sum() from 表名 C. select Count() from 表名 D. select Min() from 表名
试题答案:C
关于表的主键,说法正确的是( )。 A. 主键字段最多只能建立在一个字段上 B. 主键字段的值可以重复 C. 主键字段的值能为Null D. 主键字段的值不能重复
试题答案:D
MySql数据库中,以下( )命令可以删除整个表中的数据,并且无法回滚。 A. drop B. delete C. truncate D. cascade
试题答案:C
下列关于表和视图的说法正确的是( ) A. 每个视图对应一个表 B. 视图是表的一个镜像备份 C. 对所有视图也可象表一样执行UPDATE操作 D. 视图的数据全部在表中
试题答案:D
哪一个是子查询执行的顺序( ) A.从最里面的查询到最外面的查询 B.从最外面的查询到最里面的查询 C.从简单查询到复杂查询 D.从复杂查询到简单查询
试题答案:A
有一表:DEPT (dno, dname) ,如果要找出倒数第三个字母为W,并且至少包含4个字母的dname,则查询条件子句应写成 where dname like ( )。 A.’_ W% ’ B.’%W ’ C.’W ’ D.’W%’
试题答案:B
在数据库管理系统中,设计表属于( ) A.概念结构设计 B.逻辑结构设计 C.物理结构设计 D.数据库设计
试题答案:B
SELECT 不能实现( )。 A.排除部分列 B.输出符合条件的部分行 C.对查询结果进行分类 D.不出现重复行
试题答案:A
若想要修改一个表的结构,应该用以下哪个命令( ) A. ALTER TABLE B. DEFINE TABLE C. MODIFY TABLE D. REBUILD TABLE
试题答案:A
视图可以用于( ) A.限制对表中指定列的访问 B.限制对表中行的子集的访问 C.A和B都是 D.A和B都不是
试题答案:C
储蓄所有多个储户,储户在多个储蓄所存取款,储蓄所与储户之间是( )。 A.一对一的联系 B.一对多的联系 C.多对一的联系 D.多对多的联系
试题答案:D
SELECT 查询条件可以通过( )控制。 A. WHERE B. HAVING C.无条件 D.选项A、B和C
试题答案:A
关于用户自定义数据类型的说法,错误的是( )。 A.只能是系统提供的数据类型 B.可以是系统数据类型的表达式 C.是具体化系统数据类型 D.是为了用户规范和方便阅读
试题答案:B
关于触发器的正确说法是( )。 A. DML触发器控制表记录 C. DML触发器不能控制所有数据完整性 B. DDL触发器实现数据库管理 D.触发器中的SQL代码在事件产生时执行
试题答案:D
两表没有创建任何索引,不能创建( )。 A.实体完整性 B.域完整性 C.参照完整性 D.选项A和C
试题答案:C
SELECT不能实现( )。 A.获得多个关联表中符合条件的记录 B.统计汇总表中符合条件的记录 C.输出列包含表达式 D.将符合条件的记录构建成新表
试题答案:B
在SQL中,DROP INDEX 语句的作用是() A.建立索引 B. 删除索引 C.修改索引 D. 更新索引
试题答案:B
关于存储过程的说法,错误的是( )。 A.方便用户完成某些功能 B. 存储过程方便用户批量执行SQL命令 C.存储过程不能调用存储过程 D.应用程序可以调用存储过程
试题答案:C
下列描述正确的是( )。 A.一个数据库只能包含一个数据表 B.一个数据库可以包含多个数据表 C.一个数据库只能包含两个数据表 D.一个数据表可以包含多个数据库
试题答案:B
填空题
oracle数据库系统的物理存储结构主要由三类文件组成,分别为
________,重做日志文件,控制文件。
试题答案:数据文件
一个表在物理空间上对应一个或多个_________文件。
试题答案:数据
创建表空间的语法格式是create_________表空间名 datafile 路径 size 20m
试题答案:tablespace
删除表空间的命令是:_______ tablespace 表空间名
试题答案:drop
oracle数据库中最小的存储分配单元是________
试题答案:块【或】数据块
修改表空间的命令为________ tablespace 表空间名 add datafile 路径 size 20m;
试题答案:alter
事务处理控制语言中的Commit命令表示提交事务,而回退事务则用_________命令表示。
试题答案:ROLLBACK【或】rollback
存储过程的参数模式除了具有In和Out外,还有___________模式。
试题答案:IN OUT【或】in out
数据操纵语言中典型的四种语句是Insert、select 、update和___________。
试题答案:delete【或】delete
PL/SQL基本语句块中的声明部分使用___________关键词。
试题答案:DECLARE【或】declare
查询数据表的表结构要用到的关键字为_______.(字母小写)
试题答案:desc【或】DESC
查询数据表的内容,需要用到的sql命令为:.(字母小写)
试题答案:select【或】SELECT
在MySQL中,可以使用
(要求小写)语句来修改、更新一个表或多个表中的数据。
试题答案:update
事务具有
______,隔离性和可靠性。
试题答案:原子性

简答题
试说明select语句的where,group 和order by子句的作用
学生答案: where:指出查询的条件group:对查询结果进行分组orderby:对查询结果排序
5
java操作Mysql数据库,分为哪些步骤,请简单描述。
学生答案: 1、加载驱动2、建立连接3、创建一个Statement对象4、执行SQL语句,获取结果集5、关闭JDBC对象,关闭连接
5
目前的主流关系型数据库有哪些,请列出3到5个,并对这些数据库管理系统进行简单比较。
学生答案: SQLServer:微软的产品,简单易用,产品只应用于Windows平台。Sybase:微软曾经的合作伙伴,现在是独立的数据库提供商,它的产品是跨平台的。Oracle:全球市场占有率最高的数据库产品,主要应用于大型和企业级的环境。Mysql:开源的数据库产品,原来是sun公司的,现在随同sun都被Oracle收购了。
5
在表CUSTOMER中,增加一列:Telephone,用来记录客户的电话信息。 写出相应的SQL语句。
学生答案: altertablecustomeraddtelephonevarchar(11);
5
在MySql中实现数据完整性的约束种类有哪些,并描述各种约束的特点
学生答案: 五种:#NOTNULL:非空约束,指定某列不能为空;#UNIQUE:唯一约束,指定某列或某几列组合不能重复;#PRIMARYKEY:主键,指定该列的值可以唯一地标识该列记录;#FOREIGNKEY:外键,指定该行记录从属于主表中的一条记录,主要用于参照完整性;#CHECK:检查,制定一个布尔表达式,用于指定对应的值必须满足该表达式。(mysql不支持check约束)
5
-----问答题-----
定义并解释概念模型中的以下术语:实体、属性、E-R图
学生答案: 每一类数据对象的个体称为“实体”每个实体集涉及的信息项称为属性;如果实体集中的属性或最小属性组合的值能唯一标识其对应实体,则将该属性或属性组合称为码。码可能有多个,对于每一一个实体集,可指定-一个码为主码。E-R图就是E-R模型的描述方法,即实体-联系图。
30
分别写出启动、连接、停止和卸载MySql服务(服务名为MySql)的语句?
学生答案: 启动:netstartmysql或者控制面板启动服务链接:mysql-uroot-h127.0.0.1-pll停止:netstopmysql或者控制面板停止服务卸载:假设已装了MySQL在f:/,在命令提示符f:\mysql\bin下运行mysql-nt-remove,会提示卸载成功,然后在控制面板删除程序中卸载MySQL

谈谈你对索引的理解,索引越多越好吗?
学生答案: 索引是帮助MySQL高效获取数据的数据结构,可以明显的提高查询效率,分为普通索引,唯一索引,复合索引,聚簇索引。索引不是越多越好。
10
MySQL如何使用like关键字实现模糊查询,有什么注意事项?
学生答案: SQL的模式匹配允许你使用“匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在MySQL中,SQL的模式缺省是忽略大小写的。下面显示一些例子。注意在你使用SQL模式时,你不能使用=或!=;而使用LIKE或NOTLIKE比较操作符。%:表示任意个或多个字符。可匹配任意类型和长度的字符。:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:(可以代表一个中文字符)
10
简述limit以及distinct的用法?
学生答案: limit用于限制查询的数量,常用于分页语句。limit子句可以被用于强制select语句返回指定的记录数。limit接受一个或两个数字参数,参数必须是一个整数常量。distinct一般是用来去除查询结果中的重复记录的,而且这个语句在select、insert、delete和update中只可以在select中使用。
10
MySQL支持哪些外连接,各有什么特点?
学生答案: 外连接有左外连接与右外连接、全连接。左连接的结果集包括指定的左表全部数据与匹配的右表数据,右表中没匹配的全为空值.关键字 leftjoin右连接的结果集包含指定的右表全部数据与匹配的左边数据,左边中没匹配的全为空值.关键字rightjoin全连接返回左右数据表的所有行.关键字fulljoin
10
datetime与timestamp数据类型有什么区别?
学生答案: timestamp和datetime的相同点:(1)两者都可用来表示YYYY-MM-DDHH:MM:SS[.fraction]类型的日期。timestamp和datetime的不同点:(1)两者的存储方式不一样对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。(2)两者所能存储的时间范围不一样
10
你怎样理解having子句与where子句之间的区别?
学生答案: 1.where不能放在GROUPBY后面2.HAVING是跟GROUPBY连在一起用的,放在GROUPBY后面,此时的作用相当于WHERE3.WHERE后面的条件中不能有聚集函数,比如SUM(),AVG()等,而HAVING可以
8
-----问答题-----
忘记MySQL管理员root的密码如何解决?写出步骤和指令
学生答案: 1、停止mysql服务开始&→运行&→输入cmd,打开命令提示符窗口,然后输入netstopmysql2、在命令提示符窗口中进入mysql安装目录中的bin目录在命令提示符窗口中分别输入以下两条命令,每输入一条命令按回车键:d:cdwww\mysql\bin3、进入mysql安全模式(这样不用输入密码就能进入mysql数据库)输入mysqld-nt–skip-grant-tables,此时屏幕上可能没啥反应,不用管它,放在一边接着往下做4、重新打开一个cmd命令提示符窗口,开始&→运行&→输入cmd,在新打开命令提示符窗口中输入mysql-uroot-p,然后提示输入密码,不用输入密码,直接按回车键5、输入以下命令开始修改超级管理员root密码(注意:命令中mysql.user中间有个【点】;命令中的htmer.com即为新密码,根据你的实际情况,换成你的新密码即可)6、刷新权限表,输入如下命令flushprivileges;7、退出,输入如下命令quit重新启动mysql服务(也可以直接重启服务器)8、重新启动mysql服务(也可以直接重启服务器)①打开任务管理器,将mysql-nt.exe这个进程结束②在命令提示符中输入netstartmysql即可重新启动mysql服务了
40
请说明mysql数据库中标识符大小写敏感规则?
学生答案: 1、数据库名与表名是严格区分大小写的;2、表的别名是严格区分大小写的;3、列名与列的别名在所有的情况下均是忽略大小写的;4、字段内容默认情况下是大小写不敏感的。

举例说明什么是一对多、多对多关系
学生答案: 一对多:一张表中有一条记录可以对应另外一张表中的多条记录;但是反过来,另外一张表的一条记录只能对应第一张表的一条记录,这种关系就是一对多或多对一。多对多:一对表中(A)的一条记录能够对应另外一张表(B)中的多条记录;同时B表中的一条记录也能对应A表中的多条记录
5
常见的数据模型有哪些,各有哪些优缺点?
学生答案: 1、层次模型特点(1)有且只有一个结点没有双亲结点(这个结点叫根结点);(2)除根结点外的其他结点有且只有一个双亲结点.优点:1)层次模型的数据结构比较简单清晰;2)层次数据库的查询效率高;3)层次数据库模型提供了良好的完整性支持。缺点:1)现实世界中很多联系是非层次性的,如结点之间具有多对多联系。2)一个结点具有多个双亲等,层次模型表示这联系的方法很笨拙,对插入和删除操作的限制比较多。3)查询子女结点必须通过双亲结点。4)由于结构严密,层次命令趋于程序化.2、网状模型特点(1)允许一个以上的结点没有双亲结点;(2)一个结点可以有多个双亲结点.优点:(1)能够更为直接地描述现实世界。如一个结点可以有多个双亲,结点之间可以有多种联系。(2)具有良好的性能,存取效率较高。缺点:(1)结构负责,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。(2)其数据定义语言(DDL)、数据操作语言(DML)复杂,用户不容易使用。3、关系模型优点:(1)关系模型和格式化模型不同,它是简历在严格的数学概念的基础上的。(@)关系模型的概念单一。无论实体还是实体之间的联系都用关系来表示。对数据库的检索和更新结果也是关系(即表)。所以其数据结构简单、清晰,用户易懂易用。(3)关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。缺点:(1)由于存取路径岛屿用户是隐蔽的,查询效率往往不如格式化数据模型。(2)为了提高性能,数据库管理系统必须到用户的查询请求进行优化,因此增加了开发数据库管理系统的难度。
5
简述主键的作用及特征
学生答案: 主键的作用:1)保证实体的完整性;2)加快数据库的操作速度;3)强化每行的唯一标识;4)降低磁盘占用空间主键的特征:1)唯一性:不能有重复值;2)非空性:不能为空值。
3
什么是数据库管理系统?
学生答案: 数据库管理系统(DatabaseManagementSystem)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它可以支持多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。大部分DBMS提供数据定义语言DDL(DataDefinitionLanguage)和数据操作语言DML(DataManipulationLanguage),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。
5
什么是数据库,它的用途是什么?
学生答案: 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满着数据的互联网世界,充斥着大量的数据。即这个互联网世界就是数据世界。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。数据库是一个按数据结构来存储和管理数据的计算机软件系统。数据库的概念实际包括两层意思:(1)数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。(2)数据库是数据管理的新方法和技术,它能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。利用数据库可以高效、有组织地存储数据,使人们能够更快、更方便地管理数据,主要表现在以下几个方面:1.从结构上存储大量的数据信息,方便用户对数据进行有效的检索和访问。数据库可以对数据进行排序和保存,并提供快速查询在去百度搜索所需要的数据时,实际上,百度也基于数据库和数据分类技术来达到快速搜索的目的。数据库中存储的数据能够保证数据有效,无损.3.可满足应用程序共享和安全的要求。在许多情况下,将数据放入数据库也是出于安全原因。例如,如果所有员工信息和薪资数据都放在磁盘文件中,那么就不可能谈论工资的机密性:如果将员工信息和薪资信息放在数据库中,则只能查询和修改员工信息,而薪资信息只能由财务人员查看,从而确保数据的安全性。4数据库技术可以很容易和智能地分析和产生新的有用信息。例如,超市将销售信息保存在数据库中,月销售额排名实际确定下月的采购数量,数据库查询的信息实际生成新信息。数据挖掘、在线分析技术最近已经发展起来,其核心意义在于从一堆数据中分析有用的新信息。
5
请论述数据类型char和varchar的区别和各自的优点。
学生答案: char是固定长度的,varchar是可变长度的;char的索引效率高,varchar的索引效率稍弱
5
-----问答题-----
什么是sql注入式攻击,如何防范sql注入式攻击?
学生答案: SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQLInjection如何防范1)在构造动态SQL语句时,一定要使用类安全(type-safe)的参数加码机制。大多数的数据API,包括ADO和ADO.NET,有这样的支持,允许你指定所提供的参数的确切类型(譬如,字符串,整数,日期等),可以保证这些参数被恰当地escaped/encoded了,来避免黑客利用它们。一定要从始到终地使用这些特性。2)在部署你的应用前,始终要做安全审评(securityreview)。建立一个正式的安全过程(formalsecurityprocess),在每次你做更新时,对所有的编码做审评。后面一点特别重要。很多次我听说开发队伍在正式上线(goinglive)前会做很详细的安全审评,然后在几周或几个月之后他们做一些很小的更新时,他们会跳过安全审评这关,推说,“就是一个小小的更新,我们以后再做编码审评好了”。请始终坚持做安全审评。3)千万别把敏感性数据在数据库里以明文存放。我个人的意见是,密码应该总是在单向(one-way)hashed过后再存放,我甚至不喜欢将它们在加密后存放。在默认设置下,ASP.NET2.0MembershipAPI自动为你这么做,还同时实现了安全的SALT随机化行为(SALTrandomizationbehavior)。如果你决定建立自己的成员数据库,我建议你查看一下我们在这里发表的我们自己的Membershipprovider的源码。同时也确定对你的数据库里的信用卡和其他的私有数据进行了加密。这样即使你的数据库被人入侵(compromised)了的话,起码你的客户的私有数据不会被人利用。4)确认你编写了自动化的单元测试,来特别校验你的数据访问层和应用程序不受SQL注入攻击。这么做是非常重要的,有助于捕捉住(catch)“就是一个小小的更新,所有不会有安全问题”的情形带来的疏忽,来提供额外的安全层以避免偶然地引进坏的安全缺陷到你的应用里去。5)锁定你的数据库的安全,只给访问数据库的web应用功能所需的最低的权限。如果web应用不需要访问某些表,那么确认它没有访问这些表的权限。如果web应用只需要只读的权限从你的accountpayables表来生成报表,那么确认你禁止它对此表的insert/update/delete的权限。6)很多新手从网上下载SQL通用防注入系统的程序,在需要防范注入的页面头部用来防止别人进行手动注入测试(。可是如果通过SQL注入分析器就可轻松跳过防注入系统并自动分析其注入点。然后只需要几分钟,你的管理员账号及密码就会被分析出来。7)对于注入分析器的防范,笔者通过实验,发现了一种简单有效的防范方法。首先我们要知道SQL注入分析器是如何工作的。在操作过程中,发现软件并不是冲着“admin”管理员账号去的,而是冲着权限(如flag=1)去的。这样一来,无论你的管理员账号怎么变都无法逃过检测。
20
请描述MySql事务的特点及事务机制的实现方法?
学生答案: 1、原子性(atomicity):一个事务必须被作为一个不可分割的最小工作单元,每个事务中的所有操作必须要么成功,或者要么失败,永远不可能一些操作失败,一些操作成功,这就是所谓的原子性的概念.2、一致性(consistency):一致性就像上面举的一个例子一样,当发生异常情况下,数据仍然是正确的。就是说当一个事务执行失败了,数据之间是不会受异常的情况而影响,永远保持着他的正确性.3、隔离性(isolation):当一个事务还未提交,每个事务之间是相互隔离的,互补受到影响.4、持久性(durability):当一个事务进行提交之后,发生的变化就会永远保存在数据库中.
20
实现数据完整性通常有几种方式?请分别阐述每种方式的特点
学生答案: 数据完整性(DataIntegrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。数据完整性分为四类:实体完整性(EntityIntegrity)、域完整性(DomainIntegrity)、参照完整性(ReferentialIntegrity)、用户定义的完整性(User-definedIntegrity)。保证数据的完整性:1.用约束而非商务规则强制数据完整性如果你按照商务规则来处理需求,那么你应当检查商务层次/用户界面:如果商务规则以后发生变化,那么只需要进行更新即可。假如需求源于维护数据完整性的需要,那么在数据库层面上需要施加限制条件。如果你在数据层确实采用了约束,你要保证有办法把更新不能通过约束检查的原因采用用户理解的语言通知用户界面。除非你的字段命名很冗长,否则字段名本身还不够。只要有可能,请采用数据库系统实现数据的完整性。这不但包括通过标准化实现的完整性而且还包括数据的功能性。在写数据的时候还可以增加触发器来保证数据的正确性。不要依赖于商务层保证数据完整性;它不能保证表之间(外键)的完整性所以不能强加于其他完整性规则之上。2.分布式数据系统对分布式系统而言,在你决定是否在各个站点复制所有数据还是把数据保存在一个地方之前应该估计一下未来5年或者10年的数据量。当你把数据传送到其他站点的时候,最好在数据库字段中设置一些标记。在目的站点收到你的数据之后更新你的标记。为了进行这种数据传输,请写下你自己的批处理或者调度程序以特定时间间隔运行而不要让用户在每天的工作后传输数据。本地拷贝你的维护数据,比如计算常数和利息率等,设置版本号保证数据在每个站点都完全一致。3.强制指示完整性没有好办法能在有害数据进入数据库之后消除它,所以你应该在它进入数据库之前将其剔除。激活数据库系统的指示完整性特性。这样可以保持数据的清洁而能迫使开发人员投入更多的时间处理错误条件。4.关系如果两个实体之间存在多对一关系,而且还有可能转化为多对多关系,那么你最好一开始就设置成多对多关系。从现有的多对一关系转变为多对多关系比一开始就是多对多关系要难得多。5.采用视图为了在你的数据库和你的应用程序代码之间提供另一层抽象,你可以为你的应用程序建立专门的视图而不必非要应用程序直接访问数据表。这样做还等于在处理数据库变更时给你提供了更多的自由。6.给数据保有和恢复制定计划考虑数据保有策略并包含在设计过程中,预先设计你的数据恢复过程。采用可以发布给用户/开发人员的数据字典实现方便的数据识别同时保证对数据源文档化。编写在线更新来“更新查询”供以后万一数据丢失可以重新处理更新。7.用存储过程让系统做重活解决了许多麻烦来产生一个具有高度完整性的数据库解决方案之后,我所在的团队决定封装一些关联表的功能组,提供一整套常规的存储过程来访问各组以便加快速度和简化客户程序代码的开发。在此期间,我们发现3GL编码器设置了所有可能的错误条件,比如以下所示:SELECTCnt=COUNT(*)FROM[

]WHERE[]=IFCnt=0BEGININSERTINTO

VALUES()ENDELSEBEGINEND而一个非3GL编码器是这样做的:INSERTINTO

VALUES()IF@@ERROR=2627–LiteralerrorcodeforPrimaryKeyConstraintBEGINEND第2个程序简单多了,而且事实上,利用了我们给数据库的功能。虽然我个人不喜欢使用嵌入文字(2627)。但是那样可以很方便地用一点预先处理来代替。数据库不只是一个存放数据的地方,它也是简化编码之地。8.使用查找控制数据完整性的最佳方式就是限制用户的选择。只要有可能都应该提供给用户一个清晰的价值列表供其选择。这样将减少键入代码的错误和误解同时提供数据的一致性。某些公共数据特别适合查找:国家代码、状态代码等
20
请举例说明使用视图的优点?
学生答案: 优点:1、视图能够简化用户的操作2、视图使用户能以多钟角度看待同一数据3、视图对重构数据库提供了一定程度的逻辑独立性4、视图能够对机密数据提供安全保护5、适当的利用视图可以更清晰的表达查询,
15
请简单描述delete语句和drop语句的差异?
学生答案: 1、执行速度不同drop语句的速度要大于delete语句。2、语言种类不同delete语句是DML语言,不会自动提交。drop语句是DDL语言,执行后会自动提交。3、功能不同delete语句用于删除局部性数据如表中的某一元组。drop语句一般用于删除整体性数据如表,模式,索引,视图,完整性限制等。4、删除形式不同delete语句删除内容、释放空间但不删除定义,但是delete既可以对行数据进行删除,也可以对整表数据进行删除。drop语句删除内容和定义,并释放空间。执行drop语句,将使此表的结构一起删除。
20
连接查询中,什么是内连接查询,什么是外连接查询?
学生答案: 内连接查询:内连接查询的关键字是innerjoin或者join。返回的是表中存在至少一个匹配的数据,那么不匹配的数据肯定就不返回了,如果都不匹配,是空。外连接查询:左外连接关键字是LEFTOUTERJOIN或LEFT JOIN。左外连接查询是以左边的表为基准,去匹配要连接的表,不管是否匹配条件都会以基准表的条数返回结果(这里明显不同于内连接),匹配到的数据就显示匹配到的数据,没有匹配条件的数据就显示为null。

编写select语句,查询product表的第5条到第10条记录。
学生答案: SELECT*FROMproductLIMIT5,5;

操作题
有一个关于商品供应及顾客订单的数据库。其中包括四个表,表中信息如下: 供应表apply(id、name、sid、price) 说明:id 供应厂家编号,name 供应厂家名称,sid 商品编号,price 商品价格。 顾客表customers(gid、name、address、balance) 说明:gid 顾客编号,address 地址,balance 余额。 订单表orders(sid、gid、date) 说明:sid 商品编号,gid 顾客编号,date 订单日期。 商品表goods(sid、name、count) 说明:sid 商品编号,name 商品名称,count 商品数量 写出SQL完成如下操作的SQL语句: 1)查询出2008-8-8这一天顾客的订单信息,要求包括顾客姓名、商品名称及订单日期. 2)将商品表中商品编号为’204’的商品名称更改为百事可乐 3)将顾客表上余额不足1000元的,将其订单日期延后10天 4) 删除订单表中商品编号为102的订单记录 5)将商品表中没有顾客订购的商品信息删除
学生答案: 1.selectfromcustomerswherecustomers.gid=orders.gidanddate="2008-8-8"2.updategoodssetsid=’百事可乐’wheresid=’204’;3.selectbalanceDATE_ADD(NOW(),INTERVAL10day)fromcustomerswherebalance<1000;4.deletefromorderswheresid=’102’;
10
已知进销存数据库Jxcxt包含如下数据表: 1)商品表:商品id(自增1), 商品名称, 单位, 单价, 商品状态 2)库存表:库存id(自增1), 商品id, 库存数量 请完成如下操作的SQL语句,表名和列名必须和上面的一致: 1、创建以上两个表的SQL语句; 2、在商品表上创建一个触发器(名字自定),当删除商品时自动删除该商品在库存表中的记录。
学生答案: 1>CREATETABLE商品表(商品idINTNOTNULLAUTO_INCREMENTPRIMARYKEY,商品名称VARCHAR(20)NOTNULL,单位VARCHAR(10),单价DOUBLE,商品状态VARCHAR(10));CREATETABLE库存表(库存idINTNOTNULLAUTO_INCREMENTPRIMARYKEY,商品idINTNOTNULL,库存数量INT,FOREIGNKEY(商品id)REFERENCES商品表(商品id));2>CREATETRIGGERdelChainBEFOREDELETEON商品表FOREACHROWDELETEFROM库存表WHERE商品id=old.商品id;
10
已知选课管理系统Xkglxt包含如下数据表: 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)课程表: 课程id, 课程名称, 学分 3)选课表: 选课id, 学生id, 课程id, 成绩 请完成如下操作的SQL语句,表名和列名必须和上面的一致: 1、创建以上三个表的SQL语句; 2、创建视图 V_选课,其中包含这些字段: 选课id, 学号, 姓名, 课程名, 成绩; 3、查询张三的数据开发技术课程的成绩。
学生答案: 1.学生表:CREATETABLEstudent(xsidINTPRIMARYKEY,xhVARCHAR(13),xmVARCHAR(5),zyVARCHAR(10),njCHAR(2),xmpysxVARCHAR(5))CHARSET=utf8;课程表:CREATETABLEcourse(kcidINTPRIMARYKEY,kcmcVARCHAR(9),xfSMALLINT)CHARSET=utf8;选课表:CREATETABLEsc(xkidINTPRIMARYKEY,xsidINT,kcidINT,gradeDOUBLE(3,2),FOREIGNKEY(xsid)REFERENCESstudent(xsid),FOREIGNKEY(kcid)REFERENCEScourse(kcid))CHARSET=utf8;2.CREATEVIEWv_选课ASSELECTs.xkid,st.xh,st.xm,c.kcmc,s.gradeFROMscsINNERJOINstudentstONs.xsid=st.xsidINNERJOINcoursecONc.kcid=s.kcid;
10
已知选课管理系统Xkglxt包含如下数据表: 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)课程表: 课程id, 课程名称, 学分 3)选课表: 选课id, 学生id, 课程id, 成绩 系统已建有getstrpy(p_name VARCHAR(100))用户自定义函数。 请完成如下操作的SQL语句,表名和列名必须和上面的一致: 1、创建以上三个表的SQL语句; 2、创建一个存储过程(名字自定),实现学生表的插入,姓名拼音缩写需要调用getstrpy函数实现。
学生答案: CREATEDATABASExkglxt;CREATETABLE学生表(学生idCHAR(4)PRIMARYKEY,学号CHAR(4),姓名CHAR(4),专业CHAR(4),年级CHAR(4),姓名拼音缩写CHAR(8))CHARSET=utf8;CREATETABLE课程表(课程idCHAR(4)PRIMARYKEY,课程名称CHAR(10),学分CHAR(4))CHARSET=utf8;CREATETABLE选课表(选课idCHAR(4)PRIMARYKEY,学生idCHAR(4),课程idCHAR(4),成绩INT,FOREIGNKEY(学生id)REFERENCES学生表(学生id),FOREIGNKEY(课程id)REFERENCES课程表(课程id))CHARSET=utf8;SELECT学号,姓名,专业,年级FROM学生表,课程表WHERE学分>=100;
7
已知选课管理系统Xkglxt包含如下数据表和自定义函数(函数已定义好可直接使用): 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)自定义函数拼音缩写查询: pysx(‘中文字符串’) 返回 该中文字符串的拼音缩写 请完成如下操作的SQL语句,表名和列名必须和上面的一致: 1、创建选课管理系统数据库以及学生表的SQL语句; 2、在学生表上创建一个触发器(名字自定),当新增学生时自动处理姓名拼音缩写。
学生答案: 1、CREATEDATABASEXkglxtCHARSETutf8;CREATETABLE学生(学生idINTPRIMARYKEY,学号INT,专业VARCHAR(30),年纪INT,姓名VARCHAR(30),姓名拼音缩写VARCHAR(30));2、DELIMITER
C R E A T E T R I G G E R m y t r i g g e r A F T E R I N S E R T O N 学 生 F O R E A C H R O W B E G I N I N S E R T I N T O 学 生 ( 姓 名 拼 音 缩 写 ) V A L U E S ( p y s x ( n e w . 姓 名 ) ) ; E N D CREATETRIGGERmytriggerAFTERINSERTON学生FOREACHROWBEGININSERTINTO学生(姓名拼音缩写)VALUES(pysx(new.姓名));ENDCREATETRIGGERmytriggerAFTERINSERTON学生FOREACHROWBEGININSERTINTO学生(姓名拼音缩写)VALUES(pysx(new.姓名));ENDDELIMITER;
10

已知产品销售数据库cpxs包含如下数据表: 1)产品表:产品编号,产品名称,价格,库存量。 2)销售商表:客户编号,客户名称,地区,负责人,电话。 3)产品销售表:销售日期,产品编号,客户编号,数量,销售额。 写出SQL完成如下操作的SQL语句: 1.写出产品表的建表语句 2.向产品表中插入如下记录: 0001 空调 3000 200 0002 冰箱 2500 300 3.将产品表中每种商品价格打八折后进行显示 4.查找价格在2000到2900之间的产品名称。 5.在产品销售表上创建“冰箱”产品表的视图bxcp
学生答案: 1、CREATETABLE产品表(产品编号char(4)PRIMARYKEY,产品名称VARCHAR(20)NOTNULL,价格float(7,2),库存量int(5));CREATETABLE销售商表(客户编号char(5)PRIMARYKEY,客户名称VARCHAR(20)NOTNULL,地区VARCHAR(10),负责人VARCHAR(10),电话VARCHAR(11));CREATETABLE产品销售表(销售日期date,产品编号char(4),客户编号char(5),数量int,销售额float(8,2));2、insertinto产品表values(’0001’,’空调’,3000,200);insertinto产品表values(’0002’,’冰箱’,2500,300);3、update产品表set价格=价格
0.8;4、select产品名称from产品表where价格between2000and2900;5、createviewbxcpasselectfrom产品表where产品名称=冰箱withcheckoption;
10
已知进销存数据库Jxcxt包含如下数据表: 1)商品表:商品id, 商品名称, 单位, 单价, 商品状态 2)库存表:库存id, 商品id, 库存数量 请完成如下操作的SQL语句,表名和列名必须和上面的一致: 1、创建以上两个表的SQL语句; 2、创建一个存储过程(名字自定),实现商品表的的插入,需要判断当前商品名称是否存在。
学生答案: CREATEDATABASEJxcxt;CREATETABLE商品表(商品idCHAR(4)PRIMARYKEYAUTO_INCREMENT,商品名称CHAR(4),单位CHAR(4),单价INT,商品状态CHAR(4))CHARSET=utf8;CREATETABLE库存表(库存idCHAR(4)PRIMARYKEYAUTO_INCREMENT,商品idCHAR(4),库存数量INT,FOREIGNKEY(商品id)REFERENCES商品表(商品id))CHARSET=utf8;CREATEVIEWV_库存(库存id,商品名称,单位,库存数量,库存金额)ASSELECT
FROM(商品表,库存表)WITHCHECKOPTION;
10
已知选课管理系统Xkglxt包含如下数据表: 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)课程表: 课程id, 课程名称, 学分 3)选课表: 选课id, 学生id, 课程id, 成绩 请完成如下操作的SQL语句,表名和列名必须和上面的一致: 1、创建以上三个表的SQL语句; 2、创建一个存储过程(名字自定),实现选课表的插入,需要判断当前课程id和学生id是否存在。
学生答案: CREATEDATABASExkglxt;CREATETABLE学生表(学生idCHAR(4)PRIMARYKEY,学号CHAR(4),姓名CHAR(4),专业CHAR(4),年级CHAR(4),姓名拼音缩写CHAR(8))CHARSET=utf8;CREATETABLE课程表(课程idCHAR(4)PRIMARYKEY,课程名称CHAR(10),学分CHAR(4))CHARSET=utf8;CREATETABLE选课表(选课idCHAR(4)PRIMARYKEY,学生idCHAR(4),课程idCHAR(4),成绩INT,FOREIGNKEY(学生id)REFERENCES学生表(学生id),FOREIGNKEY(课程id)REFERENCES课程表(课程id))CHARSET=utf8;SELECT学号,姓名,专业,年级FROM学生表,课程表,选课表WHERE成绩<60;
10
有一个关于商品供应及顾客订单的数据库。其中包括四个表,表中信息如下: 供应表apply(id、name、sid、price) 说明:id 供应厂家编号,name 供应厂家名称,sid 商品编号,price 商品价格。 顾客表customers(gid、name、address、balance) 说明:gid 顾客编号,address 地址,balance 余额。 订单表orders(sid、gid、date) 说明:sid 商品编号,gid 顾客编号,date 订单日期。 商品表goods(sid、name、count) 说明:sid 商品编号,name 商品名称,count 商品数量 1)从供应表中查询全体供应厂商的基本信息 2)从顾客表中查询地址在"长春"的顾客的顾客编号、顾客姓名及余额. 3)从商品表中查询以"可乐"两个字结尾的商品名称及数量,并按商品数量降序排序 4)从订单表中查询购买商品编号为"101"商品的顾客编号及订单日期. 5)向商品表中追加一条纪录(204,可口可乐,900) 6)从商品表中查询最多商品数量、最少商品数量及商品总数量的记录信息
学生答案: 1、select*fromapply;2、selectgid,name,balancefromcustomerswhereaddress=“长春”;3、selectname,countfromgoodswherenamelike"%可乐"orderbycountdesc;4、selectgid,datefromorderswheresid=101;5、insertintogoodsvalues(204,“可口可乐”,900);6、selectmax(count),min(count),sum(count)fromgoods;
10
已知选课管理系统Xkglxt包含如下数据表: 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)课程表: 课程id, 课程名称, 学分 3)选课表: 选课id, 学生id, 课程id, 成绩 请完成如下操作的SQL语句,表名和列名必须和上面的一致: 1、创建以上三个表的SQL语句; 2、创建一个存储过程(名字自定),实现课程表的插入,需要判断当前课程名称的课程是否存在。
学生答案: 1.CREATETABLE
temp.学生表(学生idVARCHAR(20),学号VARBINARY(20),姓名VARCHAR(20),专业VARCHAR(20),年级VARCHAR(20),姓名拼音缩写VARCHAR(10))CHARSET=utf8;CREATETABLEtemp.课程表(课程idVARCHAR(20),课程名称VARCHAR(20),学分VARCHAR(20))CHARSET=utf8;CREATETABLEtemp.选课表(选课idVARCHAR(20),学生idVARCHAR(20),课程idVARCHAR(20),成绩VARCHAR(20))CHARSET=utf8;2.SELECT学生表.学号,学生表.姓名,学生表.专业,学生表.年级FROM学生表,选课表,课程表WHERE学生表.学生id=选课表.学生idAND课程表.课程id=选课表.课程idAND课程表.课程名称=“数据库原理”;
8
已知选课管理系统Xkglxt包含如下数据表和自定义函数(函数已定义好可直接使用): 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)自定义函数拼音缩写查询: pysx(‘中文字符串’) 返回 该中文字符串的拼音缩写 请完成如下操作的SQL语句,表名和列名必须和上面的一致: 1、创建选课管理系统数据库以及学生表的SQL语句; 2、在学生表上创建一个触发器(名字自定),当修改学生表的姓名时自动处理姓名拼音缩写
学生答案: 1、CREATEDATABASEXkglxtCHARSETutf8;CREATETABLE学生(学生idINTPRIMARYKEY,学号INT,专业VARCHAR(30),年纪INT,姓名VARCHAR(30),姓名拼音缩写VARCHAR(30));2、DELIMITER
C R E A T E T R I G G E R m y t r i g g e r A F T E R I N S E R T O N 学 生 F O R E A C H R O W B E G I N I N S E R T I N T O 学 生 ( 姓 名 拼 音 缩 写 ) V A L U E S ( p y s x ( n e w . 姓 名 ) ) ; E N D CREATETRIGGERmytriggerAFTERINSERTON学生FOREACHROWBEGININSERTINTO学生(姓名拼音缩写)VALUES(pysx(new.姓名));ENDCREATETRIGGERmytriggerAFTERINSERTON学生FOREACHROWBEGININSERTINTO学生(姓名拼音缩写)VALUES(pysx(new.姓名));ENDDELIMITER;
8

已知选课管理系统Xkglxt包含如下数据表: 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)课程表: 课程id, 课程名称, 学分 3)选课表: 选课id, 学生id, 课程id, 成绩 请完成如下操作的SQL语句,表名和列名必须和上面的一致: 1、创建以上三个表的SQL语句; 2、在课程表上创建一个触发器(名字自定)。,当删除课程信息时自动删除该课程的选课信息。
学生答案: 1、1、CREATETABLE学生(学生idINTPRIMARYKEY,学号INT,姓名VARCHAR(30),专业VARCHAR(30),年纪INT,姓名拼音缩写VARCHAR(10))CHARSETutf8;CREATETABLE课程(课程idINTPRIMARYKEY,课程名称VARCHAR(30),学分INT)CHARSETutf8;CREATETABLE选课(选课idINTPRIMARYKEY,学生idINT,课程idINT,成绩INT)CHARSETutf8;2、DELIMITER
C R E A T E T R I G G E R m y t r i g g e r A F T E R D E L E T E O N 课 程 F O R E A C H R O W B E G I N D E L E T E F R O M 选 课 W H E R E 选 课 . 课 程 i d = o l d . 课 程 i d ; E N D CREATETRIGGERmytriggerAFTERDELETEON课程FOREACHROWBEGINDELETEFROM选课WHERE选课.课程id=old.课程id;ENDCREATETRIGGERmytriggerAFTERDELETEON课程FOREACHROWBEGINDELETEFROM选课WHERE选课.课程id=old.课程idENDDELIMITER;
8

已知进销存数据库Jxcxt包含如下数据表: 1)商品表:商品id(自增1), 商品名称, 单位, 单价, 商品状态 2)库存表:库存id(自增1), 商品id, 库存数量 请完成如下操作的SQL语句,表名和列名必须和上面的一致: 1、创建以上两个表的SQL语句; 2、在商品表上创建一个触发器(名字自定),当新增商品时自动在库存表中插入该商品的库存信息(库存数量为0)。
学生答案: createtable商品表(商品idintnotnullauto_increment,商品名称varchar(255),单位varchar(10),单价int,商品状态varchar(10),primarykey(商品id))charsetutf8;createtable库存表(库存idintnotnullauto_increment,商品idint,库存数量int,foreignkey(商品id)references商品表(商品id),primarykey(库存id))charsetutf8;delimiter
c r e a t e t r i g g e r 增 商 品 触 库 存 a f t e r i n s e r t o n 商 品 表 f o r e a c h r o w b e g i n i n s e r t i n t o 库 存 表 v a l u e s ( n u l l , n e w . 商 品 i d , 0 ) ; e n d createtrigger增商品触库存afterinserton商品表foreachrowbegininsertinto库存表values(null,new.商品id,0);endcreatetrigger增商品触库存afterinserton商品表foreachrowbegininsertinto库存表values(null,new.商品id,0);end
10
已知选课管理系统Xkglxt包含如下数据表: 1)学生表: 学生id, 学号, 姓名, 专业, 年级, 姓名拼音缩写 2)课程表: 课程id, 课程名称, 学分 3)选课表: 选课id, 学生id, 课程id, 成绩 请完成如下操作的SQL语句,表名和列名必须和上面的一致: 1、创建以上三个表的SQL语句; 2、创建一个存储过程(名字自定),实现学生表的插入,需要判断当前学号的学生是否存在。
学生答案: 1>CREATETABLE学生表(学生idINTNOTNULLPRIMARYKEY,学号VARCHAR(20)NOTNULL,姓名VARCHAR(10)NOTNULL,专业VARCHAR(20),年级VARCHAR(10),姓名拼音缩写VARCHAR(10));CREATETABLE课程表(课程idINTNOTNULLPRIMARYKEY,课程名称VARCHAR(20),学分FLOAT);CREATETABLE选课表(选课idINTNOTNULLPRIMARYKEY,学生idINTNOTNULL,课程idINTNOTNULL,成绩FLOAT,FOREIGNKEY(学生id)REFERENCES学生表(学生id),FOREIGNKEY(课程id)REFERENCES课程表(课程id));2>DELIMITER
C R E A T E P R O C E D U R E i s I n s e r t ( i d 1 I N T , i d 2 I N T , i d 3 I N T , g r a d e F L O A T ) B E G I N I F ( ( S E L E C T C O U N T ( ∗ ) F R O M 课 程 表 , 学 生 表 W H E R E 学 生 表 . 学 生 i d = i d 2 A N D 课 程 表 . 课 程 i d = i d 3 ) < > 0 ) T H E N I N S E R T I N T O 选 课 表 V A L U E S ( i d 1 , i d 2 , i d 3 , g r a d e ) ; E N D I F ; E N D CREATEPROCEDUREisInsert(id1INT,id2INT,id3INT,gradeFLOAT)BEGINIF((SELECTCOUNT(*)FROM课程表,学生表WHERE学生表.学生id=id2AND课程表.课程id=id3)<>0)THENINSERTINTO选课表VALUES(id1,id2,id3,grade);ENDIF;ENDCREATEPROCEDUREisInsert(id1INT,id2INT,id3INT,gradeFLOAT)BEGINIF((SELECTCOUNT(∗)FROM课程表,学生表WHERE学生表.学生id=id2AND课程表.课程id=id3)<>0)THENINSERTINTO选课表VALUES(id1,id2,id3,grade);ENDIF;ENDDELIMITER;
 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值