数据库试题

1、下列关于sql说法正确的是:

A: SQL是基于关系模型的,但没必要实现它。

B: 在一个列中,NULL意味这该项没有数值。

C: 主键值和外建值都不能为空。

D: 主键是表必须的且唯一的。

答案:A。

B的解释:以Oracle为例。有三个字段A、B、C,如果C(末位)为空,那么只存储A和B,C不存储。但是如果B为空,那么如果只存储两个值得话,你怎么知道到底A、B和C哪个字段对应的是空值呢?所以这时候要存储三个值,存储一个长度为0来标识这个字段对应的是NULL。

C的解释:如果外键邦定的是另一张表的主键,那么外建值都不能为空。如果外键邦定的是另一张表的非主键,那么外建值可以为空。

2、下列关于数据库视图说法正确的是:

A:数据库的视图是虚表,既可以从一个或几个基本表生成,也可以从一个或几个视图生成

B:视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据库中

C:视图中的数据改变,视图所对应的基表中的数据也要改变;基表中的数据改变,基表所对应的视图的数据也要改变

D:视图能够将程序和数据表分割开来,使得程序的变化不影响数据表,数据表的变化也不影响程序

答案:ABCD

参考:http://blog.csdn.net/tianjf0514/article/details/7854931

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sql语句来练习题。1. 写出创建图书表的SQL语句。 Create table book( Book_id char (10) primary key, (主码primary key) Name varchar(30) not null, (非空not null) Author varchar(20) Publish varchar(30) Price decimal(6,2) (,前表示有几位有效数字 ,后表示小数部分有几位) ) 2. 将编号为“NEU1105101”的图书的定价改为50元。 Update book (修改数据update语句) Set price=50 Where book_id=‘NEU1105101’ 3. 查询所有男性读者的姓名和出生日期。 Select name.birthdate From reader Where sex=‘男’ 4. 查询图书表出现过哪些出版社,每个出版社名称只显示一次,并且按照出版社名称升序排列显示。 Select publish From book Order by publish ASC (按照出版社升序排列显示) 5. 查询借阅过定价介于20元到40元(包括两个边界值)图书的读者的姓名。 Select Name (建立多表连接查询) From borrow join book on borrow.book_id=book.book_id Join reader on borrow.reader_id=reader.readerid Where price >=20 and price <=40 6. 查询每个读者借阅过图书的数量,只显示借阅过图书的读者的读者编号以及借书数量。 Select count(book_id),reader_id (建立多表连接查询) From borrow join book on borrow.book_id=book.book_id Join reader on borrow.reader_id=reader.readerid Group by reder_id 7. 如果有一个名为user001的用户,请写出给他分配对图书表进行数据修改的权限的SQL语句。 Grant update on book to user001 (授权grant语句) 8. 创建一个名为view001的视图,其包含每个出版社的名称、该出版社出版图书的数量、该出版社出版图书的最高定价、以及该出版社出版图书的最低定价。 Create view view001 (创建视图格式,聚集函数) AS Select publish,count(book_id),MAX(price),MIN(price) From student 9. 显示借阅过书名包含“数据库”字样的女性读者的编号和姓名。 Select Name,reader_id (建立多表连接查询) From borrow join book on borrow.book_id=book.book_id Join reader on borrow.reader_id=reader.readerid Where name like ‘%数据库%’ 10. 显示出版图书数量超过100本的出版社的名称及其出版图书的数量。 Select count(book_id),publish (查询图书数量,出版社名称) From book Group by publish (根据出版社的名称来分组) Having count(book_id)>100 (条件约束) 这里用having 不用where 原因是它不能和聚集函数一起使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值