A. 用sql SERVER 如何在建好表後添加外碼SQL語句怎麼寫呀
USE
D
--
咱們一下的操作都是在資料庫
D
中進行的。
GO
--學生表:
CREATE
TABLE
Student(
sid
int
primary
key,
sname
varchar(20)
)
--課程表:
CREATE
TABLE
Course(
cid
int
primary
key,
cname
varchar(20)
)
--成績表:
CREATE
TABLE
Grade(
sid
int
,
cid
int
,
score
int
)
--因為:1個學生+1個課程=1個成績。
--因此:Grade表是子表,Student和Course是父表。
--給成績表增加外鍵約束:
ALTER
TABLE
Grade
ADD
CONSTRAINT
Student_Grade_sid_fk
FOREIGN
KEY(sid)
REFERENCES
Student(sid)
ALTER
TABLE
Grade
ADD
CONSTRAINT
Course_Grade_cid_fk
FOREIGN
KEY(cid)
REFERENCES
Course(cid)
注意:如果Grade表中現有的數據違反了你要加入的約束。
則約束就會添加失敗。
解決的方法:
將表中違反約束的數據刪掉後就可以了。
B. sql創建外鍵語句
1、創建測試主表(班級表test_class),
create table test_class(class_id number, class_name varchar2(20));
C. 怎麼用sql語句實現兩個主碼的同時引用外碼
- CSDN
R中的某個欄位FK與W中的主碼PK對應,則FK成為W的外碼。外碼定義了兩個表之間的約束關系,W為主表(被參照表),R為從...
CSDN
D. 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的主鍵和外鍵就是起約束作用。
E. sql 添加外鍵語句
為資料庫表添加外鍵方法(以SqlSever2005資料庫為例):
1、新建兩張表,一張為主表,一張為副表。主表裡的外鍵就是連接到副表的主鍵。
F. SQL語言創建表時候怎麼定義主碼和外碼
SQL語言創建表時候用Primary Key(屬性名)定義主碼,用Foreign Key(屬性名)定義外碼。
主碼是一種唯一關鍵字,表定義的一部分。一個表的主碼可以由多個關鍵字共同組成,並且主碼的列不能包含空值。主碼是可選的,並且可在 CREATE TABLE語句中用Primary Key(屬性名)定義。
將一個表的值放入第二個表來表示關聯,所使用的值是第一個表的主鍵值(在必要時可包括復合主鍵值)。此時,第二個表中保存這些值的屬性稱為外鍵,用Foreign Key(屬性名)定義。
如:
CREATE TABLE Customer
(SID integer,
CID integer,
Last_Name varchar(30),
First_Name varchar(30),
PRIMARY KEY (SID),ForeignKey(CID名));
(6)設置SQL表的外碼的語句擴展閱讀:
主碼不應包含動態變化的數據,如時間戳、創建時間列、修改時間列等。實際上,因為主碼除了唯一地標識一行之外,再沒有其他的用途了,所以也就沒有理由去對它更新。如果主碼需要更新,則說明主碼應對用戶無意義的原則被違反了。
主碼應當由計算機自動生成。如果由人來對主碼的創建進行干預,就會使它帶有除了唯一標識一行以外的意義。一旦越過這個界限,就可能產生人為修改主碼的動機,這樣,這種系統用來鏈接記錄行、管理記錄行的關鍵手段就會落入不了解資料庫設計的人的手中。
G. 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
關系表名
(關系表內欄位)
H. 組合主碼外碼用sql語句怎麼寫
SQL語言創建表時候用Primary Key(屬性名)定義主碼,用Foreign Key(屬性名)定義外碼。
主碼是一種唯一關鍵字,表定義的一部分。一個表的主碼可以由多個關鍵字共同組成,並且主碼的列不能包含空值。主碼是可選的,並且可在 CREATE TABLE語句中用Primary Key(屬性名)定義。
將一個表的值放入第二個表來表示關聯,所使用的值是第一個表的主鍵值(在必要時可包括復合主鍵值)。此時,第二個表中保存這些值的屬性稱為外鍵,用Foreign Key(屬性名)定義。
結構化查詢語言(Structured Query Language)簡稱SQL,結構化查詢語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統。
sql語句就是對資料庫進行操作的一種語言。
總結如下:
主碼不應包含動態變化的數據,如時間戳、創建時間列、修改時間列等。實際上,因為主碼除了唯一地標識一行之外,再沒有其他的用途了,所以也就沒有理由去對它更新。如果主碼需要更新,則說明主碼應對用戶無意義的原則被違反了。
I. 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 才能利用。
J. sql如何在創建表時設置外鍵
1.直接寫sql語句。
2.用SQLyog 選擇外鍵表 ,點擊右鍵 選擇關聯/外鍵,然後再選擇主表,外鍵。
3.在表 vet_specialties 上點擊右鍵 ,然後找到Relationships/ForeignKeys中,然後選擇相應的列。
具體如下:
1、簡介
SQL語言,是結構化查詢語言(StructuredQueryLanguage)的簡稱。SQL語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。
2、應用信息
結構化查詢語言SQL(STRUCTURED QUERY LANGUAGE)是最重要的關系資料庫操作語言,並且它的影響已經超出資料庫領域,得到其他領域的重視和採用,如人工智慧領域的數據檢索,第四代軟體開發工具中嵌入SQL的語言等。
3、支持標准
SQL 是1986年10 月由美國國家標准局(ANSI)通過的資料庫語言美國標准,接著,國際標准化組織(ISO)頒布了SQL正式國際標准。1989年4月,ISO提出了具有完整性特徵的SQL89標准,1992年11月又公布了SQL92標准,在此標准中,把資料庫分為三個級別:基本集、標准集和完全集。