国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

MySQL與SQL Server數(shù)據(jù)完整性約束的比較教學

2021-09-23 06:48:43王彩霞,王睿
電腦知識與技術 2021年21期
關鍵詞:數(shù)據(jù)庫

王彩霞,王睿

摘要:近年來,各大職業(yè)技術院校計算機相關專業(yè)《數(shù)據(jù)庫技術》課程,授課計劃從原來的“SQL Server”換成了“MySQL”,主要是因為MySQL數(shù)據(jù)庫已是當下許多公司采用的數(shù)據(jù)庫系統(tǒng),MySQL數(shù)據(jù)庫系統(tǒng)占空間很小,安裝簡單,卸載方便,兼容不同的操作系統(tǒng),代碼開源,也不存在盜版問題,還能配合Navicat進行可視化操作,這也方便了教學的開展,比SQL Server使用更方便,更有效提高開發(fā)效率,與SQL Server相比,兩者在很多方面有相同點,也有差異,該文主要針對兩者在數(shù)據(jù)完整性約束上的異同進行研究和闡述,重點討論了用戶定義的五種完整性約束的異同。

關鍵詞:MySQL;SQL Server;Navicat;數(shù)據(jù)庫

中圖分類號:G642? ? ? ? 文獻標識碼:A

文章編號:1009-3044(2021)21-0026-03

開放科學(資源服務)標識碼(OSID):

數(shù)據(jù)完整性是數(shù)據(jù)庫設計好壞的一項重要標志,它是為了保證數(shù)據(jù)庫中數(shù)據(jù)的一致性和準確性,讓不符合規(guī)范的數(shù)據(jù)不能寫入數(shù)據(jù)庫,特別是插入、修改、刪除數(shù)據(jù)時,數(shù)據(jù)庫管理系統(tǒng)軟件(以MySQL為例)會提供一種自動保證數(shù)據(jù)完整性的方法,即約束,來保證數(shù)據(jù)庫中數(shù)據(jù)是合理的、正確的、有效的。

1 數(shù)據(jù)完整性約束的簡介

數(shù)據(jù)完整性約束可分成下面五種:

(1)主鍵約束:主鍵是指一個列或多個列的組合,其值能唯一標識表中的每一行,通過它可以保證表的實體完整性。

(2)外鍵約束:可以保證數(shù)據(jù)庫中兩表的數(shù)據(jù)鏈接,通過主關鍵字和外關鍵字來實現(xiàn),保證數(shù)據(jù)庫中兩表數(shù)據(jù)的一致性。第一個表中的一列或多列必須是主鍵或組合主鍵,將該字段添加到第二個表中,這個列就是第二個表的外鍵。

(3)唯一約束:又被稱為UNIQUE約束,標識數(shù)據(jù)庫表中的每條記錄不能重復,即唯一性,但是可以允許為空值,但只能有一行值為NULL。

(4)檢查約束:又被稱為:“CHECK約束”,用于限定數(shù)據(jù)庫中每列數(shù)據(jù)的取值范圍。

(5)默認值約束:又被稱為:“DEFULT約束”,主要作用是向數(shù)據(jù)庫列字段中插入默認的值,該默認值可以根據(jù)自己需求來設置。

2數(shù)據(jù)完整性約束的方法

本文以學生選課系統(tǒng)數(shù)據(jù)庫(XK)為例,從用戶定義的完整性約束著手,探討MySQL與SQL Server在用戶定義的完整性中五種約束的相同點和不同點。

XK數(shù)據(jù)庫中,有5張表,關系模式如下:

(1)系部(Department)? (系部編號DepartNo、系部名稱DepartName)

(2)班級(Class)? (班級編號ClassNo、班級名稱ClassName、系部編號DepartNo)

(3)學生(Student) (學號StuNo、姓名StuName、密碼pwd、班級編號ClassNo)

(4)課程(Course)? (課程號CouNo、課程名CouName、報名人數(shù)Willnum、系部編號DepartNo)

(5)選修(StuCou)? (學號StuNo、課程號CouNo、報名志愿號Willorder、報名狀態(tài)State)

2.1 PRIMARY KEY主鍵約束

主鍵用來表示一個精確定位的特定行,表示行的唯一性,如果沒有主鍵,無法精準定位一條記錄是否就是你要的相關行記錄,會導致更新或者刪除表中特定的行很困難。如果有主鍵約束行記錄的唯一性,可以來解決這些問題。

2.1.1 創(chuàng)建primary key

為Department表中DepartNo列創(chuàng)建一個主鍵約束,代碼如下:

MySQL:

CREATE TABLE Department

DepartNoVARCHAR(3)? NOT NULL,

DepartNameVARCHAR(255) NOT NULL,

PRIMARY KEY (DepartNo)? ? ? ? ? ? ? ?//聲明主鍵寫在最后

SQL Server:

CREATE TABLE Department

DepartNo? VARCHAR(10)? NOT NULL? PRIMARY KEY,? //聲明主鍵緊跟列后

DepartNameVARCHAR(255) NOT NULL

假設表Department存在,要給該表DepartNo列加主鍵主健時,Mysql 和SqlServer都可以用下面SQL語句:

ALTER TABLE Department ADD PRIMARY KEYpk_DepartNo (DepartNo)

2.1.2刪除 PRIMARY KEY 約束

刪除Department表中DepartNo列的主鍵約束,代碼如下:

MySQL:

ALTER TABLE Department DROP PRIMARY KEY

SQL Server:

ALTER TABLE Department DROP constraint PK_DepartNo

猜你喜歡
數(shù)據(jù)庫
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
天柱县| 武宁县| 清新县| 泰宁县| 利辛县| 河东区| 遵义市| 长沙市| 崇礼县| 南川市| 杂多县| 高州市| 英超| 密山市| 桓台县| 莱阳市| 建平县| 宁陵县| 颍上县| 高邮市| 阜阳市| 沧州市| 共和县| 兰考县| 京山县| 吉木乃县| 黔江区| 泰宁县| 渝北区| 邮箱| 乐平市| 永仁县| 黄骅市| 营口市| 揭西县| 通海县| 黔南| 永城市| 南安市| 锡林浩特市| 习水县|