A. 怎麼在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的主鍵和外鍵就是起約束作用。
B. 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));
C. sql 添加外鍵語句
為資料庫表添加外鍵方法(以SqlSever2005資料庫為例):
1、新建兩張表,一張為主表,一張為副表。主表裡的外鍵就是連接到副表的主鍵。
D. sql語句中主外鍵怎麼弄
sql ce表中建立外鍵約束的語法:CREATE TABLE DetectTable(UserID integer,StartTime datetime not null,EndTime datetime not null,MassName nvarchar(10), foreign key (UserID) references UserTable(UserID)),其中,UserID為UserTable表中的主鍵。
也可以在創建資料庫關系圖直接拖
在資料庫關系圖上右鍵-->新建關系圖-->添加表
然後直接用滑鼠拖欄位連接就可以建立外鍵約束了
E. sql語句主外鍵關聯
單從你給定的條件來看,這兩個表是不能關聯,因為兩個表沒有共同的欄位。
不過從應用角度來看,應該在員工表中再設立一個欄位deptid(部門編號),表示該員工所屬的部門,這樣部門和員工表就可以關聯,其本質就是將員工表的deptid欄位設為外鍵,其操作命令如下:
ALTER TABLE 員工
ADD CONSTRAINT fk_deptid FOREIGN KEY(deptid) REFRENCES 部門(deptid)
F. 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的主鍵和外鍵就是起約束作用。
G. 既是主鍵又是外鍵的SQL語句怎麼寫
SQL語句:把SC表中每門課程的平均成績插入到另一個已存在的表SC_C(C#,CNAME, AVG_GRADE)中,其中 AVG_GRADE 為每門課程的平均成績。寫出檢索 全是 女同學 選修的課程的課程號的SQ。
教務管理資料庫中包含「學生」、「課程」兩張表。請書寫 SQL語句來創建一張名為「選課成績1」的表,裡麵包含學號、課程號和選課成績三個欄位並指定主鍵和外鍵,資料庫主鍵(Primary Key):指的是一個列或多列的屬性組合,其屬性值能唯一標識一條記錄,通過它可強製表的實體完整性。
簡介
SQL語言1974年由Boyce和Chamberlin提出,並首先在IBM公司研製的關系資料庫系統SystemR上實現。由於它具有功能豐富、使用方便靈活、語言簡潔易學等突出的優點,深受計算機工業界和計算機用戶的歡迎。
1980年10月,經美國國家標准局(ANSI)的資料庫委員會X3H2批准,將SQL作為關系資料庫語言的美國標准,同年公布了標准SQL,此後不久,國際標准化組織(ISO)也作出了同樣的決定。
H. 設置外鍵sql語句
altertablepostaddconstraintfk_userIdforeignkey(userId)referencesuser(userId)
I. SQL主外鍵查詢語句
這是SQL課程里比較典型的資料庫結構和查詢例子了,就是一個多表連接查詢的例子。course表裡一般存的是課程信息,student表存儲學生信息。這兩個表一般是沒有關系的,應該還有一個選課表,如sc表,存放學生選課的情況和考試成績
如果你的course表存放了學生課程成績之類信息的話,可以這樣查
select c.sid,sname,courseid,score
from student s join course c
on s.sid=c.sid
不過具體寫法還要看你的表結構。