Mysql--約束

来源:https://www.cnblogs.com/rootcz/archive/2018/07/27/9379526.html
-Advertisement-
Play Games

一、 約束的含義和分類 1.1約束的含義:是一種限制,用於限製表中的數據,保證數據的完整性和一致性。 1.2約束的分類: ①not null:非空,保證欄位不能為空。違反約束不會報錯,但是會有警告,適用於說有的類型。 ②default:預設約束,當數據插入的時候,指定的欄位如果沒有數據插入,即插入默 ...


一、 約束的含義和分類
1.1約束的含義:是一種限制,用於限製表中的數據,保證數據的完整性和一致性。
1.2約束的分類:
①not null:非空,保證欄位不能為空。違反約束不會報錯,但是會有警告,適用於說有的類型。
②default:預設約束,當數據插入的時候,指定的欄位如果沒有數據插入,即插入預設值。
③primary key:主鍵,保證欄位具有唯一性,並且非空,等價於唯一+非空的組合。
④unique:唯一,用於保證欄位的唯一性,可以為空。
⑤check:檢查約束,mysql不支持。
⑥foreign key:外鍵約束,用於約束兩個表的關係,用於保證該欄位的值必須來自於主表的關聯列的值。在從表的添加的外鍵約束,用於引用主表中某列的值。
1.3添加約束
列級約束:語法上六大約束都支持,但是外鍵約束沒有效果。【mysql不支持檢查約束】
表級約束:除了非空和預設,其他都支持。
添加時機:創建表時、修改表時。
二、 唯一約束和主鍵約束比較、外鍵解析
1.主鍵唯一鍵的比較

2.外鍵解析
①在從表設置外鍵關係
②從表的外鍵列的類型和主表的關聯列類型要求一致或者相容
③主表的關聯列必須是一個key,主鍵或者是唯一鍵
④插入數據的時候,先插入主表,然後插入從表
⑤刪除數據的時候,先刪除從表,再刪除主表
三、 創建表時添加約束
語法概述:
Create table 表名(
欄位名 欄位類型 列級約束,
欄位名 欄位類型,
表級約束
)
1.添加列級約束
①在欄位類型之後直接添加,可以有多個直接加空格隔開
②支持:預設、主鍵、唯一、非空


列級約束不能將外鍵約束添加成功。
2.添加表級約束
【constraint 約束名】 添加約束名字,是可選的。



①主鍵的命名失效,主鍵名字只能是primary
②外鍵添加成功,別名也成功添加
③check 檢查約束,mysql不支持
3.約束的通用寫法


四、修改表時添加約束
1.添加列級約束
alter table 表名 modify column 欄位名 欄位類型 新約束
2.添加表級約束a
alter table 表名 add [constraint 約束名] 約束類型(欄位名) [外鍵的引用]



[1]添加非空約束
alter table userchen modify column userchen varchar(20) not null;

[2]添加預設約束

[3]添加主鍵

[4]添加唯一約束

[5]添加外鍵【表級約束】

五、刪除約束
[1]刪除非空約束

[2]刪除預設約束

[3]刪除主鍵

[4]刪除唯一鍵

[5]刪除外鍵

六、級聯刪除


情況一、當刪除父類數據時,對應從表的數據也將被刪除


情況二、級聯刪除置null


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、安裝cmake:sudo apt-get install cmake 2、下載opencv-2.4.10.zip,解壓 3、編譯opencv cd /home/opencv-2.4.10 mkdir build cd build/ cmake -D CMAKE_BUILD_TYPE=RELEAS ...
  • 先寫一鍵部署腳本,肯定是先要知道如何手動安裝Apache,Mysql,php,phpmyadmin 一 Apache2的安裝 安裝好之後,手動看一下apache的版本 輸入ip(本地的話直接打localhost),瀏覽器打開: ok 安裝完成(或者你把你想展示的網頁放在 var/www裡面就好) 另 ...
  • 需要註意的是: 1.需要在當前目錄下創建hosts.txt文件,文件內容格式為: https://www.baidu.com,百度首頁 https://www.trc.com,泰然城首頁 https://www.jd.com,京東商城 2.ding_url換成自己的釘釘機器人webhook鏈接,也可 ...
  • 昨天已實現一個模擬器的原型. 模擬器的基本原理是, 用另外一種方式實現所有腳本會訪問到的API , 然後把腳本操作的數據, 在網頁上展現出來. 模擬器可以覆蓋大部分開發的情況, 在不使用硬體前就把代碼調試好. 開發速度會更上一個臺階. 下一個階段是完善各種硬體介面, TCP/HTTP/WebSock ...
  • 系列目錄 一、安裝MySql 二、安裝並破解Navicat 三、沒有my.in配置文件怎麼辦 四、設置MySql的大小寫敏感 五、重置MySql登陸密碼 之前說過,Windows操作系統中,我們安裝Mysql有兩個選擇:一是下載MSI點擊運行,利用windows系統安裝程式的方法按部就班的來安裝;二 ...
  • 過程,函數,觸發器是PL/SQL編寫的,存儲在oracle中的.PL/SQL是非常強大的資料庫過程語言. PL/SQL優點:性能,模塊化,網路傳輸量,安全性缺點:移植性不好 簡單分類:塊:過程,函數,觸發器,包 Demo:create or replace procedure sp01 isbegi ...
  • 占座 ...
  • 轉自:http://www.maomao365.com/?p=6965 摘要: 下文將分享兩種將欄位中null值替換為指定值的方法分享,如下所示: 實驗環境:sqlserver 2008 R2 例: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...