<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
主鍵:表中能夠唯一地辨別事物的屬性。通過主鍵能夠查詢出表中一條完整的記錄,同時使用主鍵能防止表中出現重複的記錄,避免了資料的冗餘。
外來鍵:通俗講就是表中一個屬性是來自另一張表的主鍵,該屬性被稱為該表的外來鍵,外來鍵可以有不止一個。外來鍵存在的意義就是將事物與事物之間聯絡起來。
舉了一個學生、課程以及學生成績關係表的例子:
--程式碼 create table [表名] ( 屬性名 型別 primary key, 屬性名 型別 foreign key references [外來鍵來自的表](外來鍵的屬性名), 屬性名 型別 not null, 屬性名 型別 null, ··· ···); --範例 create table Student( --建立Student表 Stu_id varchar(10) primary key, --學號Stu_id設定為主鍵 Stu_name nvarchar(10) not null, --學生姓名 Stu_sex nvarchar(2) default '男'); --學生性別,設定預設值為'男' create table Course( --建立課程資訊表Course Course_id varchar(4) primary key, --課程編號Course_id設定為主鍵 Course_name varchar(10) not null); --課程姓名 create table StudentGrade( --建立成績表 stu_id varchar(10) foreign key references Student(Stu_id), --學生學號設定為外來鍵 Course_id varchar(4) foreign key references Course(Course_id), --課程號設定為外來鍵 Grade int null); --學生成績
1) 設定主鍵
a.在已建立Student表的前提下,點選Student表,右擊,選擇<設計>
b.選擇屬性Stu_id,右擊,選擇設定主鍵
設定完成,Course表主鍵設定同上。
2)設定外來鍵
a.選擇StudentGrade表,如1)中a所示選擇<設計>
b.選擇屬性Stu_id,右擊,選擇<關係>
c.在彈出的視窗選擇<新增>
d.點選表和列規範最右邊的三個小點(白色背景可能看不到,但點最右邊也差不多了)
e.關係名可以重新編輯,最好是能讓自己記得住或看得懂含義的名字。將主鍵表和外來鍵表設定完後點選右下方確認即可。
剛開始上課的時候我就有點搞不清主鍵表與外來鍵表,特別是設定的這張圖裡,
(假設正在設定的這張StudentGrade表稱為本表,其他表相對地稱為外表),我認為外來鍵表應該是指外來鍵本來所在的表,即外表,因此應該設定為Student才對,但是這個框框一直編輯不了;而主鍵表應該指我正在編輯的這張StudentGrade表才對,但是當選擇StudentGrade之後,下面列選項的框框就變成空的,沒有列可選。
但是將兩個操作互換後又能得到想要的結果,所以當時就半懵半混過去了。
然後偶然聽到郝斌老師的課之後才恍然大悟。
首先,主鍵表應該是指外來鍵所來自的那個表,即例子中的Student表,在Student表中Stu_id是該表的主鍵,因此該表稱為主鍵表;而外來鍵表則指Stu_id扮演外來鍵的時候所在的表,即例子中StudentGrade表。
SQL Server的主鍵與外來鍵約束SQL Server有許多的重要知識,開始也說過許多的SQL知識了。SQL Server中的約束也是一個重要性的知識,下面我來說說關於SQL Server約束的知識。
首先我們來說說SQL sever的主鍵約束:主鍵是唯一標識表中每一行的列或一組列。可以使用 PRIMARY KEY 約束為表建立主鍵。如果主鍵只包含一列,則可以將 PRIMARY KEY 約束定義為列約束,如果主鍵有兩列或更多列,則必須使用 PRIMARY KEY約束作為表約束(程式碼如圖所示):
每個表只能有一個主鍵。參與主鍵的所有列必須定義為 NOT NULL。如果沒有為這些列指定 NOT NULL 約束,SQL Server會自動為所有主鍵列設定 NOT NULL 約束。在建立主鍵時,SQL Server還會自動建立唯一的聚簇索引(如果指定,則為非聚集索引)。
接下來就是外來鍵約束:SQL Server外來鍵約束簡介外來鍵是一個表中的一列或一組列,它唯一地標識另一個表的行。 vendor_groups 和vendor表,它們的結構(如圖所示):
每個供應商屬於供應商組,每個供應商組可能有零個或多個供應商。 vendor_groups 和 vendors 表之間的關係是一對多的。對於 vendors 表中的每一行,始終可以在 vendor_groups 表中找到相應的行。但是,如果使用當前表建立方式,可以在vendors 表中插入一行而不在 vendor_groups 表中顯示相應 的行。 還可以刪除 vendor_groups 表中的行,而無需更新或刪除 vendors 表中導致 vendors 表中存在孤立的行。要強制執行 vendor_groups 和 vendors 表中的資料之間的連結,需要在 vendors 表中建立外來鍵。要建立外來鍵,請使用 FOREIGN KEY 約束。以下語句刪除 vendors 表並使用 FOREIGN KEY 約束重新建立它:
現在,vendor_groups 表稱為父表,該表是外來鍵約束參照的表。 vendors 表稱為子表,該表是應用外來鍵約束的表。
到此這篇關於SQL Server主鍵與外來鍵設定以及相關理解的文章就介紹到這了,更多相關SQL Server主鍵與外來鍵設定內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45