内容发布更新时间 : 2024/12/23 20:08:42星期一 下面是文章的全部内容请认真阅读。
FILEGROWTH = 1MB, --自动增量
MAXSIZE = UNLIMITED) --最大容量
LOG ON
(NAME=ST_log, --日志文件逻辑文件名 FILENAME = 'F:\\SQL2008DB\\ST_log.ldf', --物理文件名 SIZE = 2MB, --初始大小 FILEGROWTH = 10%, --自动增量 MAXSIZE = UNLIMITED) --最大容量 运行结果如下: 命令已成功完成。
5.使用T-SQL语句建立数据库JXDB,参数如表1.2所示。
表1.2 数据库JXDB属性设置 文件组 文件 类型 主数据 文件 逻辑文件名 JXDB_Data 物理文件名 F:\\SQL2008DB\\ JXDB_Data.mdf 初始 自动 最大 大小 增量 容量 3M 2M 1M 1M 2M 10% 10% 1M 1M 10% 不限制 增长 30M 20M 10M 不限制 增长 主文件组 PRIMARY 次数据 F:\\SQL2008DB\\ JXDB_Data1 文件 JXDB_Data1.ndf 次数据 JXDB_Data2 自定义 文件 文件组 次数据 JX_Group1 JXDB_Data3 文件 日志 文件 JXDB_log F:\\SQL2008DB\\ JXDB_Data2.ndf F:\\SQL2008DB\\ JXDB_Data3.ndf F:\\SQL2008DB\\ JXDB_log.ldf 使用二个文件组:主文件组PRIMARY包含主数据文件 JXDB_Data和次数据文件JXDB_Data1;名为 JX_Group1 的自定义文件组包含次数据文件 JXDB_Data2 和 JXDB_Data3;事务日志文件名为JXDB_log。程序如下: --创建教学管理数据库JXDB.sql
IF EXISTS (SELECT * FROM master..sysdatabases WHERE name = 'JXDB') DROP DATABASE JXDB --若库JXDB已存在,则删除
GO
CREATE DATABASE JXDB --建立数据库JXDB ON PRIMARY --主文件组 (NAME=JXDB_Data, --主数据文件逻辑文件名 FILENAME = ' F:\\SQL2008DB\\JXDB_Data.mdf ', --物理文件名 SIZE = 3MB, --初始大小 FILEGROWTH = 10%), --自动增量 MAXSIZE = UNLIMITED) --最大容量 (NAME = JXGLDB_Data1, --次数据文件 FILENAME = ' F:\\SQL2008DB\\JXDB_Data1.ndf', SIZE = 2MB,
FILEGROWTH = 10%,
46
MAXSIZE = UNLIMITED),
FILEGROUP JX_Group1 --自定义文件组1 (NAME = JXDB_Data2, --次数据文件 FILENAME = ' F:\\SQL2008DB\\JXDB_Data2.ndf', SIZE = 1MB,
MAXSIZE = 20MB, FILEGROWTH = 10%),
(NAME = JXDB_Data3, --次数据文件
FILENAME = ' F:\\SQL2008DB\\JXDB _Data3.ndf', SIZE = 1MB,
MAXSIZE = 20MB, FILEGROWTH = 10%), LOG ON
(NAME = JXDB_log, --日志文件
FILENAME = ' F:\\SQL2008DB\\JXDB_log.ldf', SIZE = 1MB,
MAXSIZE = 20MB, FILEGROWTH = 10%) GO
运行结果如下:
命令已成功完成。
6.使用T-SQL语句为数据库JXDB添加文件组JX_Group2,并为此文件组添加1个数据文件 JXDB_Data4;添加1个日志文件JXDB_log1。参数由用户自己设定。
--添加文件组JX_Group2 ALTER DATABASE JXDB
ADD FILEGROUP JX_Group2 GO
--添加次数据文件JXDB_Data4到文件组JX_Group2 ALTER DATABASE JXDB
ADD FILE (NAME = JXDB_Data4,
FILENAME = 'F:\\SQL2008DB\\JXDB_Data4.ndf', SIZE = 1MB, MAXSIZE = 20MB, FILEGROWTH = 1MB)
TO FILEGROUP JX_Group2 --次数据文件添加到文件组JX_Group2 GO
--添加日志文件JXDB_log1 ALTER DATABASE JXDB
ADD LOG FILE
(NAME = JXDB_log1, --日志文件 FILENAME = 'F:\\SQL2008DB\\JXDB_log1.ldf', SIZE = 2MB, MAXSIZE = 20MB,
47
FILEGROWTH = 10%) GO
7.使用T-SQL语句修改数据库JXDB中次数据文件JXDB_Data4的属性:文件初始大小改为5M,增长方式改为每次按20%增长。删除日志文件JXDB_log1。 ALTER DATABASE JXDB
MODIFY FILE
(NAME = JXDB_Data4, SIZE = 5MB) GO
ALTER DATABASE JXDB
MODIFY FILE (NAME = JXDB_Data4, FILEGROWTH = 20%) GO
ALTER DATABASE JXDB REMOVE FILE JXDB_log1
8.使用T-SQL语句删除数据库JXDB。 DROP DATABASE JXDB 五、出现的问题及解决方法
附录6 建立学生-课程数据库ST及表
--[例] 建立学生-课程数据库“ST”,将数据文件和日志文件均存入文件夹:F:\\SQL2008DB。
--建立学生-课程数据库ST.sql use master
IF DB_ID(N'ST') IS NOT NULL --若数据库ST已存在, DROP DATABASE ST --则删除。 GO
CREATE DATABASE ST ON
(NAME=ST_Data, --主数据文件逻辑文件名 FILENAME = 'F:\\SQL2008DB\\ST_Data.mdf', --物理文件名 SIZE = 3MB, --初始大小 FILEGROWTH = 1MB, --自动增量 MAXSIZE = UNLIMITED) --最大容量 LOG ON
(NAME=ST_log, --日志文件逻辑文件名 FILENAME = 'F:\\SQL2008DB\\ST_log.ldf', --物理文件名 SIZE = 2MB, --初始大小 FILEGROWTH = 10%, --自动增量 MAXSIZE = UNLIMITED) --最大容量 GO use ST
48
if exists (select name from sysobjects where name='sc') drop table sc
if exists (select name from sysobjects where name='course') drop table course
if exists (select name from sysobjects where name='student') drop table student --建立学生表结构 create table student
(sno char(9) primary key, --学号 sname char(8) not null, --姓名 ssex char(2) check(ssex in('男','女')) default '男', --性别 sage smallint, --年龄 sdept char(20) --所在系 )
--建立带自定义约束名的学生表结构
if exists (select name from sysobjects where name='student') drop table student create table student
(sno char(9) constraint PK_student primary key, --学号 sname char(8) constraint NN_student_sname not null, --姓名 ssex char(2) constraint CK_student_ssex check(ssex in('男','女'))
constraint DF_student_ssex default '男', --性别 sage smallint, --年龄 sdept char(20) --所在系 )
--建立课程表结构 create table course
(cno char(4) primary key, --课号 cname char(16) unique, --课名 cpno char(4) references course(cno), --先行课号 ccredit smallint, --学分 );
--建立选修表结构 create table sc
(sno char(9), --学号 cno char(4), --课号 grade decimal(5,1) check(grade between 0 and 100), --成绩 primary key(sno,cno),
foreign key(sno) references student(sno) on delete cascade on update cascade, foreign key(cno) references course(cno)
on update cascade --省略on delete短语为no action方式 );
--向学生表插入数据
49
insert into student values('201313101','李勇','男',20,'CS'); insert into student values('201313102','刘晨','女',19,'CS'); insert into student values('201313103','王敏','女',18,'MA'); insert into student values('201313104','张立','男',19,'IS'); --向课程表插入数据
insert into course values('1','数据库',null,4); insert into course values('2','数学', null,2); insert into course values('3','信息系统','1',4); insert into course values('4','操作系统',null,3); insert into course values('5','数据结构',null,4); insert into course values('6','数据处理', null,2); insert into course values('7','C语言','6',4); update course set cpno='5' where cno='1' update course set cpno='6' where cno='4' update course set cpno='7' where cno='5'
/*编一“级联插入”触发器可解决先修课程cpno后录入问题*/ --向选修表插入数据
insert into sc values('201313101','1',92); insert into sc values('201313101','2',35); insert into sc values('201313101','3',88); insert into sc values('201313102','2',90); insert into sc values('201313102','3',50);
50