新聞中心
詳解MySQL中的主鍵、外鍵、非空、唯一、默認約束及其在創(chuàng)建表中的應(yīng)用

晉州ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
MySQL作為一種廣泛使用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),其強大的數(shù)據(jù)管理功能依賴于各種約束和索引,本文將詳細介紹MySQL中的主鍵、外鍵、非空、唯一和默認約束,以及如何在創(chuàng)建表時應(yīng)用這些約束。
主鍵約束
主鍵(Primary Key)是表中每一行數(shù)據(jù)的唯一標識,在MySQL中,主鍵具有以下特點:
1、唯一性:表中任意兩行數(shù)據(jù)的主鍵值不能相同。
2、非空性:主鍵不能為空。
3、不可更改性:一旦創(chuàng)建,主鍵值不能被修改。
創(chuàng)建表時,可以使用以下方法定義主鍵:
CREATE TABLE table_name (
column1 datatype PRIMARY KEY,
column2 datatype,
...
);
也可以在定義完所有列之后指定主鍵:
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
...
PRIMARY KEY (column1)
);
外鍵約束
外鍵(Foreign Key)用于建立表與表之間的關(guān)聯(lián)關(guān)系,外鍵約束要求外鍵列的值必須在關(guān)聯(lián)表的主鍵列中存在,外鍵具有以下特點:
1、引用完整性:外鍵列的值必須在關(guān)聯(lián)表的主鍵列中有對應(yīng)的值。
2、可空性:外鍵可以為空,但若設(shè)置為非空,則必須引用關(guān)聯(lián)表的主鍵值。
3、刪除和更新行為:當(dāng)刪除或更新關(guān)聯(lián)表的主鍵值時,外鍵約束會影響與之關(guān)聯(lián)的外鍵值。
創(chuàng)建表時,可以使用以下方法定義外鍵:
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
...
FOREIGN KEY (column1) REFERENCES other_table(other_column)
);
非空約束
非空(NOT NULL)約束要求列的值不能為空,這意味著在插入或更新數(shù)據(jù)時,該列必須有具體的值,創(chuàng)建表時,可以在列定義后添加NOT NULL關(guān)鍵字來設(shè)置非空約束:
CREATE TABLE table_name (
column1 datatype NOT NULL,
column2 datatype,
...
);
唯一約束
唯一(UNIQUE)約束要求列的值在表中唯一,但允許有空值,創(chuàng)建表時,可以在列定義后添加UNIQUE關(guān)鍵字來設(shè)置唯一約束:
CREATE TABLE table_name (
column1 datatype UNIQUE,
column2 datatype,
...
);
也可以在定義完所有列之后指定唯一約束:
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
...
UNIQUE (column1)
);
默認約束
默認(DEFAULT)約束用于為列設(shè)置默認值,當(dāng)插入數(shù)據(jù)時,如果沒有為該列指定值,則會使用默認值,創(chuàng)建表時,可以在列定義后添加DEFAULT關(guān)鍵字來設(shè)置默認約束:
CREATE TABLE table_name (
column1 datatype DEFAULT 'default_value',
column2 datatype,
...
);
綜合應(yīng)用示例
以下是一個創(chuàng)建學(xué)生表和成績表的示例,展示了主鍵、外鍵、非空、唯一和默認約束的應(yīng)用:
-- 創(chuàng)建學(xué)生表
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
gender ENUM('男', '女') DEFAULT '男'
);
-- 創(chuàng)建成績表
CREATE TABLE scores (
id INT PRIMARY KEY,
student_id INT NOT NULL,
subject VARCHAR(50) NOT NULL,
score INT NOT NULL,
UNIQUE (student_id, subject),
FOREIGN KEY (student_id) REFERENCES students(id)
);
MySQL中的主鍵、外鍵、非空、唯一和默認約束是保證數(shù)據(jù)完整性和一致性的重要手段,在實際開發(fā)中,合理使用這些約束可以避免數(shù)據(jù)冗余、錯誤和異常,提高數(shù)據(jù)庫性能。
網(wǎng)頁題目:mysql主鍵,外鍵,非空,唯一,默認約束及創(chuàng)建表的方法
本文URL:http://fisionsoft.com.cn/article/cdhcpog.html


咨詢
建站咨詢
