SQL练习题(一)

2014-11-24 13:26:36 · 作者: · 浏览: 0

一、基础知识题

(一)填空题

1、在一个表中主键的个数为___1_______个。

2、企业管理器是Microsoft SQL Server程序组中的程序之一,是管理________和________的主要工具。

3、触发器执行时生成的两个临时表为____deleted_________和____insereted________。

4、以SP__作为首部的存储过程称为____系统存储过程______________。

5、命令 truncate table的功能是___清空表中的内容____________。

6、通过外键约束可以为相关联的两个表建立联系,实现数据的__________完整

性。

7、SQL Server 2000的文件包括:____数据文件_________和____日志文件__________。

8、模糊查询符号 % 代表 ____零个或者多个任意字符的字符串_______ ,符号_ 代表意思是 ______任意单个字符_________。

9、对数据进行统计时,求最大值的函数是___MAX()______。

10、视图是从其它_____表___________________或视图导出的虚拟表。

11、在使用Create Index 语句创建簇索引时,需要使用的关键字__clustered_______。

12、关系模型中一般讲数据完整性分为三类:__实体完整性_______、_ 参照完整性____、__用户自定义完整性________。

13、创建视图用___with encryption_____________参数使视图的定义语句加密。

14、SELECT语句中去除重复记录的命令是__distinct_______________。

(二)选择题

1、在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是( )。

(A)聚集索引 (B)非聚集索引 (C)主键索引 (D)唯一索引

2、SELECT语句中与HAVING子句通常同时使用的是( C )子句。

A.ORDER BY B.WHERE C.GROUP BY D.无需配合

3、在SQL Server 2000中,当数据表被修改时,系统自动执行的数据库对象是( B )。

(A)存储过程 (B)触发器 (C)视图 (D)其他数据库对象

4、新安装SQL Server后,默认有六个内置的数据库,其中的两个范例数据库是Pubs和( A )。

(A)master (B)NorthWind (C)msdb (D)bookdb

5、对视图的描述错误的是:( )

(A) 是一张虚拟的表

(B) 在存储视图时存储的是视图的定义

(C) 在存储视图时存储的是视图中的数据

(D) 可以像查询表一样来查询视图

二、应用题

(一)用T-SQL语句完成下列题目(3小题,每小题5分、共15分)

1用T-SQL语句创建一个如下要求的数据库。

创建一个名字为Readbook库包含一个数据文件和一个日志文件,逻辑文件名为Readbook_data,磁盘文件名为Readbook_data.mdf,文件初始容量为2MB,最大容量为10MB,文件递增容量为1MB,而事务日志文件的逻辑文件名Readbook_log,磁盘文件名为Readbook_log.ldf,文件初始容量为1MB,最大容量为5MB,文件递增量为1MB(数据库创建在D:\SERVER文件夹下)

use master

go

if DB_ID (N'Readbook') is not null drop database Readbook

go

create database Readbook

on

(

name=Readbook_data,

filename='D:\SERVER\Readbook_data.mdf',

size=3,

maxsize=10,

filegrowth=1

)

log on

(

name=Readbook_log,

filename='D:\SERVER\Readbook_data.ldf',

size=3,

maxsize=5,

filegrowth=1

)

2、在Readbook数据库中添加一个新的事务日志文件,逻辑文件名为Readbook2_log, 磁盘文件名为Mybase2_log.ldf,文件初始容量为2MB,最大容量为10MB,文件递增容量为1MB。

alter database Readbook

add file

(

name=Readbook2_log,

filename='D:\SERVER\Mybase2_log.ldf',

size=3,

maxsize=10,

filegrowth=1

)

3、删除新添加的事务日志文件Readbook2_log。

USE master;

GO

ALTER DATABASE Readbook

REMOVE FILE Readbook2_log;

GO

(二)用T-SQL语句完成下列题目

1用T-SQL语句创建一个如下图所示的数据表,表名为students,建在名为ks的数据库中:

列名

数据类型及长度

是否为空

备注

学号

CHAR(8)

NO

主键

姓名

CHAR(10)

NO

性别

CHAR(2)

NO

只能输入“男”或“女”

身份证号

CHAR(18)

NO

唯一性约束

系别

CHAR(20)

NO

默认值为”计算机系”

总学分

TINYINT

YES

create database ks

go

use ks

create table students

(

学号 char(8) primary key,

姓名 char(10) not null,

性别 char(2) not null Check(性别='男'or 性别='女'),

身份证号 char(18) not null unique,

系别 char(20) not null default '计算机系',

总学分 tinyint

)

2、向上面的表Students中插入一个‘出生年月’字段,数据类型为datetime。

use ks

alter table students

add 出生年月 datetime

3、将Students表中所有姓王的学生的系别改为‘信息技术系’。

use ks

update students set 系别='信息技术系' where 姓名='王%'

4、删除Students表中所有1985年出生的男学生信息。

use ks

delete from students where 性别='男' and 出生年月=year('1985')

(三)根据下列数据库中表的结构,回答问题(5小题,每小题5分,共25分)

学生: XS(学号char(8) primary key,

姓名char(8),

班级char(10),

性别char(2),

出生日期datetime,

出生城市char(10),

入学成绩tinyint)

课程: KC(课程号char(6) primary key,

课程名char(20))

学生选课信息: CJ(学期char(2),

学号char(8) references学生(学号),

课程号char(6) references课程(课程号),

成绩tinyint check(成绩>=0 and 成绩<=100))

1、 查询入学成绩排名前十的同学的学号、姓名和成绩。

select to