第二章 数据库的实现
2.1 T-SQL语句回顾 在《使用SQL Server管理和查询数据》中,我们学习过T-SQL语句,它是Microsoft SQL Server 数据库对SQL语句的扩展,T-SQL语句的数据操作语法如下。 1. 添加数据 语法:Insert [into] 表名 (字段1,字段2,) Values (值1,值2,) 其中,
2.1 T-SQL语句回顾
在《使用SQL Server管理和查询数据》中,我们学习过T-SQL语句,它是Microsoft SQL Server 数据库对SQL语句的扩展,T-SQL语句的数据操作语法如下。
1. 添加数据
语法:Insert [into] 表名 (字段1,字段2,···) Values (值1,值2,···)
其中,Into 可选。
例如: Insert into stuInfo (stuName, stuNo, stuAge) values ('张三', 's25301', 22)
2. 修改数据
语法:Update 表名 set 字段1 = 值1 , 字段2 = 值2,··· Where (条件)
例如:Update StuInfo set stuAge = 24 where stuName = '张三'
3. 查询数据
语法:Select 字段1,字段2,··· from 表名 where (条件) Order by 字段名
例如:Select stuName, stuNo from stuInfo where stuAge
4. 删除数据
语法:Delete from 表名 where (条件)
例如:Delete from stuInfo where stuAge
当项目经测试基本满足客户的需求后,需要部署在客户的实际环境中试运行。我们在部署前需要考虑的是,后台的数据库如何移植到客户的计算机中?考虑各种数据库版本的兼容性,行之有效的办法就是编写比较通用的SQL语句,包括创建库、创建表、添加约束、插入测试数据等。编写完毕后,存入*.sql文件中,最后复制到客户的计算机中,并执行*.sql文件中的SQL语句,从而实现后台数据库的移植。所以,我们还需要掌握如何使用SQL语句,实现创建库、创建表、添加约束和创建登录账户等。
2.2 使用SQL语句创建和删除数据库
我们先简要回顾一下SQL Server数据库的基础知识。
数据库文件由以下3部分组成。
》》》主数据文件:*.mdf。
》》》次要数据文件:*.ndf。
》》》日志文件:*.ldf。
其中,次要数据文件库可选,可以有多个数据库文件和日志文件。
数据库文件的其他属性。
》》》文件存放位置,分配的初始空间,属于哪个文件组。
》》》文件的增长设置,可以按百分比或实际大小指定增长速度。
》》》文件容量设置,网站空间,可以指定文件增长的最大值或不受限。
其中,文件组允许对数据文件进行分组,以便于管理和数据的分配/放置。例如,可以分别在3个硬盘驱动器上创建3个文件(Data1.mdf,Data2.ndf和Data3.ndf),并将这3个文件指派到文件组fgroup1中。然后,可以明确地在文件组fgroup1中创建一个表。对表中数据的查询将分散到3个磁盘上,可以采用并发查询,因而性能得以提高。
2.2.1 创建数据表
T-SQL创建数据库的语法如下:
Creat Database 数据库名
On [PRIMARY]
(
[,···n] []
)
[Log on]
(
{[,···n]}
)
文件的具体参数的语法如下。
([Name = 逻辑文件名,]
FileName = 物理文件名
[, Size = 大小]
[, MaxSize = (最大容量 | Unlimited)]
[, Filegrowth = 增长量]) [,···n]
文件组参数的语法如下。
Filegroup 文件组名 [,···n]
其中,“[]”表示可选部分,“{}”表示必需的部分。各参数的含义说明如下。
》》》数据库名:数据库的名称,最长为128个字符。
》》》Primary:该选项是一个关键字,指定主文件组中的文件。
》》》Log on:指明事务日志文件的明确定义。
》》》Name:指定数据库的逻辑名称,这是在SQL Server系统中使用的名称,是数据库在SQL Server中的标识符。
》》》FileName:指定数据库所在文件的操作系统文件名称和路径,该操作系统文件名和Name的逻辑名称一一对应。
》》》Size:指定数据库的初始容量大小。
》》》Maxsize:指定操作系统文件可以增长到的最大尺寸。
》》》Filegrowth:指定文件每次增加容量的大小,当指定数据为0时,表示文件不增长。
示例一:
创建一个数据文件和一个日志文件。
Create Database stuDB
on primary --默认就属于primary主文件组,可省略
(
/*-- 数据文件的具体描述 --*/
Name = 'stuDB_data', --主数据文件的逻辑名称
filename = 'D:\stuDB_data.mdf', --主数据文件的物理名称
size = 5mb, --主数据文件的初始大小
Maxsize = 100mb, --主数据文件增长的最大值
Filegrowth = 15%, --主数据文件的增长率
)
Log on
(
/*-- 日志文件的具体描述,各参数含义同上 --*/
Name = 'stuDB_log',
FileName = 'D:\stuDB_log.ldf',
size = 2mb,
Filegrowth = 1mb
)
go --和后续的SQL语句分隔开
在示例1中创建了学员信息数据库stuDB,该数据库的主数据文件逻辑名称为stuDB_data,物理文件名称为stuDB_data.mdf,初始大小为5MB,最大尺寸为100MB,增长速度为15%。数据库的日志文件逻辑名称为stuDB_log,物理文件名称为stuDB_log.ldf,初始大小为2MB,增长速度为1MB。该数据库存放在D:盘。
示例二:
创建多个数据文件和多个日志文件。
Create DataBase employees
on Primary
(
/*-- 主数据文件的具体描述 --*/
Name = 'employees1',
FileName = 'D:\employees1.mdf',
Size = 10,
Filegrowth = 10%,
),
(
/*-- 次要数据文件的具体描述 --*/
Name = 'employee2',
FileName = 'D:\employee2.ndf',
Size = 20,
MaxSize = 100,
FileGrowth = 1
)
Log On
(
/*-- 日志文件1的具体描述 *--/
Name = 'employeelog1',
FileName = 'D:\employeelog1_log.ldf',
Size = 10,
MaxSize = 50,
FileGrowth = 1
)
(
/*-- 日志文件2的具体描述 *--/
Name = 'employeelog2',
FileName = 'D:\employeelog2_log.ldf',
Size = 10,
MaxSize = 50,
FileGrowth = 1
)
go -- 和后续的SQL语句分隔开