A. 組合主碼外碼用sql語句怎麼寫
SQL語言創建表時候用Primary Key(屬性名)定義主碼,用Foreign Key(屬性名)定義外碼。
主碼是一種唯一關鍵字,表定義的一部分。一個表的主碼可以由多個關鍵字共同組成,並且主碼的列不能包含空值。主碼是可選的,並且可在 CREATE TABLE語句中用Primary Key(屬性名)定義。
將一個表的值放入第二個表來表示關聯,所使用的值是第一個表的主鍵值(在必要時可包括復合主鍵值)。此時,第二個表中保存這些值的屬性稱為外鍵,用Foreign Key(屬性名)定義。
結構化查詢語言(Structured Query Language)簡稱SQL,結構化查詢語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統。
sql語句就是對資料庫進行操作的一種語言。
總結如下:
主碼不應包含動態變化的數據,如時間戳、創建時間列、修改時間列等。實際上,因為主碼除了唯一地標識一行之外,再沒有其他的用途了,所以也就沒有理由去對它更新。如果主碼需要更新,則說明主碼應對用戶無意義的原則被違反了。
B. SQL中主鍵和外鍵的定義是什麼
通俗的說吧
先說說主鍵(primary
key)吧:一張表(關系)的一個列(屬性)或多個列可以作為主鍵,但是前提是讓這個列作主鍵,這個列就能保證該列下的各個行(元組)的值不能相同,比如說你用姓名屬性作主鍵的話,那麼這個主鍵就不一定可以,如果有兩個人是同樣的名字的話,就不能做到該屬性下的各個元組數據的值不同,如果用阿拉伯數字作主鍵就是一個很好的選擇。
再說說外鍵(foreign
key):一張表(關系)的列(屬性)它同時存在表1和表2中,它不是表1的主鍵,而是表2的主鍵,就可以說他是表1的外鍵。
那麼什麼是候選鍵(Candidate
Key)呢:能唯一標識表(關系)中行(元組)的列(屬性),則稱該屬性為候選鍵,也稱
候選關鍵字
或
候選碼;由此來看候選鍵可以不只一個,還看一看得出的就是主鍵同時它也是候選鍵
C. 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的主鍵和外鍵就是起約束作用。
D. sql,如何用sql語句對一個已經編輯好的表在設置主碼和外碼
--修改主鍵
ALTER
TABLE
tablename
--修改表
ADD
CONSTRAINT
tb_PRIMARY
PRIMARY
KEY
CLUSTERED
(列名)
/*將你要設置為主鍵約束的列*/
--修改約束ALTER
TABLE
銷售表
--修改表
ADD
CONSTRAINT
ck_sl
--創建檢查約束
CHECK
(數量
>=
1
and
數量
<=
10000)
--添加約束條件
--修改外鍵alter
table
表名
add
constraint
外鍵名稱
foreign
key
(欄位)
references
關系表名
(關系表內欄位)
E. sql server2000裡面主碼和外碼 可不可以形象的解釋一下
主鍵和外鍵最重要的是保證數據的完整性和一致性。主鍵是本表的標識欄位,是唯一非空的,外鍵是描述了與其他表的關聯關系,有了這兩個約束條件可以使得資料庫的表有機的整合起來。主鍵應該比較要理解,可以是組合的也可以是單一欄位的,根據它就能篩選出唯一一條記錄,主鍵一般建議都需要。外鍵可以有也可以沒有,主要根據業務需求而定,如果不建立,對編程一般不會有什麼影響,但相應的錄入數據的時候就不對錄入的數據進行「參照完整性」檢查了。例如:
例如有兩個表
A(a,b)
:a為主鍵,b為外鍵(來自於B.b)
B(b,c,d)
:b為主鍵
如果我把欄位b的外鍵屬性去掉,對編程沒什麼影響。
如上面,A中的b要麼為空,要麼是在B的b中存在的值,有外鍵的時候,資料庫會自動幫你檢查A的b是否在B的b中存在。
建立外鍵原則:
1、
為關聯欄位創建外鍵。
2、
所有的鍵都必須唯一。
3、避免使用復合鍵。
4、外鍵總是關聯唯一的鍵欄位。
F. sql中的主鍵和外鍵怎麼用的
主鍵:primary key(id,name)
外鍵:FOREIGN KEY (id,name)
大概這個意思吧
G. 請問SQL server 中的主鍵和外鍵的作用
主鍵:唯一標識一條記錄,不能有重復的,不允許為空;外鍵:表的外鍵是另一表的主鍵, 外鍵可以有重復的, 可以是空值。
主鍵的作用是用來保證數據完整性,主鍵只能有一個。比如,一條記錄包括身份正號,姓名,年齡。身份證號是唯一能確定你這個人的,其他都可能有重復,所以,身份證號是主鍵。
外鍵的作用是用來和其他表建立聯系用的,一個表可以有多個外鍵。比如,A表中的一個欄位,是B表的主鍵,那他就可以是A表的外鍵。
H. SQL資料庫外鍵代碼
1.創建主測試表(test_class),
Createtabletest_class(class_idnumber,class_namevarchar2(20));
(8)sql外鍵和外碼擴展閱讀:
1.高可用性:
分布式組織的可擴展性,決策支持的數據倉庫功能,與許多其他伺服器軟體緊密相關的集成,良好的性價比,等等。
2.數據管理和分析的靈活性:
允許單位在快速變化的環境中做出冷靜的反應,從而獲得競爭優勢。從數據管理和分析的角度來看,將原始數據轉換為商業智能並充分利用Web的機會是很重要的。
作為一個完整的資料庫和數據分析軟體包,SQLServer為新一代企業業務應用的快速發展,為企業贏得核心競爭優勢打開了勝利之門。
I. 用SQL SERVER 如何在建好表後添加外碼SQL語句怎麼寫呀
1、打開SQL,選擇「WINDOWS身份驗證」,點擊連接。在左邊的框條中找到「資料庫「,右擊選擇」新建資料庫「,建立名為」test「的資料庫,其他默認。可以在資料庫下找到新建的test。
J. 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));