第一章 建立表及定義資料完整性

2021-10-02 15:00:47 字數 2753 閱讀 8199

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...