完整数据库创建步骤:
建库–>建表–>主键约束–>域完整性约束–>外键约束
接下来将按照数据库的建库步骤进行讲解
1.数据库的建立
首先要知道数据库的组成,一个数据库包含两部分,数据文件和日志文件,数据文件由主数据文件(.mdf)和次要数据文件(.ndf),主数据文件是必须要有的且只能有一个,次要数据文件(.ndf)可以有多个也可以没有。日志文件(.ldf)至少有一个。
创建数据库的Sql语句
use master -master是数据库的数据库,要创建一个数据库需要在master做一个备案,也
-就是注册相关信息
go
-创建数据库
Creat database StudentManageDB
on primary -创建主文件组,文件组是逻辑概念,主要目的是将文件分组管理。
(
name = 'StudentManageDB_data',-数据库文件的逻辑名,不用管这个,数据库内部
使用的,对外不可见,只要不重复就行了
filename = '绝对路径\StudentManageDB.mdf',- 主数据文件
size = 10MB, - 数据库文件初始大小
filegrowth = 5MB - 数据文件增长量,百分比也可以
)
- 如果想创建次要数据文件,只需要中间用逗号隔开接着写就行,比如:
,
(
name = 'StudentManageDB_data1',
filename = '绝对路径\StudentManageDB_data1.ndf',- 主文件组中的次要数据文件
size = 2MB, - 数据库文件初始大小
filegrowth = 50% - 数据文件增长量,百分比也可以
)
filegroup db3g1 --第2个文件组,文件组也是数据库内部管理用的,我们只看文件看不出来属于哪个组
(
name=''StudentManageDB_data2', --第2个文件组中的次数据文件
filename= '绝对路径\StudentManageDB_data2.ndf',- 次要数据文件
size = 2MB, - 数据库文件初始大小
filegrowth = 50% - 数据文件增长量,百分比也可以
maxsize = 30MB,
),
-创建日志文件
log on
(
name = 'StudentManageDB_log',
filename = '绝对路径\StudentManageDB_log.ldf',
size = 5MB, - 数据库文件初始大小
filegrowth = 2MB - 数据文件增长量,百分比也可以
)
-如果向再创建一个日志文件,只需要中间用逗号隔开接着写就行,比如:
,
(
name = 'StudentManageDB_log1',
filename = '绝对路径\StudentManageDB_log1.ldf',
size = 5MB, - 数据库文件初始大小
filegrowth = 2MB - 数据文件增长量,百分比也可以
)
go
以上就完成了一个简单数据库的创建,如果这个数据库看着不顺眼,想删除怎么办,当然由办法了,使用drop就行,比如:
-删除数据库
use master
go
-判断当前数据库是否存在
if exists(select * from sysdatabases where name = 'StudentManageDB')
drop database StudentManageDB - 删除数据库
go
-drop删除数据库之后不可恢复!
数据库创建完成之后就是数据表的创建了
创建数据表
creat table 表名
(
字段1 数据类型 列的特征
字段2 数据类型 列的特征
字段3 数据类型 列的特征
........
)
go
-举例说明
use StudentManageDB - 创建数据表需要在数据库里面,所以用use指向这个数据库,
-表示是在这个数据库里面创建数据表
go
if exists(select * from sysobjects where name = 'Students')
drop table Students
go
create table Students
(
StudentId int identity(10000,1) primary key, -学号(主键),使用自动标识列,
-从10000开始,每次递增1
StudentName varchar(20) not null,
Gender char(2) not null,
StudentIdNo numeric(18,0) not null - 身份证号
ClassId int not null - 班级编号(外键)
)
create table StudentClass
(
ClassId int primary key - 班级编号(主键)
ClassName varchar(20) not null
)
自动标识列:
该列必须是整数类型或者是没有小数位数的精确类型
标识种子:标识列的起始大小, identity(10000,1) 中的10000就是标识种子
标识增量:标识列每次的递增值, identity(10000,1) 中的1就是标识增量
标识列由系统自动维护,用户既不能自己输入数据也不能修改数值。
建完数据库和数据表,为了保证数据不重复不出错,还需要对数据进行完整性设计,那
么怎么对数据进行完整性设计呢,欲知后事如何,且听下回分解。。。
接下篇。