SQL 巢狀查詢 建立約束
------------------------巢狀查詢------------------------
use student
select *
from dbo.stu ----not in
where StudentName not in (select Student from dbo.students)
--- 在這裡還有一個關鍵字 exists 有記錄的時候返回true 否則就是返回false 不知道怎麼用
--下面介紹了一些巢狀用到的一些修改的比較操作符
-- >all 大於最大值
-- >any 大於列表中的最小值
-- =any 與in關鍵字一樣的意思
-- <>any 表示不等於列表中的值 ??
-- <>all 表示不等於列表中的所有值 它與not in 一樣的意思
--使用巢狀查詢 最高可以喲32級 當然前提是你伺服器的記憶體足夠大
----------其次的就是使用相關子查詢
--例如:
use AdventureWorks
select EmployeeID,Title,VacationHours
from HumanResources.Employee e1
where e1.VacationHours > (
select avg(e2.VacationHours)
from HumanResources.Employee e2 where e1.Title = e2.Title)
-----------------------建立約束-----------------------------
use student
drop table ss
create table ss
(
[name] varchar(50) not null,
[id] int identity(1,1) not null,
startTime datetime not null default getDate(),--預設約束
constraint aa primary key clustered--主鍵約束
(id ),
constraint bb unique --唯一約束
([name]),
constraint cc --外來鍵約束
foreign key ([name])
references dbo.tt, --指定表dbo.tt中的主鍵name來作為這個表的外來鍵
constraint ee check ([name] in ('a','b','c','d'))--檢查約束
)