您的位置:首页 > 数据库

T-SQL 基本语句考题

2010-11-07 12:32 288 查看
1.利用ansact-SQL语句完成下列操作
(1)创建一个名为jiaoxue的数据库,该数据库包含一个数据文件和一个日志文件,逻辑文件名为jiaoxue_data,磁盘文件名为jiaoxue_data.mdf,文件初始容量为5MB,最大容量为15MB,文件递增容量为1MB,而事务日志文件的逻辑文件名为jiaoxue_data_log,磁盘文件名为jiaoxue_data_log.ldf,文件初始容量为5MB,最大容量为10MB,文件增量为1MB(数据库创建在D:/姓名学号,例如:D:/王明01/)。(10分)
create database jiaoxue
on primary
(
Name='jiaoxue_data',
FileName='D:/刘月辉/jiaoxue_data.mdf',
size=5MB,
maxsize=15MB,
filegrowth=1MB
)
LOG on
(
Name='jiaoxue_data_log',
filename='D:/刘月辉/jiaoxue_data_log.ldf',
size=5MB,
maxsize=10MB,
filegrowth=1MB
)
collate chinese_prc_ci_as
go


(2).给名为jiaoxue的数据库添加一个名为‘GROUPjx’的文件组。(6分)
alter database jiaoxue
add filegroup groupjx

(3)向数据库jiaoxue添加一个数据文件,文件的逻辑名为jiaoxue_data2,磁盘文件名为jiaoxue_data2.mdf,文件初始容量及最大容量为系统默认值,将这个数据文件添加到上题建立的名为‘GROUPjx’的文件组内。(10分)
alter database jiaoxue
add file
(
name='jiaoxue_data2',
filename='D:/刘月辉/jiaoxue_data2.mdf'
)
to filegroup groupjx
go

2.已创建的数据库jiaoxue中利用Transact-SQL语句完成下列操作:(每小题7,共计35分)
(1) 创建一个如下结构所示的数据表
Student表结构
列名
数据类型及长度
是否为空
备注
学号
Nchar(10)
NO
主键
姓名
Nchar(10)
NO
单位
Nchar(10)
NO
默认值为“计算机学院”
create table student
(
sno nchar(10) not null primary key,
sname nchar(10) not null,
splace nchar(10) not null
)
create default stuPlace as '计算机学院'
exec sp_bindefault 'stuPlace','student.splace'

(2) 向上面的表student中插入一个“出生日期”列,数据类型为datetime.
alter table student
add birdate datetime

(3) 将student表中所有学号以‘0932’开头的学生的单位改为“软件学院”。
update student
set splace='软件学院' where sno='0932'

(4) 删除student表中所有‘1989-10-17’以后出生的学生的信息。
declare @time1 datetime
set @time1='1989/10/17'
delete from student
where datediff(day,@time1,birdate)>0

(5) 按单位分组,求出student表中每组学生的人数。
select splace,count(*) from student
group by splace

3.数据库中下列表的结构,写出相关Transact-SQL语句。(每小题6分,共计24分)
创建表结构的命令如下:
产品(产品编号 nchar(10) primary key,
分类号 nchar(6),
产品名 nchar(30) not null unique,
库存量 int,
订货点 int,
单价 decimal(5,2))
订单详细信息(产品编号 nchar(10) references 产品(产品编号),
订单编号 nchar(10) references 订单(订单编号),
订购数量 int)
订单(订单编号 nchar(10) primary key,
客户编号 nchar(10) references 客户(客户编号),
订购日期 datetime)
客户(客户编号 nchar(10) primary key,
客户名称 varchar(30),
联系人 nchar(8),
联系电话 nchar(11))
(1) 查询单价介于50~100元之间的产品。

select * from 产品
where 单价 between 50 and 100

(2) 查询产品订购总数量大于3500的产品名称及产品订购总数量。
select 产品名,订购数量from 产品,订单详细信息
where 订购数量>3500

(3) 查询从2009年10月没有下订单的客户信息。
select 客户.* from 订单,客户
where 订单.订购日期-'2009/10'>0

(4) 将订购单编号为10317的订单所订购的产品数量加5。
update 订单详细信息
set 订购数量=订购数量+5 where 订单编号='10317'

4.两个日期为2010-10-29和2010-11-01,要求编程生成两个日期之间的所有日期,生成结果如下(使用函数convert(变量1,变量2,120)(15分)
2010-10-29
2010-10-30
2010-10-31
2010-11-01
declare @time1 datetime,@time2 datetime,@time3 datetime
set @time1='2010/10/29'
set @time2='2010/11/01'
set @time3=@time1
while(@time3<=@time2)
begin
select @time3
set @time3=DateAdd(dd,1,@time3)
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: