数据库面试题 联系客服

发布时间 : 星期一 文章数据库面试题更新完毕开始阅读

B. 触发器的主要作用是能够实现主键和外键所不能保证的复杂的参照完整性和数据一致性

C. 同存储过程和约束一样,触发器也是一个在数据库服务器端实现或执行业务规则的有效方法

D. 触发器可以嵌套任意层

26. 下列关于实体完整性的说法正确的有:(B)

A. 实体完整性是数据完整性约束条件的一种,其规则规定基表主键的任何部分都不可以接受空值

B. 实体完整性将行定义为特定表的唯一实体

C. 实体完整性牵制表的标识符列或主键的完整性

D. 可以通过主键约束、标识列、外键约束等实现实体完整性 27. 以下哪几项是主键约束和唯一约束的区别(BD)

A. 一个表可以有多个唯一约束,但是只能有一个主键约束 B. 主键约束列不能为空,而唯一约束可以为空

C. 主键约束只能包含一列,而唯一约束可以包含多列

D. 主键约束实现实体完整性,而唯一约束实现引用完整性

28. 关于数据库的主要数据文件和次要数据文件,下列哪一项说法是正确的(B) A. 数据库可以有多个主要数据文件和多个次要数据文件

B. 数据库只能有一个主要数据文件,并且可以没有次要数据文件 C. 数据库只能有一个次要数据文件,但是可以有多个主要数据文件 D. 数据库可以没有主要数据文件,也可以没有次要数据文件 29. 唯一标识表中的记录的一个或者一组列被称为(B) A. 外键 B. 主键 C. 关系 D. 度

30. SQL Server中数据库文件类型有如下几种(ABC) A. 主要数据文件 B. 次要数据文件 C. 日志文件 D. 备份文件

31. 关于Access和SQL Server数据库的比较,以下那些说法是正确的(B、E) A.他们都将数据保存在一个物理文件中 B.他们使用相同的SQL语言 C.他们采取类似的备份方式

D.他们都具有数据文件和日志文件 E.在打开Access数据库或者SQL Server正在运行时,数据库对应的物理文件不能被删除

32.在SQL Server的系统数据库中,(A)数据库用于保存数据库的配置信息 A.Master B.Model C.MSDB D.SysDB E.System

33.使用IDENTITY来标识特定的行时,下列写法符和要求的有(A、E) A.CREATE TABLE ABC(Id_Num int IDENTITY(1,3),fname varchar(20)) B.CREATE TABLE ABC(Id_Num IDENTITY(5),fname varchar(20)) C.CREATE TABLE ABC(Id_Num IDENTITY(5,1),fname varchar(20)) D.CREATE TABLE ABC(Id_Num varChar IDENTITY,fname varchar(20)) E.CREATE TABLE ABC(Id_Num int IDENTITY,fname varchar(20)) 34.假设有T-SQL为:ALTER TABLE ABC ADD CONSTRAINT PRIMARYKEYS CHECK(CH>300),则它的执行结果是(B)

A.为表ABC添加主键约束,并且字段CH的值必须大于300 B.为表ABC添加检查约束,约束名为PRIMARYKEYS C.为表ABC添加约束,规定字段CH为主键

D.为表ABC添加一个字段CH,并且字段CH的值必须大于300

E.检查CH,如果CH大于300,则为表ABC添加一个字段CH,并设为主键 35.在表STUD中有一列为SNAME,执行查询语句“DELETE FROM STUD WHERE SNAME LIKE ‘_[ae]%’”时,下列STUD中哪些数据行可能被删除(B) A.Whyte B.Carson C.Annet D.Hunyer

E.都不会被删除

36.假设ABC表中的A列存储电话号码信息,则查询不是以7开头的所有电话号码,正确的查询语句是(C)

A.SELECT A FROM ABC WHERE A IS NOT ’7%’ B.SELECT A FROM ABC WHERE A LIKE ‘%7%’ C.SELECT A FROM ABC WHERE A NOT LIKE ’7%’ D.SELECT A FROM ABC WHERE A LIKE ‘[1-6]%’ E.SELECT A FROM ABC WHERE A NOT IN(’7%’)

下面的SQL试题将使用到如下一个银行基本数据库,基本表结构如下: 表名 列名 Customer Branch (客户) customer-name (分支机构) branch-name customer-street branch-city customer-city assets 表名 列名

表名 列名 Loan

(贷款) loan-number branch-name amount 表名 列名 Borrower

(贷款人) customer-name loan-number

表名 列名 Account

(账户) account-number branch-name balance

表名 列名 Depositor

(存款人) customer-name account-number

37.如果在同一个查询中同时存在Where子句和Having子句,那么首先应用Where子句。满足Where子句的条件的记录可以通过group by子句形成分组。Having子句若存在,就将在用于每一分组。不符合having子句条件的分组将被抛弃,剩余的分组被Select子句用来产生查询结果记录集。

我们利用上面信息来完成如下操作:“找出住在Harrison且在银行中至少有三个账户的客户的平均余额”:

A. Select depositor. customer-name, avg(balance) From depositor, account, customer

Where depositor.account-number = account.account-number And account.account-number = customer.customer-name And

customer-city = ‘Harrison’ group by account.customer-name having count (distinct depositor.account-number)>=3

B. Select depositor. customer-name, avg(balance) From depositor, account, customer

Where depositor.account-number = account.account-number And depositor.account-number = customer.customer-name And

customer-city = ‘Harrison’ group by depositor.customer-name having count (depositor.account-number)>=3

C. Select depositor. customer-name, avg(balance) From depositor, account, customer

Where depositor.account-number = account.account-number And depositor.account-number = customer.customer-name And

customer-city = ‘Harrison’ group by depositor.customer-name having count (distinct depositor.account-number)>=3

D. Select depositor. customer-name, avg(balance) From depositor, account, customer Where depositor.account-number = account.account-number And depositor.account-number = customer.customer-name And

customer-city = ‘Harrison’ group by account.customer-name having count (depositor.account-number)>=3

38.“找出在银行中有贷款的客户的名字,并且他的名字既不是Smith 也不是 Jones”:(C)

A. select distinct customer-name from borrower where customer-name not is (‘Smith’,’Jones’)

B. select customer-name from borrower where customer-name not is (‘Smith’,’Jones’)

C. select distinct customer-name from borrower where customer-name not in (‘Smith’,’Jones’)

D. select distinct customer-name from borrower where customer-name in (‘Smith’,’Jones’)

39.“找出那些总资产至少比位于Brooklyn某一家支行要多的支行的名称”:(C) A. Select distinct T.branch-name From branch as T

Where T.assets > T.assets and T.branch-city = ‘Brooklyn’

B. Select distinct T.branch-name From branch as T, branch as S Where T.assets < S.assets and S.branch-city = ‘Brooklyn’

C. Select distinct T.branch-name From branch as T, branch as S Where T.assets > S.assets and S.branch-city = ‘Brooklyn’

D. Select distinct T.branch-name From branch as T, branch as S Where T.assets > S.assets and T.branch-city = ‘Brooklyn’

40.“找出所有在Perryridge支行中只有一个账户的客户”:(B) A. Select T.customer-name From depositor as T Where (select R.customer-name

From account, depositor as R Where T.customer=R.customer-name and R.account-number=account.account-number and Account.branch-name=’Perryridge’)

B. Select T.customer-name From depositor as T Where unique (select R.customer-name

From account, depositor as R Where T.customer=R.customer-name and R.account-number=account.account-number and Account.branch-name=’Perryridge’)

C. Select T.customer-name From depositor Where unique (select R.customer-name

From account, depositor as R Where T.customer=R.customer-name and R.account-number=account.account-number and Account.branch-name=’Perryridge’)

D. Select T.customer-name From depositor as T Where not unique (select R.customer-name

From account, depositor as R Where T.customer=R.customer-name and R.account-number=account.account-number and Account.branch-name=’Perryridge’)

41.找出loan表中amount为空值的贷款号:(B)

A. Select loan-number From loan Where amount in (null) B. Select loan-number From loan Where amount is null

C. Select loan-number From loan Where amount is ’null’ D. Select loan-number From loan Where amount = null