资源描述
《管理信息系统中计算机应用》上机考试模拟题(1)
《管理系统中计算机应用》中SQL数据库部分考点练习
一、创建图书数据库
要求创建book数据库,数据库文件和事务日志文件放在C根目录下,数据库文件和事务日志文件大小扩充方式和容量:按兆字节增长,增长幅度为1MB,文件大小限制为2000MB。
CREATE DATABASE book
ON
(NAME =book_data,
FILENAME ='c:\ book_data.mdf',
MAXSIZE=2000MB,
FILEGROWTH=1MB
)
LOG ON
( NAME =book_log,
FILENAME ='c:\ book_log.ldf',
MAXSIZE=2000MB,
FILEGROWTH=1MB
)
二、修改上次创建的数据库book,添加一个次数据库文件。文件名为“book_data2.ndf”。该文件的扩充增容模式采取按10%增长,即采取默认设置。
ALTER DATABASE book
Add FILE
(NAME= book_data2,
FILENAME=' c:\book_data2.ndf',
FILEGROWTH=10%)
GO
三、数据库更名:将book改名为books
sp_renamedb book, books
四、删除books数据库
drop database books
五、学生表
学号(char 9 not null)
姓名(char 8 not null)
性别(char 2 null)
年龄( int )
200009001
葛文清
女
22
200104019
郑绣丽
女
21
200203001
刘成错
男
18
200203003
李涛
男
19
1、 创建学生表(先建一个STUDENT数据库,再建学生表)
create table学生表
(学号char( 9) not null,
姓名char (8) not null,
性别char 2 null,
年龄 int )
2、 将学生表的前两条记录输入到表中
insert 学生表
values ('200009001’,’葛文清’,’女’,22)
insert 学生表
values ('200104019’,’郑绣丽’,’女’,21)
3、修改学生表,向该表中添加一列,入学日期,数据类型为日期型,允许空。
alter table 学生表
Add 入学日期datetime null
4、修改学生表,删除入学日期字段。
alter table 学生表
drop COLUMN 入学日期
5、修改学生表,将姓名列由CHAR(8)改为varCHAR(10)。
alter table学生表
ALTER COLUMN 姓名 varCHAR(10)
6、删除学生表
drop table 学生表
六、查询
1:列出学生的姓名,重名的记录自动去掉
Use aaa
Go
select distinct 姓名
from 学生表
go
2:列出软件2班女同学的名单
select *
from 学生表
where 班级名='软件2班' and 性别='女'
go
3:列出2002年元旦前注册的学生名单
select *
from 学生表
where 入学年份<'01/01/2002'
go
4:列出所有年龄在19岁以下或者女学生的名单
select *
from 学生表
where 年龄<19 or 性别='女'
go
5:列出所有年龄不是19岁的学生名单
Use aaa
Go
select *
from 学生表
where 年龄<>19
go
6:列出考试成绩在80分以上的学生名单
select 姓名,成绩,成绩表.学号,课程名
from 成绩表,学生表,课程表
where 成绩>80 and 成绩表.学号=学生表.学号
and成绩表. 课程号=课程表. 课程号
7:列出即不是电子系,也不是会计系的学生学号、姓名和所在院系
select 学号,姓名,性别,所在院系
from 学生表
where 所在院系 not in ('会计学' , '电子学')
go
8:列出所有姓“苏”的老师
select 教师名
from 授课表
where 教师名 like '苏%'
9:列出在授课表中总共有多少位教师
select distinct 教师名
from 授课表
compute count(教师名)
10:统计学生表中一共有多少名19岁以上的女同学
select 姓名
from 学生表
where 性别='女'and 年龄>19
compute count(姓名)
11:查找年龄最大和最小的年龄
select max(年龄),min(年龄)
from 学生表
12:向“学生表”中添加一条记录200203005 李梅
insert 学生表(学号,姓名)
values ('200203005','李梅')
go
13:将成绩表中的成绩每人加10分
Use aaa
Go
update 成绩表
set 成绩=成绩+10
go
14:求每个教师的总课时数(SUM())
select * from 授课表
order by 教师名
compute sum(学时数) by 教师名
15:求学号的字段长度(len())
select len(学号) from学生表
16:求2002级的学生有几人(LEFT())
select * from 学生表
where left(学号,4)='2002'
compute count(学号)
七、创建约束
1、要求创建名为phone_rule的规则,电话字段值都应以“(027)”开头的11位数字。
CREATE RULE phone_rule
AS @phone LIKe '(027)[0-9][0-9][0-9][0-9][0-9][0-9]'
go
2、创建UNIQUE约束
给学生表的学号创建名为Unique_ei 的UNIQUE 约束
ALTER TABLE 学生表
Add CONSTRAINT Unique_ei UNIQUE(学号)
3、创建主键约束
给学生表的学号创建名为pk_学号的主键约束
alter table 学生表
add constraint pk_学号
primary key clustered
(学号)
go
4、删除2、3的约束
删除第3题的约束
alter table学生表
drop constraint pk_学号
go
删除第2题的约束
alter table学生表
drop constraint Unique_ei
go
八、索引
1、在学生表中以学生姓名列创建聚集、惟一索引
CREATE UNIQUE CLUSTERED
INdEX IX_学生表 ON 学生表(姓名)
GO
2、创建复合索引
学生表创建索引,索引字段由学号和姓名组合而成,即复合索引
CREATE
INdEX IX_学号姓名 ON 学生表(学号,姓名)
GO
九、视图
1、在数据库AAA中,基于表"学生表"和"成绩表"创建视图,要求为:
视图名为"学生成绩"。包含字段"学号"、"姓名"、"性别"、"课程号"和“成绩”
USE AAA
GO
CREATE VIEW学生成绩
AS
SELECT 学生表.学号,姓名,性别,课程号,成绩
FROM学生表,成绩表
WHERE 学生表.学号=成绩表.学号
GO
2、将“学生成绩”视图更名为"新学生成绩"。
EXEC sp_rename '学生成绩', '新学生成绩'
页脚内容12
展开阅读全文