数据库面试题2

  1. Oracle数据库物理结构包括以下三种文件,以下不属于的是(A)。

系统文件         B、日志文件  C、数据文件  D、控制文件

 

  1. SQL语言是__C_语言

层次数据库     B、网络数据库       C、关系数据库       D、非数据库

 

3、 你要定义外连接,下列哪个选项正确描述了外连接语句?D

A.由于外连接操作允许一个表中有NULL值,因此连接这些表时不必指定相等性比较。

B.在表A与B的外连接语句中,如果不管B表有无相应记录,都要显示表A的所有行, 则可以使用右外连接。

C.在表A与B的外连接语句中,如果不管A表有无相应记录,都要显示表B的所有行, 则可以使用左外连接。

D.尽管外连接操作允许一个表中有NULL值,但连接这些表时仍要指定相等性比较。

 

4、 要从ORDERS表中取得数据,其中包括三个列CUSTOMER、ORDER_DATE与ORDER_AMT。可以用下列哪个where子句查询ORDERS表,取得客户LESLIE超过2700的订单?D 

A.where customer = ‘LESLIE’;

B.where customer = ‘LESLIE’ and order_amt < 2700;

C.where customer = ‘LESLIE’ or order_amt > 2700;

D.where customer = ‘LESLIE’ and order_amt > 2700;

 

5、MySQL数据库四种特性,不包括(B)

A.原子性          B.事务性          C.一致性          D.隔离性

 

  1. 可以用( )来声明游标
    A.CREATE CURSOR
    B.ALTER CURSOR
    C.SET CURSOR
    D.DECLARE CURSOR
    答案:D

 

7、假设要按照分页(每页显示10条)的形式获取test表中的数据,在MySql数据库中,以下哪条语句是取第2页中的数据?(A) 

A、select * from test limit 10,10;

B、select * from test limit 11,10;

C、select * from test limit 10,20;

D、select * from test limit 11,20;

 

8、SQL中不一定能保证完整性约束彻底实现的是( C)
A、主键约束 B、外键约束 C、局部约束 D、检查子句

 

 

9、SQL Server数据库的主数据文件的扩展名为(B )。
A、 .sql B、 .mdf C、 .mdb D、 .db

 

 

10、要在SQL Server中创建一个员工信息表,其中员工的薪水、医疗保险和养老保险分别采用三个字段来存储,但是该公司规定:任何一个员工,医疗保险和养老保险两项之和不能大于薪水的1/3,这一项规则可以采用(C )来实现。
A、 主键约束 B、 外键约束 C、 检查约束 D、 默认约束

 

一、数据库中主键与外键分别是?

主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。外键:在一个表中存在的另一个表的主键称此表的外键。

二、什么是存储过程?有哪些优缺点?

存储过程是一些预编译的SQL语句。

更加直白的理解:存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。

·存储过程是一个预编译的代码块,执行效率比较高

·一个存储过程替代大量T_SQL语句 ,可以降低网络通信量,提高通信速率

·可以一定程度上确保数据安全

三、索引是什么?

索引是对数据库表中一或多个列的值进行排序的结构,是帮助MySQL高效获取数据的数据结构。你也可以这样理解:索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。

四、MySQL数据库几个基本的索引类型分别是?有何优点?

普通索引、唯一索引、主键索引、全文索引

·索引加快数据库的检索速度

·索引降低了插入、删除、修改等维护任务的速度

·唯一索引可以确保每一行数据的唯一性

·通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能

五、什么是事务?

事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。

1)原子性
事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。
2)一致性
事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。
3)隔离性
由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。
4)持久性
事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。

 

六、简单说一说drop、delete与truncate的区别

SQL中的drop、delete、truncate都表示删除,但是三者有一些差别

·delete和truncate只删除表的数据不删除表的结构

·速度,一般来说: drop> truncate >delete

·delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;
如果有相应的trigger,执行的时候将被触发. truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.


七、什么叫视图?游标是什么?

答:视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,试图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。

游标:是对查询出来的结果集作为一个单元来有效的处理。游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行。可以对结果集当前行做修改。一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要。

 

  • sql语句应该考虑哪些安全性? 
    答: 
    (1)防止sql注入,对特殊字符进行转义,过滤或者使用预编译的sql语句绑定变量。 
    (2)最小权限原则,特别是不要用root账户,为不同的类型的动作或者组建使用不同的账户。 
    (3)当sql运行出错时,不要把数据库返回的错误信息全部显示给用户,以防止泄漏服务器和数据库相关信息。

 

 

九、Student(S#,Sname,Sage,Ssex) 学生表

S#:学号;Sname:学生姓名;Sage:学生年龄;Ssex:学生性别
Course(C#,Cname,T#) 课程表

C#,课程编号;Cname:课程名字;T#:教师编号
SC(S#,C#,score) 成绩表

S#:学号;C#,课程编号;score:成绩
Teacher(T#,Tname) 教师表

T#:教师编号; Tname:教师名字

·查询平均成绩大于60分的同学的学号和平均成绩;
select S#,avg(score)
from sc
group by S# having avg(score) >60;

 

十、ORACLE中左连接与右连接怎么写?

左连接:LEFT JOIN  右连接:RIGHT JOIN

 

你可能感兴趣的:(面试题,数据库面试题,面试题)