数据库原理实验一-数据库和表的创建与管理 下载本文

(2) 用SQL语句创建上述的三张表,各个字段的数据类型请自己确定,每张表只要有主键约束即可,不要其他约束。不用输入数据。

6

(3) 用SQL中的backup 语句将数据库Student备份到一个bak文件。(提示:backup database student to disk)

--备份:

BACKUP DATABASE \ TO DISK ='C:\\lzcDB1\\mybak1015.bak'

(4) 用SQL语句删除创建的表。

drop table S drop table C drop table SC

(5) 将Student数据库定义时使用的文件(扩展名为mdf,ldf的数据文件、日志文件等)复制到其他文件夹进行备份(复制)后,用SQL语句删除创建的数据库。

(6) 用SQL中的sp_attache_db语句完成对数据库Student的附加。(通过该方式完成数据库的恢复时,使用的备份文件是第5)小题中备份好的数据文件、日志文件等 ,具体用法:exec sp_attache_db )

--将 student 中的两个文件附加到当前服务器。 EXEC sp_attach_db @dbname = N'student',

7

@filename1 = N'C:\\lzcDB1\\student.mdf', @filename2 = N'C:\\lzcDB1\\student_log.ldf'

(7) 先删除Student库,再用SQL中的restore 语句还原刚才备份的数据库Student。 (提示:restore database student from disk)

(8) 用SQL语言修改数据库Student,给Student数据库添加一个文件组 TestFG1,然后将两个 5 MB 的文件添加到该文件组。(提示:alter database)

8

(9) 修改S表,增加一个表示联系电话的字段sPhoneNo,数据类型为字符串类型。

ALTER TABLE S

ADD sPhoneNo char(10)

(10)

利用SQL Server Management Studio的生成脚本功能(选中Student

库->右键菜单“任务”-> “生成脚本”),自动生成S表的创建脚本,分析自动生成的脚本和自己写的SQL语句的异同点。

生成代码:

USE [student] GO

/****** Object: Table [dbo].[SC] Script Date: 10/15/2016 17:17:34 ******/

SET ANSI_NULLS ON GO

SET QUOTED_IDENTIFIER ON GO

SET ANSI_PADDING ON GO

9

CREATE TABLE [dbo].[SC]( [sno] [char](10) NOT NULL, [cno] [char](10) NOT NULL, [cgrade] [smallint] NULL, PRIMARY KEY CLUSTERED (

[sno] ASC, [cno] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO

SET ANSI_PADDING OFF GO

/****** Object: Table [dbo].[S] Script Date: 10/15/2016 17:17:34 ******/

SET ANSI_NULLS ON GO

SET QUOTED_IDENTIFIER ON GO

SET ANSI_PADDING ON GO

CREATE TABLE [dbo].[S]( [sno] [char](10) NOT NULL, [sname] [nvarchar](20) NULL, [ssex] [nchar](2) NULL, [sbirth] [date] NULL,

[sdept] [nvarchar](20) NULL, [sPhoneNo] [char](10) NULL, PRIMARY KEY CLUSTERED (

[sno] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO

10