時間:2022-03-09來源:www.farandoo.com作者:電腦系統城
注意:關鍵字不一定是主鍵,主鍵一定是關鍵字
特點:主鍵不能為空,具有唯一性不能重復。一個表要么只有一個主鍵,要么沒有主鍵,不可以有多個主鍵。
方法一:在創建表時設置主鍵
1 2 3 4 5 6 7 8 |
-- 建立User表 CREATE TABLE User ( User_id int NOT NULL , User_name VARCHAR (20), User_pwd VARCHAR (18), -- 在這里設置id為主鍵 PRIMARY KEY (User_id) ) |
1 2 3 4 5 6 |
CREATE TABLE Users( -- 也可以在字段中直接設置主鍵 User_id int NOT NULL PRIMARY KEY , User_name VARCHAR (20), User_pwd VARCHAR (18) ) |
以上兩種方式都可以創建主鍵,效果一樣。
方法二:創建表時沒有設置主鍵,后續在表中設置主鍵
1 2 3 4 5 |
CREATE TABLE User ( User_id int NOT NULL , User_name VARCHAR (20), User_pwd VARCHAR (18) ) |
原理是向創建表時的代碼中添加 PRIMARY KEY(User_id)
跟方法一中的第一個原理一樣
1 | ALTER TABLE user ADD PRIMARY KEY (User_id) |
原理是向User_id 字段中添加 PRIMARY KEY
跟方法一中的第二個原理一樣
1 | ALTER TABLE users MODIFY User_id INT PRIMARY KEY ; |
注意:一個表中的外鍵可以有多個,也可以沒有。
方法一:創建表時設置外鍵約束
在前面設置主鍵的基礎上來舉例,前面創建了一個用戶表,那么現在創建一個訂單表。
1 2 3 4 5 6 7 |
CREATE TABLE dingdan( DDid INT PRIMARY KEY NOT NULL , User_id INT NOT null , DDname VARCHAR (20) NOT NULL , -- 設置約束關系,dingdan表中的User_id 與 user表中的User_id表示的是同一個數據 constraint fk FOREIGN KEY (User_id) REFERENCES user (User_id) ) |
方法二:創建表時沒有設置主鍵,后續在表中設置主鍵
1 | alter table student add constraint stfk foreign key (stid) references teacher(tid) |
注意:建立了主外鍵關系后,主表中的數據不能隨意刪除。比如訂單中有一條數據包含了某個用戶,那么用戶表中就不能把該用戶的信息刪除,否則會報錯。
某個字段如果設置了唯一約束,那么該字段要么不寫,要寫就不能重復。
還是創建一個用戶表,這次表中多了郵箱字段。設置郵箱不能重復
1 2 3 4 5 6 |
CREATE TABLE User ( User_id int NOT NULL , User_name VARCHAR (20), User_pwd VARCHAR (18), User_Email VARCHAR (40) UNIQUE ) |
意思就是這個字段不能為空
接著上面唯一約束來寫,這里規定郵箱不僅不能重復而且不能為空
1 2 3 4 5 6 |
CREATE TABLE User ( User_id int NOT NULL , User_name VARCHAR (20), User_pwd VARCHAR (18), User_Email VARCHAR (40) UNIQUE not null ) |
意思就是這個字段如果你不寫,那么會默認給你一個值
繼續上面的User表來寫,在這里添加一個性別字段,如果你不寫性別那么默認為男
1 2 3 4 5 6 |
CREATE TABLE User ( User_id int NOT NULL , User_name VARCHAR (20), User_pwd VARCHAR (18), User_gender enum( '男' , '女' ) default '男' ) |
自增就是自動遞增,也就是說如果你在這個字段沒有填寫數據,系統會自動根據上一條數據加1
一般用在ID,編號
將用戶表中的ID設為自增
1 2 3 4 5 6 |
CREATE TABLE User ( User_id int auto_increment, User_name VARCHAR (20), User_pwd VARCHAR (18), User_gender enum( '男' , '女' ) default '男' ) |
注意:第一個數據如果不填,默認會給一個值。所以即便ID是主鍵,也可以不填數據
到此這篇關于MySQL數據庫如何給表設置約束詳解的文章就介紹到這了
2022-03-09
MySQL存儲過程圖文實例講解教程2022-03-01
千萬級用戶系統SQL調優實戰分享2022-03-01
mysql遠程跨庫聯合查詢的示例為什么要主從同步? 主從同步的原理 MYSQL數據庫進行主從同步 創建兩個MYSQL數據庫 初始化,安裝主機數據庫 配置從機 測試主從同步 ...
2022-03-01
這篇文章主要介紹了銀河麒麟V10安裝MySQL8028的圖文教程,并詳細介紹了遠程訪問的實現方法,本文通過圖文命令給大家介紹的非常詳細...
2022-02-28