创建数据库及数据完整性定义
1 创建数据库:
USE master
GO
IF EXISTS (SELECT * FROM sysdatabases WHERE name='销售管理')
DROP DATABASE 销售管理
CREATE DATABASE 销售管理
ON PRIMARY(
NAME = SalesData,
FILENAME = 'D:\SalesData_1.mdf',
SIZE = 50MB,
MAXSIZE = unlimited,
FILEGROWTH = 20%
),
( NAME = SalesD,
FILENAME = 'D:\SalesData_2.ndf',
SIZE = 50MB,
MAXSIZE = unlimited,
FILEGROWTH = 10MB
)
LOG ON (
NAME = SalesLog, -
FILENAME = 'D:\SalesLog.ldf',
SIZE = 10MB,
MAXSIZE = 50MB,
FILEGROWTH = 10MB
)
查看系统中的数据库:
exec sp_helpdb 数据库名称
不带参数时,显示系统所有的数据库
2 修改数据库:
(1)修改数据库名称
Alter database 数据库名称
Modify name = your_new_name
)
(2)增大文件大小
Alter database 数据库名称
Modify file(
Name= ‘你要修改的文件的逻辑名称’,
Size|maxsize|filegrowth = ‘你要输入的修改后的值’
(3)减小文件容量:
USE 销售管理;
GO
DBCC SHRINKFILE (sales1, 60);
GO
(4)添加文件
添加数据库文件
alter database 销售管理
add file(
name='sales3',
filename='d:\sales_data3.ndf',
size = 10MB,
maxsize=20MB,
filegrowth = 10%
)
3自定义数据类型:
exec sp_addtype telephone , 'char(11)', 'not null'
exec sp_addtype @typename= 'telephone1',
@phystype= 'char(11)',
@nulltype = 'not null'
exec sp_droptype telephone
select * from information_schema.domains
4 表的约束:
(1)check
(2)unique
(3)foreign key
(4)级联更新cascade
(5)with nocheck
(6)对含有identify()字段表插入数据
(1)check约束
alter table 表的名字
add constraint CK_EmpNo check(emp_no like '[0-9][0-9][0-9]')
在建表语句中写 : constaraint CK_EmpNo check(emp_no like '[0-9][0-9][0-9]')
修改或增加表的约束时,添加 with nocheck 可以不检查以前插入的数据。
alter table Employees with nocheck
add constraint CK_EmpNo check(emp_no like '[0-9][0-9][0-9][0-9]')
(2)unique 约束
alter table 表的名字
add constraint UI_EmpNo unique(telephone)
在建表语句列的后面直接写 : unique
(3)foreign key
alter table 表的名字
add constraint FK_DepNO foreign key (Dep_no) references Department(Dep_no)
在建表语句中写 : foreign key (Dep_no) references Department(Dep_no)
(4)级联更新
foreign key (dep_no) references department(dep_no) on cascade
alter table Employees
add constraint FK_DepNO foreign key(dep_no) references Department(dep_no) on update cascade
(5) with nocheck
alter table Employees with nocheck
add constraint CK_EmpNo check(emp_no like '[0-9][0-9][0-9][0-9]')
(6) 对含有identify 字段的表插入数据
对于含有自增长序列的表,插入数据前;
Set identity_insert Purchase_bak on
插入数据后:
Set identity_insert Purchase_bak off