MySQL資料庫基礎(二)(約束以及修改數據表)(持續更新中)

来源:http://www.cnblogs.com/ailiailan/archive/2017/02/22/6430377.html
-Advertisement-
Play Games

一,約束以及修改數據表 約束的作用?1.約束保證數據的完整性、一致性;2.約束分為表級約束、列級約束;3.約束類型包括:NOT NULL(非空約束)、PRIMARY KEY(主鍵約束)、UNIQUE KEY(唯一約束)、DEFAULT(預設約束)、FOREIGN KEY(外鍵約束); 列級約束:只針 ...


一,約束以及修改數據表

約束的作用?1.約束保證數據的完整性、一致性;2.約束分為表級約束、列級約束;3.約束類型包括:NOT NULL(非空約束)、PRIMARY KEY(主鍵約束)、UNIQUE KEY(唯一約束)、DEFAULT(預設約束)、FOREIGN KEY(外鍵約束);

列級約束:只針對某一個欄位;表級約束:針對兩個或兩個以上的欄位;

1.外鍵約束的要求解析

外鍵約束作用:1.保持數據一致性、完整性;2.實現一對一或一對多關係;(這是也把MySQL稱之為“關係型”資料庫的一個根本性原因)

外鍵約束的要求:1.;2.;3.

;4.外鍵列和參照列必須創建索引,如果外鍵列不存在索引的話,MySQL將自動創建索引;

子表:具有外鍵列的表;父表:字表所參照的表;外鍵列:加過外鍵關鍵詞的列;參照列:外鍵列所參照的列;

查看數據表的屬性命令:SHOW CREATE TABLE tb_name,從下圖中可以看到,數據表provinces的存儲引擎為:InnoDB

下圖展示子表(users)、父表(provinces)具體的創建過程,其中子表中的pid為外鍵列,父表中的id為參照列,英文reference的意思為“參照”

查看數據表的索引命令:SHOW INDEXES FROM tb_name,命令結尾加‘\G’,可以將命令執行結果以網格的形式展示,從下圖中可以看到,id欄位上已經創建了索引,這是因為創建主鍵的時候會自動創建索引而子表users中存在兩個索引,pid欄位上存在索引這也證明瞭‘‘如果外鍵列不存在索引的話,MySQL將自動創建索引” 

2.外鍵約束的參照操作

註意:插入記錄時,必須先在父表中插入記錄,才能在子表中插入記錄

 

 

 

 

 

 

 

 


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

-Advertisement-
Play Games
更多相關文章
  • MRC — 手動管理記憶體 1.1 記憶體引用平衡原則 1) 如果使用alloc,new開頭,或者是copy(複製一個對象)來創建一個對象,意味著你擁有這個對象的所有權。這個對象的引用計數器初始值為1(也有可能>1)。 2) 如果你擁有這個對象的所有權,在不使用此對象時,就有責任向對象發送release ...
  • CollapsingToolbarLayout 是 google 在其推出的design libiary 中給出的一個新型控制項。其可以實現的效果類似於: toolbar是透明的,有一個背景圖片以及大標題,隨著頁面的向上滑動,其標題逐漸縮放到toolbar上,而背景圖滑動到一定程度後變成了toolba ...
  • Zxing: Zxing是一個開放源碼,用java實現的多種格式的1D/2D條碼圖像處理庫,它包含了聯繫到其他語言的埠。可以實現使用手機內置攝像頭完成條形碼的掃描以及解碼。 github: https://github.com/zxing/zxing 首先在寫項目的時候,我們需要導入一個modue ...
  • HTTP Proxy Server : android-mirror.bugly.qq.com HTTP Proxy Port : 8080 打開Android SDK, Tools --> Options -->設置 proxy 和 port,重啟SDK即可 ...
  • public class MainActivity extends Activity { private DatePicker date_picker;private TimePicker time_picker;private TextView tv_date;private TextView t ...
  • TextView屬性大全 今天研究了TextView一天了,發現網上有一篇講TextView屬性的,非常全,收藏一下先。 發現TextView有一個比較大的問題,就是文字排版的問題,遇到數字,字母,符號等就會有問題,目前還沒有什麼解決方法。 如果有高人研究出方法來解決,請指教一下哈。 android ...
  • Codecademy中Learn SQL, SQL: Table Transformaton和SQL: Analyzing Business Metrics三門課程的筆記,以及補充的附加筆記。 Codecademy的課程以SQLite編寫,筆記中改成了MySQL語句。 I. Learn SQL 1. ...
  • ORACLE RAC原理:在一個應用環境當中,所有的伺服器使用和管理同一個資料庫,目的是為了分散每一臺伺服器的工作量,硬體上至少需要兩台以上的伺服器,而且還需 要一個共用存儲設備。同時還需要兩類軟體,一個是集群軟體,另外一個就是Oracle資料庫中的RAC組件。同時所有伺服器上的OS都應該是同一類O ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...