外鍵sql
『壹』 sql創建外鍵語句
1、創建測試主表(班級表test_class),
create table test_class(class_id number, class_name varchar2(20));
『貳』 怎麼在SQL中設置外鍵
sql server中建立外鍵約束有3中方式:enterprise manager中,tables,design table,設置table的properties,可以建立constraint, reference key;enterprise manager中,diagrams, new diagrams,建立兩個表的關系;直接用transact sql語句。
1、三個方法都需要先建立數據表。
1)創建表author :
create table [dbo].[author] (
[id] [bigint] not null ,
[authorname] [char] (10) null ,
[address] [char] (480) null ,
[introction] [ntext] null
)
2)創建表mybbs:
reate table [dbo].[mybbs] (
[id] [bigint] identity (1, 1) not null ,
[authorid] [bigint] not null ,
[title] [char] (40) null ,
[date_of_created] [datetime] null ,
[abstract] [char] (480) null ,
[content] [ntext] null
)
2、設置表mybbs中的authorid為外鍵,參照author表的id欄位,直接使用transact sql語句,過程如下:
1)增加表mybbs(authorid)的外鍵約束fk_mybbs_author,表mybbs中的authorid受表author中的主鍵id約束:
begin transaction
alter table dbo.mybbs add constraint fk_mybbs_author
foreign key (authorid)
references dbo.author([id]) on update cascade on delete cascade
2)刪除外鍵約束fk_mybbs_author:
--alter table dbo.mybbs drop constraint fk_mybbs_author
--rollback
commit transaction
上面on update cascade,on delete cascade兩個選項,指明以後author表的id欄位有delete,update操作時,mybbs表中的id也會被級聯刪除或更新。如果沒有選中,是不可以對author表中已被mybbs表關聯的id進行update或者delete操作的。
拓展資料:
SQL的主鍵和外鍵的作用:
1、插入非空值時,如果主鍵表中沒有這個值,則不能插入。
2、更新時,不能改為主鍵表中沒有的值。
3、刪除主鍵表記錄時,你可以在建外鍵時選定外鍵記錄一起級聯刪除還是拒絕刪除。
4、更新主鍵記錄時,同樣有級聯更新和拒絕執行的選擇。
簡而言之,SQL的主鍵和外鍵就是起約束作用。
『叄』 sql中外鍵怎麼寫
1、創建測試表;
create table test_class(class_id varchar2(10), class_name varchar2(30));
create table test_student(student_id varchar2(10), student_name varchar2(30), class_id varchar2(10));
『肆』 sql怎麼設置外鍵
創建資料庫時就是有主鍵的創建了主鍵,但是表之間的關系沒有聯系,要建資料庫關系圖只有主鍵沒有外鍵時不行的。
建外鍵的前提是此外鍵必須是另外一個表的主鍵。建外鍵的步驟:
第一步、打開要建外鍵表的設計器,右擊選擇「關系」。
第二步、然後彈出「外鍵關系」窗體,我們選擇「添加」,然後點擊「表和列規范」後面的小按鈕。
第三步、彈出另外一個窗體讓我們選擇主鍵表和列,記住要選擇相同的,選好之後點擊確定。
第四步、展開INSERT和UPDATE規范,在更新規則和刪除規則有四個選項,分別是「不執行任何操作」、「級聯」、「設置為NULL」、「設置默認值」。
默認的不執行任何操作。如果是「不執行任何操作」,當我們刪除或更新主鍵表的數據時,會告訴用戶不能執行刪除或更新該操作。
「級聯」的意思是當我們刪除或更新主鍵表的數據時,會刪除或更新外鍵表中所涉及的相關數據的所有行。
「設置Null」的意思是當我們刪除或更新主鍵表的數據時,外鍵表中的外鍵列的值會設為Null,但前提是該列允許為空。
「設置默認值」的意思是如果我們將外鍵列定義了默認值,當我們刪除或更新主鍵表的數據時,外鍵表中的外鍵列的值設為定義的默認值。
當然也可以用代碼創建,在創建資料庫表T——Card時只要加上一句代碼就可以了。「Foreign
key
(studentNo)
references
T_Student(studentNo)"。如果已經創建了改表,那如何用代碼實現了,這也很簡單也就一句代碼「
add
constraint
CMPKey(外鍵名)
foreign
key(studentNo)
references
T_Student(studentNo)」。
『伍』 SQL資料庫外鍵代碼
1.創建主測試表(test_class),
Createtabletest_class(class_idnumber,class_namevarchar2(20));
(5)外鍵sql擴展閱讀:
1.高可用性:
分布式組織的可擴展性,決策支持的數據倉庫功能,與許多其他伺服器軟體緊密相關的集成,良好的性價比,等等。
2.數據管理和分析的靈活性:
允許單位在快速變化的環境中做出冷靜的反應,從而獲得競爭優勢。從數據管理和分析的角度來看,將原始數據轉換為商業智能並充分利用Web的機會是很重要的。
作為一個完整的資料庫和數據分析軟體包,SQLServer為新一代企業業務應用的快速發展,為企業贏得核心競爭優勢打開了勝利之門。
『陸』 sql 添加外鍵語句
為資料庫表添加外鍵方法(以SqlSever2005資料庫為例):
1、新建兩張表,一張為主表,一張為副表。主表裡的外鍵就是連接到副表的主鍵。
『柒』 SQL中什麼叫主鍵,什麼是外鍵,有啥關系
說簡單點就是,主鍵就是唯一標識一列的約束,外鍵就是數據引用主鍵的一個約束兩者的關系就是,主鍵值必須是唯一的,也就是不能重復,外鍵引用了主鍵,那麼它的值就只能是主鍵中出現過的值,不能是主鍵未出現的值
『捌』 SQL 外鍵關系如何確定
外鍵約束定義是的表之間的關系、維護兩張表之間的一致性。
關聯的兩張表、如果其中一張表需要引用另外一張表的主鍵來做它的欄位時,該欄位就叫外鍵。
你要建立外鍵就需要按照你的需求來建立唄。
『玖』 SQL中主鍵和外鍵的定義是什麼
通俗的說吧
先說說主鍵(primary
key)吧:一張表(關系)的一個列(屬性)或多個列可以作為主鍵,但是前提是讓這個列作主鍵,這個列就能保證該列下的各個行(元組)的值不能相同,比如說你用姓名屬性作主鍵的話,那麼這個主鍵就不一定可以,如果有兩個人是同樣的名字的話,就不能做到該屬性下的各個元組數據的值不同,如果用阿拉伯數字作主鍵就是一個很好的選擇。
再說說外鍵(foreign
key):一張表(關系)的列(屬性)它同時存在表1和表2中,它不是表1的主鍵,而是表2的主鍵,就可以說他是表1的外鍵。
那麼什麼是候選鍵(Candidate
Key)呢:能唯一標識表(關系)中行(元組)的列(屬性),則稱該屬性為候選鍵,也稱
候選關鍵字
或
候選碼;由此來看候選鍵可以不只一個,還看一看得出的就是主鍵同時它也是候選鍵
『拾』 SQL如何建立外鍵請教高手了
資料庫mysql
建立外鍵的前提:
本表的列必須與外鍵類型相同(外鍵必須是外表主鍵)。
外鍵作用:
使兩張表形成關聯,外鍵只能引用外表中的列的值!
指定主鍵關鍵字:
foreign
key(列名)
引用外鍵關鍵字:
references
<外鍵表名>(外鍵列名)
事件觸發限制:
on
delete和on
update
,
可設參數cascade(跟隨外鍵改動),
restrict(限制外表中的外鍵改動),set
Null(設空值),set
Default(設默認值),[默認]no
action
例如:
outTable表
主鍵
id
類型
int
創建含有外鍵的表:
create
table
temp(
id
int,
name
char(20),
foreign
key(id)
references
outTable(id)
on
delete
cascade
on
update
cascade);
說明:把id列
設為外鍵
參照外表outTable的id列
當外鍵的值刪除
本表中對應的列篩除
當外鍵的值改變
本表中對應的列值改變。
自己實踐
才能完全了解外鍵的作用
關鍵是:事件觸發限制的作用