創建數據庫及數據完整性定義
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