mysql數據庫中使用外鍵約束,數據庫添加外鍵約束

本文目錄一覽:

mysql是否有必要使用外鍵約束

如果使用外鍵後,mysql需要額外的開銷來檢測數據的完整性和一致性檢測,容易造成死鎖,mysql處理性能勢必會下降。

如果對數據的要求不是那麼嚴格, 建議不要使用外鍵約束,如果一定要保證完整性,可通過其他方法實現,如實體完整性通過逐漸或唯一索引來實現,域的完整性通過限制列的數據類型、格式或值的範圍來實現,參照完整性可通過編寫觸發器來實現或者通過代碼的邏輯判斷來實現。

在mysql中怎麼同時運用主鍵和外鍵約束

一,添加主鍵~

ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名);

添加外鍵~

ALTER TABLE table_name ADD CONSTRAION pk_name FOREIGN KEY(列名) REFERENCES table_name(列名);

基礎語法~其他條件自行添加二,alter table table_name add constraint fk_column_id foreign key(column) references 主鍵表 (column_id);

如何在MySQL中設置外鍵約束以及外鍵的作用

1.外鍵的作用,主要有兩個:

一個是讓數據庫自己通過外鍵來保證數據的完整性和一致性

一個就是能夠增加ER圖的可讀性

2.外鍵的配置

1)先創建一個主表,代碼如下:

#創建表student,並添加各種約束

create

table

student

(

id

int

primary

key

,

#主鍵約束

name

varchar(20)

,

#唯一約束

age

int

NOT

NULL,

#非空約束

sex

varchar(2)

,

address

varchar(20)

default

‘重慶’

#默認約束

)

;

再通過一個外鍵,創建一個分數表,這樣的話,就可以方便查詢。代碼如下:

#創建分數表

create

table

score

(

id

int

primary

key

,

sid

int

,

china

int

,

history

int,

english

int,

constraint

FK_sid

foreign

key(sid)

references

student(id)

#通過外鍵創建鏈接

)

;

創建外鍵的方法有很多,其中最常見創建外鍵的格式是:constraint

FK_***

foreign

key(**)

references

鏈接的外表

刪除外鍵:

alter

table

drop

foreign

key

‘外鍵名’.

注意:

只有在定義外鍵時,用constraint

外鍵名

foreign

key

….

方便進行外鍵的刪除

mysql在建表時添加外鍵約束

— 添加外鍵約束

CREATE TABLE stu(

sid INT PRIMARY KEY,

NAME VARCHAR(50) NOT NULL

);

— 添加外鍵約束方式一

CREATE TABLE score1(

score DOUBLE,

sid INT,

CONSTRAINT fk_stu_score1_sid FOREIGN KEY(sid) REFERENCES stu(sid)

);

— 添加外鍵約束方式二(若表已存在,可用這種)

CREATE TABLE score1(

score DOUBLE,

sid INT

);

ALTER TABLE score1 ADD CONSTRAINT fk_sid FOREIGN KEY(sid) REFERENCES stu(sid)

請列舉mysql中常見的約束類型

一、Mysql支持以下約束:

※  主鍵約束 :primary key

※  唯一性約束:unique key

※  外鍵約束:foreign key

※  非空約束:not null

※  默認值約束:default

二、主鍵約束:

一個表只能有一個主鍵,當建表時忘記設置主鍵約束時.設置為主鍵的列查詢速度會非常快,所以一般會用聚集索引,這個我們後面會講到。

添加主鍵約束:設置myself表的age為主鍵

語法:alter  table 表名 add primary key;(列名)※  可以有多個列名。

三、外鍵約束:

何為外鍵,當建表時需要用到另外一個表的主鍵作為本表的的主鍵時,需要設置外鍵。設置外間後,若想在刪除本表數據時會級聯刪除或者默認刪除其他方式。

添加外鍵約束:設置本表的cno為外鍵

語法:alter table 表名稱 add foreign key (列名稱)  references  關聯表名稱(列名稱);

四、非空約束:

當插入新數據時對應的列為不能空。非空約束是相對於默認值約束而說的。

添加非空約束:

語法:alter table 表名 modify 列名 列類型 not null; 

五、默認值約束:default:

當插入時沒有插入值時,會自動插入默認值。默認值約束相對於非空約束而說。

添加默認值約束:

語法:alter table 表名 add 列名 列類型 not null default ‘默認值’;

六、唯一性約束:

本列的內容只能唯一不能重複。

添加唯一約束:

 語法:alter table 列名 add unique(列名稱)  ※可以有多個列名稱,用逗號隔開。

如何在MySQL中設置外鍵約束

create table a (

  a_id int primary key,  ##主鍵

  a_name varchar(2)

)

create table b(

  b_id int ,

  b_name varchar(2)

)

##添加外鍵

alter table b add constraint fk_b_a foreign key b_id references a(a_id)

原創文章,作者:QKXN,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/133483.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
QKXN的頭像QKXN
上一篇 2024-10-03 23:59
下一篇 2024-10-03 23:59

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的數據庫存儲引擎

    本文將介紹兩款高性能的數據庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python怎麼導入數據庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的數據庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • MySQL左連接索引不生效問題解決

    在MySQL數據庫中,經常會使用左連接查詢操作,但是左連接查詢中索引不生效的情況也比較常見。本文將從多個方面探討MySQL左連接索引不生效問題,並給出相應的解決方法。 一、索引的作…

    編程 2025-04-28

發表回復

登錄後才能評論