数据库笔试题(三)

软通动力笔试题

一、选择题(每题 2 分,共计 30 分)

1.在ER模型中,下列有关主码和超码描述正确的是_____。

A. 主码是超码的真子集            B. 超码是主码的真子集

C. 主码和超码没有关系            D. 以上都不对


2.在下列范式中,最高级别的范式是______。
A. BCNF                       B. 1NF

C. 5NF                        D. 以上都不对


3. SQL语言中,删除记录的命令是(   A   )。

A. DELETE           B. DROP           

 C. CLEAR           D. REMOVE


4.下在ER图中,关系用( C  )来表示

A. 矩形             B. 椭圆

C. 菱形             D. 以上都不对


5. 查询订购单号(字符型,长度为4)尾字符是”1″的错误命令是___C___。

subStr(列名,开始位置,截取长度);

subStr(列名,开始位置)   //默认到字符结素
A. SELECT * FROM 订单 WHERE SUBSTR(订购单号,4)=”1″
B. SELECT * FROM 订单 WHERE SUBSTR(订购单号,4,1)=”1″
C. SELECT * FROM 订单 WHERE “1″$订购单号
D. SELECT * FROM 订单 WHERE RIGHT(订购单号,1)=”1″


6. 假设Students表中有主键SCode,Score表中有外键 stuNo列,stuNo引入Scode列来实施引用完整性约束,此时如果使用T-SQL
Update Students set Scode = ‘001’ where scode = ‘002’ ___
A. 肯定会产生更新错误      B. 可能会更新Students表中的两行数据
C. 可能会更新Score表中的一行数据 D. 可能会更新Students表中的一行数据

 

7. 在T-SQL语言中,修改表结构时,应使用的命令是(C  )

A.UPDATE                B.INSERT  

C.ALTER          D. MODIFY


8. 限制输入到列的值的范围,应使用( D )约束。

A. CHECK             B. PRIMARY KEY           

 C. FOREIGN KEY       D. UNIQUE


9. 参与联系的实体集的个数叫( B )。

A.域         B.码数        C.元       D.以上都不对


10. 关于视图下列哪一个说法是错误的( B )。

A. 视图是一种虚拟表       B. 视图中也存有数据 

C. 视图也可由视图派生出来    D. 视图是保存在数据库中的SELECT查询


11. 用于模糊查询的匹配符是( D )。

A. _           B. []              

C. ^             D. LIKE


12. 在ER图中,如果一个实体集完全参与到一个联系中,则他们之间用 (   )连接。

A. 虚线      B. 有向边            

C. 单向边        D. 双线段

13. 关于关系图下列哪一个是正确的(   )。

A. 关系图是在同一个表中不同字段之间建立关联      B. 关系图是在不同表中的字段之间建立关联

C. 关系图是表与表之间建立关联,与字段无关。      D. 关系图是在不同数据库之间建立关联

14. 触发器可以创建在(  A  )中。

A. 表  视图         B. 过程           

C. 数据库          D. 函数

15. 规则对象在使用上与( A  )约束类似。

A. CHECK         B. PRIMARY KEY       

 C. FOREIGN KEY       D. UNIQU

 

二、判断题(每题 2 分,共计10 分)

1.一个数据表中只能有一个主键约束,但可以有多个UNIQUE约束。(   )

2. 数据库系统中的锁一共有三种。( 共享(S),排它(X)锁,更新(U)  )

3.数据库系统中数据的一致性是指数据类型一致。(   )

4.ODBC是由Microsoft定义的一种数据库访问标准。(   )

5.事务当中的操作可以部分执行。(   )

 

三、简答题(10分)

数据库名:学生成绩数据库

学生表                    课程表

班级编号

int

 

学号

int

 

姓名

Varchar

10

性别

Char

2

民族

Varchar

20

身份证号

Varchar

18

出生日期

datetime

 

课程号

int

 

 课程名

Varchar

20

 开课学期

char

6

 学  时

int

 

  成绩表

ID

int

 

学号

int

 

课程号

int

 

分数

int

 

 

要求用SQL语言实现下列功能的sql语句代码:

(1) 从学生表和教学成绩表中查询所有学生的学号.姓名.课程名和分数

 Select 学生表.学号,姓名,课程名,分数 from 学生表,课程表,成绩表 where 学生表.学号 = 成绩表.学号 and 课程表.课程号=课程表.课程号;


(2) 向学生表中插入一条班级编号为’00001’,学号为’00009’,姓名为’张三’,性别为’男’的记录

Insert into 学生表 (班级编号,学号,姓名,性别)values (00001,00009,‘张三’,);


(3) 将成绩表中学号为’00006’,课程号为’00002’的学生的分数更新为’95’

Update 成绩表 set 分数 = 95 where 学号=00001 and 课程号=00002;

 

 

 

sql查询数据库最后10条记录并按降序排列

SELECT TOP 10 FROM 表名 ORDER BY 排序列 DESC;SQL的执行顺序先按照你的要求排序,然后才返回查询的内容。例如有一个名为ID自动增长的列,表中有100条数据,列的值得分别是1、2、3、4………9、99、100。那么查询加了DESC你得到的是91到100条,就是最后十条,如果加ASC你得到的将会是1到10,也就是最前面的那几条。

记录如果说有先后的话 必然是根据某几个字段进行排序了的你反过来排序就变成求前10条记录了呗,把desc和 asc互换一下 (默认是 asc )oracle 的写法slect * from (select * from tab order by col desc ) where rownum <= 10
赞同

最后10条降序与最前10条升序是一样的如果还想排序,那就按他们说的用临时表。select top 10 * from table 1 order by field1 into table #tempselect * from #temp order by field1 desc //查询结果放临时表select * top 10 from table1 order by field1 asc into tabl temp //再从临时表查询select * from temp order by field1 desc

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值