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表结构
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
(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 | 默认值为“计算机学院” |
(
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
相关文章推荐
- SQL语句的基本语法一
- MS SQL 2005基本操作(一):SQL语句对表、视图、索引和同义词的操作
- Oracle中5个核心Sql语句的基本构造:Select、Insert、Update、Delete和Merge
- MYSQL 基本SQL语句
- 动态sql语句基本语法
- SQL语句的基本语法
- [Sqlite] Sqlite的基本日常SQL操作语句汇总
- MySQL常用基本SQL语句总结
- iOS开发中使用SQL语句操作数据库的基本用法指南
- 用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等
- 动态sql语句基本语法【exec】
- SQL语句添加删除修改字段及其他基本操作(33条)转
- MYSQL-------SQL语句基本使用
- 基本Sql语句汇总
- SQL 语句基本语法和对象命名
- SQL code动态sql语句基本语法
- 初学者Oracle数据库:sql语句的基本使用与示例
- SQL 基本建表语句
- 二:SQL语句基本操作(一)
- MySQL数据库中SQL语句的基本使用(二)