武汉大学数据库例题及解答
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【例4.3 】创建大学教学管理数据库,数据库名为JXGL,其主数据文件逻辑名称为JXGL_ data,数据文件的操作系统文件名称为JXGL.mdf,数据文件初始大小为5 MB,最大值为200 MB,以5%的增量增加。日志逻辑文件名称为JXGL_log,日志的操作系统文件名称为JXGL.ldf,日志文件初始大小为5 MB,可按2 MB增量增加,最大值为50 MB。
CREATE DATABASE JXGL
ON
( NAME = JXGL_data, //默认为主数据文件
FILENAME = '''+ @data_path + 'JXGL.mdf'',
SIZE = 5,
MAXSIZE = 200,
FILEGROWTH = 5% )
LOG ON
( NAME = JXGL_log,
FILENAME = '''+ @data_path + 'JXGL.ldf'',
SIZE = 5MB,
MAXSIZE = 50MB,
FILEGROWTH = 2MB )
【例】创建test数据库,包含一个主文件组和两个次文件组。
CREATE DATABASE test
ON
PRIMARY /*定义在主文件组上的文件*/
( NAME=pri_file1,
FILENAME=' C:\Program Files\Microsoft SQL Server\ MSSQL\Data \pri_file1.mdf ',
SIZE=10,MAXSIZE=50,FILEGROWTH=15%),
( NAME=pri_file2,
FILENAME=' C:\Program Files\Microsoft SQL Server\MSSQL\Data \pri_file2.ndf ',
SIZE=10,MAXSIZE=50,FILEGROWTH=15%),
FILEGROUP Grp1 /*定义在次文件组Grp1上的文件*/
( NAME=Grp1_file1,
FILENAME=' C:\Program Files\Microsoft SQL Server \MSSQL\Data \ Grp1_file1.ndf ',
SIZE=10,MAXSIZE = 50,FILEGROWTH=5),
FILEGROUP Grp2 /*定义在次文件组Grp2上的文件*/
( NAME = Grp2_file1,
FILENAME=' C:\Program Files\Microsoft SQL Server\MSSQL\Data \ Grp2_file1.ndf ',
SIZE=10,MAXSIZE=50,FILEGROWTH=5),
LOG ON /*定义事务日志文件*/
( NAME='test_log',
FILENAME=' C:\Program Files\Microsoft SQL Server\MSSQL\Data \test_log.ldf ',
SIZE=5,MAXSIZE=25,FILEGROWTH=5 )
GO
例:在原有数据库的基础上增加一个文件组date1,添加一个新文件并加入到文件组date1中ALTER DATABASE stuDB
ADD FILEGROUP date1
GO
ALTER DATABASE stuDB
ADD FILE
(NAME='stuDB_data1', --主数据文件的逻辑名
FILENAME='D:\project\stuDB_data1.ndf', --主数据文件的物理名
SIZE=5mb, --主数据文件初始大小
MAXSIZE=100mb, --主数据文件增长的最大值
FILEGROWTH=15% --主数据文件的增长率
)
TO FILEGROUP date1
GO
【例】删除已经创建的“学生管理数据库”。
DROP DATABASE 学生管理数据库
GO
例:在xsgl数据库中创建kc表。
USE xsgl
GO
CREATE TABLE kc
(
课程号char(4) PRIMARY KEY,
课程名char(16) not null,
学分smallint,
学时数smallint
)
GO
【例】在xs表的“专业”列和“姓名”列上创建名为“IX_zyxm”的非聚集、复合索引。运行如下命令。
CREATE NONCLUSTERED INDEX IX_zyxm ON
xs (专业,姓名)
GO
--查看和维护索引信息
EXEC sp_helpindex <表名>
--删除索引
DROP INDEX 索引名[,...] ON 表名
【例】向xs表中添加如表4-1所示字段
USE xsgl
GO
ALTER TABLE xs
ADD 电话CHAR(8)NULL
ADD 电子邮件CHAR(40) NULL
GO
【例】将xs表中的电子邮件字段的列长改为20。
ALTER TABLE xs
ALTER COLUMN 电子邮件CHAR(20) NULL
【例】在SC表中增加完整性约束定义,使grade在0-100之间。
ALTER TABLE SC
ADD CONSTRAINT grade_CHK CHECK(grade
BETWEEN 0 AND 100)
【例】将xs表中的电话列删除。
ALTER TABLE xs DROP COLUMN 电话
【例】查询所有女生的信息并将结果保存在名为“女生表”的数据表中。USE xsgl
GO
SELECT * INTO 女生表
FROM xs
WHERE 性别='女'
【例】查询所有男生的信息并将结果存入临时表中。
USE xsgl
SELECT *
INTO #TEMPDB
FROM xs
WHERE 性别='男'
要查看临时表的内容可用下面的语句:
SELECT * FROM #TEMPDB
【例】查询所有学生的学号,姓名及年龄。
USE xsgl
GO
SELECT 学号,姓名,年龄=DATEDIFF(YY,出生时间,GETDATE())
FROM xs
GO
【例】查询xs表中前5条记录
USE xsgl
GO
SELECT TOP 5 *
FROM xs
GO
【例】在cj表中求每门课程成绩大于90分的人数,
并显示统计的明细。
USE xsgl