use tsql2012;
if object_id(
'dbo.employees'
,'u')is
notnull
drop
table dbo.employees;
create
table dbo.employees
( empid int
notnull
, firstname varchar(30
)not
null
, lastname varchar(30
)not
null
, hiredate date
notnull
, mgrid int
notnull
, ssn varchar(20
)not
null
, salary money not
null
);
use
確保建立物件時能夠連線到正確的資料庫
if
語句呼叫object_id
函式來檢查employees是否存已經存在於當前資料庫當中,其中u代表使用者表,若已經存在則返回內部物件的id,否則返回null
,若已經存在則則將其刪除。
對於每個屬性,可以指定屬性名稱、資料型別、以及值是否可為null
。
主鍵約束
主鍵約束強制行的唯一性,不允許為null
,約束屬性的值只能出現一次,且乙個表只能有乙個主鍵
alter
table dbo.employees
addconstraint pk_employees
primary
key(empid)
;
唯一約束
唯一約束強制行的唯一性,與主鍵約束不同,乙個表內可以定義多個唯一約束,唯一約束必須為not null
alter
table dbo.employees
addconstraint unq_employees_ssn
unique
(ssn)
;
外來鍵約束create
table dbo.orders
( orderid int
notnull
, empid int
notnull
, custid varchar(10
)not
null
, orderts datetime2 not
null
, qty int
notnull
,constraint pk_orders
primary
key(orderid));
alter
table dbo.orders
addconstraint fk_orders_employees
foreign
key(empid)
references dbo.employees(empid)
;--外來鍵是 empid 連線 employees表的empid屬性,其中orders是子表,employees是父表
引用表orders表中乙個或多個屬性指向被引用表employees(被引用表中的屬性必須是候選鍵,即主鍵or唯一約束)
引用表和被引用表可以是同一張表。
外來鍵列的值要存在與被引用的列中。
orders.empid ————————————> employees.empid (empid為primary_key)。
orders.empid列中的值必須存在於employees.empid列中。
no action
:當要刪除或更新被引用表(父表)中的值時如果引用表(子表)相關列中存在相關列則系統會拒絕操作
cascade
:級聯,父表刪除或更新,子表跟隨刪除或更新相關行
set null
:置為null
set default
:置為預設值
check約束
alter
table dbo.employees
addconstraint chk_employees_salary
check
(salary >
0.00
)
插入或者修改某行中的值時要滿足check
約束
預設約束
alter
table dbo.orders
addconstraint dft_orders_orderts
default
(sysdatetime())
for orderts
sysdatetime()
這是乙個用作預設值的表示式,如果插入時沒有指定乙個顯示值,將使用該預設值,以上為例orderts在新增一行時沒有指定值時,會預設插入系統時間。 建立表和定義資料完整性
create database tsql2012 use tsql2012 查詢所有資料庫名 sysdatabases主資料庫伺服器中的資料庫 select name from sysdatabases order by name 查詢資料庫當前資料庫下所有表名 sysobjects系統表,在資料庫...
實驗2 建立表和定義完整性約束
實驗名稱 建立模式 表和定義完整性約束。實驗內容 在實驗1建立的資料庫的基礎上,參照圖3 4和表3 10建立表和定義完整性約束。實驗目的 熟練掌握表的建立和資料完整性速描定義方法,實踐dbms提供的資料完整性功能,加深對資料完整性的理解。實驗方法 在實驗一建立資料庫的基礎上用create table...
C 第一章定義建構函式
c 程式結構 包含主函式的程式檔案 h 檔案使用者自定義的各種類的標頭檔案,建議乙個 h檔案中只說明一種類。cpp 使用者自定義各種類的實現檔案。建構函式是一種能夠自定初始化物件的特殊成員函式。建構函式是和類同名的成員函式 接下來,我們定義乙個clock類 clock.h include class...