Ⅰ sql server怎樣創建主外鍵關系
Sqlserver怎樣創建主外鍵關系的方法。
如下參考:
1.為了幫助你理解,用一個例子來幫助你理解。它基本上是指通過引用表2中的欄位來約束表1中的欄位。
Ⅱ 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
關系表名
(關系表內欄位)
Ⅲ 用SQL SERVER 如何在建好表後添加外碼SQL語句怎麼寫呀
1、打開SQL,選擇「WINDOWS身份驗證」,點擊連接。在左邊的框條中找到「資料庫「,右擊選擇」新建資料庫「,建立名為」test「的資料庫,其他默認。可以在資料庫下找到新建的test。
Ⅳ sql用命令創建主鍵與外鍵。
創建SQL的主鍵和外鍵約束的方法:
--在創建表時就可以對欄位加上約束:
create table Student
(
StudentNo int PRIMARY KEY IDENTITY(1,1), --加主鍵約束,還有標識列屬性(兩者構成實體完整性)
StudentName nvarchar(15) not null, --加非空約束,不加"not null" 默認為:可以為空
StudentSchool text(20) FOREIGN KEY REFERENCES SchoolTable(SchoolName), --加外鍵約束,格式:FOREIGN KEY REFERENCES 關聯的表名(欄位名)
StudentAge int DEFAULT ((0)), --加默認值約束
StudentSex nvarchar(2) CHECK(StudentSex=N'男' or StudentSex=N'女') --加檢查約束,格式:check (條件表達式)
)
--如果在表創建好了以後再加約束,則格式分別為:
-- 主鍵:
alter table 表名
add constraint PK_欄位名--"PK"為主鍵的縮寫,欄位名為要在其上創建主鍵的欄位名,'PK_欄位名'就為約束名
primary key (欄位名) --欄位名同上
--唯一約束:
alter table 表名
add constraint UQ_欄位名
unique (欄位名)
--外鍵約束:
alter table 表名
add constraint FK_欄位名--"FK"為外鍵的縮寫
foreign key (欄位名) references 關聯的表名(關聯的欄位名) --注意'關聯的表名'和'關聯的欄位名'
alter table 表A add constraint FK_B foreign key (ticket_no) references 表B(ticket_no)
alter table 表A add constraint FK_C foreign key (person_no) references 表C(person_no)
alter table 成績表 add constraint FK_StudentNo foreign key (StudentNo) references Student (StudentNo)
ON UPDATE CASCADE ON DELETE CASCADE
級聯更新,級聯刪除,這樣在刪除主表Student時,成績表中該學生的所有成績都會刪除。
--檢查約束:
alter table 表名
add constraint CK_欄位名
check (條件表達式) --條件表達式中的條件用關系運算符連接
--默認值約束:
alter table 表名
add constraint DF_欄位名
default '默認值' for 欄位名--其中的'默認值'為你想要默認的值,注意'for'
--刪除創建的約束:
alter table 表名
drop constraint 約束名--約束名為你前面創建的如:PK_欄位這樣的約束名
--注意:如果約束是在創建表的時候創建的,則不能用命令刪除
--只能在'企業管理器'裡面刪除
參考資料 : http://www.studyofnet.com/news/92.html
希望以上的回答能夠幫到你
Ⅳ sql 主碼和外碼
表外建主鍵:alter table 課程表add constraint major_id_pk primary key(課程號);表外建外碼:alter table 成績表add constraint major_id_fk foreign key
(課程號) references 課程表(課程號);成績表外碼 課程號 參照課程表 課程號
Ⅵ sql用命令創建主鍵與外鍵。
1、為了方便大家理解,使用一個例子來幫助大家理解。意思大概就是通過引用表二中的欄位完成對表一欄位的約束。方法:
Ⅶ SQL建表語句,有主外鍵
一、創建表約束
語法:
ALTER
TABLE
table_name
ADD
CONSTRAINT
constraint_name
constraint_type
constraint_definition
table_name
要修改的表的名稱
constraint_name
約束的名稱
constraint_type
約束的類型,有以下四種:
PRIMARY
KEY
主鍵約束
FOREIGN
KEY
外鍵約束
CHECK
檢查約束
UNIQUE
唯一約束
constraint_defintion
約束的定義,不同的約束種類約束的定義是不一樣的,每種約束的定義如下:
PRIMARY
KEY
(field_list)
FOREIGN
KEY
(source_field_name)
REFERENCES
target_table(target_field_name)
CHECK
(condition)
UNIQUE
(field_name)
例如:
1.
將Topic表的Id欄位修改為主鍵
ALTER
TABLE
Topic
ADD
CONSTRAINT
PK_Topic
PRIMARY
KEY
(Id)
2.
Reply表的TopicId欄位引用Topic表的Id欄位
ALTER
TABLE
Reply
ADD
CONSTRAINT
FK_Reply_Topic
FOREIGN
KEY
(TopicId)
REFERENCES
Topic(Id)
3.
Student表的Sex欄位必須填寫「男」或「女」
ALTER
TABLE
Student
ADD
CONSTRAINT
CHK_Sex
CHECK(Sex='男'
OR
Sex='女')
二、刪除表約束
語法:
ALTER
TABLE
table_name
DROP
CONSTRAINT
constraint_name
Ⅷ sql,如何用sql語句對一個已經編輯好的表在設置主碼和外碼
sql中的主碼和外碼,屬於索引,SQL索引有兩種,聚集索引和非聚集索引,索引主要目的是提高了SQLServer系統的性能,加快數據的查詢速度與減少系統的響應時間
創建索引的語法:
CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEXindex_name
ON{table_name|view_name}[WITH[index_property[,....n]]
說明:
UNIQUE:建立唯一索引。
CLUSTERED:建立聚集索引。
NONCLUSTERED:建立非聚集索引。
Index_property:索引屬性。
UNIQUE索引既可以採用聚集索引結構,也可以採用非聚集索引的結構,如果不指明採用的索引結構,則SQLServer系統默認為採用非聚集索引結構。
刪除索引語法:
DROPINDEXtable_name.index_name[,table_name.index_name]
說明:table_name:索引所在的表名稱。
index_name:要刪除的索引名稱。
修改索引的語法:
ALTER INDEX命令在其用來做什麼方面多少有些欺騙性。截止到現在,ALTER命令總是與修改對象的定義有關。例如ALTER表以添加或禁用約束和列。ALTER INDEX是不同的-該命令與維護有關,而與結構完全不相干。如果需修改索引的組成,那麼只能DROP然後CREATE索引,或者用DROP_EXISTING=ON選項CREATE並使用索引。
ALTER INDEX {<name of index> | ALL}
ON<table or view name>
{ REBUILD
[[ WITH (
[PAD_INDEX = {ON | OFF}]
| [[,] FILLFACTOR = <fillfactor>
| [[,] SORT_IN_TEMPDB = { ON | OFF }]
| [[,] IGNORE_DUP_KEY = { ON | OFF }]
| [[,] STATISTICS_NORECOMPUTE = { ON | OFF }]
| [[,] ONLINE = { ON| OFF }]
| [[,] ALLOW_ROW_LOCKS = { ON | OFF }]
| [[,] ALLOW_PAGE_LOCKS = { ON | OFF }]
| [[,] MAXDOP = <max degree of parallelism>
)]
|[ PARTITION = <partition number>
[ WITH (< partition rebuild index option>
[,...N])]]]
| DISABLE
| REORGANIZE
[ PARTITION = <partition number> ]
[ WITH (LOB_COMPACTION = { ON | OFF })]
| SET ([ ALLOW_ROW_LOCKS = { ON | OFF} ]
| [[,] ALLOW_PAGE_LOCKS = { ON | OFF } ]
| [[,] IGNORE_DUP_KEY = { ON | OFF } ]
| [[,] STATISTICS_NORECOMPUTE = { ON | OFF }]
)
}[;]
Ⅸ sql server 2008如何設置外碼
用關鍵語句:foreign key ...(屬性名) references ....表名+(屬性名)
下邊舉例說明:
create table Student /*建立一個學生表*/
Sno char(8),
Sname char(6) unique not null default 'wang',
Ssex char(2) check(Ssex='男'or Ssex='女') not null,
Sage smallint not null check(Sage<150),
Sdept char(20) not null,
primary key(Sno)
create table Course /*建立課程表*/
(Cno char(3) primary key ,
Cname char(20) not null,
Cpno char(3) foreign key references Course(Cno), /*這里是自引用主碼*/
Ccredit smallint,
--foreign key Cpno references Course(Cno)
create table SC /*建立學生選課表*/
(Sno char(8) ,
Cno char(3) not null ,
Grade smallint not null,
--foreign key Sno references Student(Sno)
primary key (Sno,Cno), /*主碼由兩個屬性構成*/
foreign key (Sno) references Student(Sno), /*引用學生表的主碼Sno*/
foreign key (Cno) references Course(Cno) /*引用課程表的主碼Cno*/
(9)sql如何創建表並且定義主碼和外碼擴展閱讀
SQL Server 有兩個接畝旅喊口可以認為是 SQL Server 7.0 的本機介面,即 OLE-DB 和 ODBC。DB-Library 介面也是本機的,它與 TDS 通信,但是 DB-Library 使用的迅野是 TDS 較老的版本,需要在伺服器上進行一些轉換。
現有的 DB-Library應用程序仍然可以繼續與 SQL Server 7.0 協同使用,但是很多新的功能和性能提高等好處只能通過 ODBC 和 OLE DB 才能利用。
參鎮頌考資料來源:網路-Microsoft SQL Server