創建數據庫及定義數據完整性

創建數據庫及數據完整性定義

1 創建數據庫:

USE master             --設置當前數據庫爲master ,以便找到存儲數據庫信息的表  sysdatebases
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%			--文件的增長率爲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




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章