欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL入門教程(五)之表的創(chuàng)建、修改和刪除

 更新時間:2016年04月14日 12:08:54   作者:xuzhengzhud  
MySQL 為關系型數(shù)據(jù)庫(Relational Database Management System), 本文給大家介紹MySQL入門教程(五)之表的創(chuàng)建、修改和刪除,需要的朋友一起學習吧

MySQL 為關系型數(shù)據(jù)庫(Relational Database Management System), 這種所謂的"關系型"可以理解為"表格"的概念, 一個關系型數(shù)據(jù)庫由一個或數(shù)個表格組成。

表是DB存儲數(shù)據(jù)的基本單位,一個表包含若干個字段或記錄。表的操作包括創(chuàng)建、修改和刪除。

  1、創(chuàng)建表

  創(chuàng)建表即在已存在的數(shù)據(jù)庫中創(chuàng)立新表。在使用USE語句選擇具體數(shù)據(jù)庫后,可以使用它SQL語句創(chuàng)建表

  其中,屬性名指表中字段的名稱,數(shù)據(jù)類型即對應字段的數(shù)據(jù)類型,完整性約束條件指對應字段的某些特殊約束條件。

  MySQL中基本的完整性約束條件有

  1.1 設置表的主鍵

  主鍵是表的一個特殊字段,該字段能唯一地表示該表中的每條信息,即主鍵如同表中記錄的身份證。主鍵的主要目的在于幫助MySQL以最快的速度查找表中的某一條信息。主鍵必須按滿足唯一性,表中任意提兩條記錄的主鍵字段的值不可相同,主鍵的值為非空值。主鍵可以是單一的字段也可以是多個字段的組合。

  對于單字段主鍵只要在創(chuàng)建表時使用下屬語句即可

  屬性名 數(shù)據(jù)類型 PRIMARY KEY

  對于多字段主鍵,要在屬性定義完后統(tǒng)一設置主鍵,如

  即用stu_id和course_id兩個字段組合來唯一確定一條記錄。

  1.2 設置表的外鍵

  如果字段a是表A的屬性,且依賴于表B的主鍵,那么,稱表B為父表,表A為子表,a為表A的外鍵。通過字段a將父表B和子表A建立了關聯(lián)關系,即外鍵的作用在于建立該表與其父表的關聯(lián)關系。當父表中刪除某條信息時,子表中與之對應的信息也必須有相應的改變,來保證信息的完整性。

  在創(chuàng)建表時的設置外鍵的基本語法為

  其中,外鍵別名指外鍵的代號,屬性一列表指子表中設置的外鍵,屬性二列表指父表的主鍵,而表名指父表的名稱。如


 注意,子表的外鍵關聯(lián)的必須是父表的主鍵,且數(shù)據(jù)類型必須一致。

  1.3 設置表的非空約束

  非空性指字段的值不能為空值NULL。基本語法為

  屬性名 數(shù)據(jù)類型 NOT NULL

  當在有非空約束的字段上插入的記錄對應該字段的值為空時,系統(tǒng)將保存并不接受此次插入。

  1.4 設置表的唯一性約束

  唯一性是指所有記錄中該字段的值不可重復出現(xiàn)。基本語法為

  屬性名 數(shù)據(jù)類型 UNIQUE

  1.5 設置表的屬性值自動增加

  AUTO_INCREMENT是MySQL數(shù)據(jù)庫中的一個特殊約束條件,主要用于為表中插入的新紀錄自動生成唯一的ID。基本語法為

  屬性名 數(shù)據(jù)類型 AUTO_INCREMENT

  一個表只能有一個字段使用該約束,且該字段必須為主鍵的一部分,該字段可以是任何整數(shù)類型。默認情況下,該字段的值從1開始自增。如果第一條記錄設置了該字段的初值,則后續(xù)新增加的記錄就從初值開始自增。

  1.6 設置表的屬性的默認值

  對于設定了默認值的字段,在新插入記錄時如果沒有為這個字段賦值,則系統(tǒng)自動為其賦予此默認值?;菊Z法為

  屬性名 數(shù)據(jù)類型 DEFAULT 默認值

  2、查看表結構

  查看表結構指查看DB中已存在的表的定義,包括DESCRIBE語句和SHOW CREATE TABLE語句。

  2.1 DESCRIBE語句

  可查看表的基本定義,包括字段名、字段數(shù)據(jù)類型、是否為主外鍵、默認值和額外信息。

  基本語法為

  DESCRIBE 表名;

  2.2 SHOW CREATE TABLE語句

  可查看表的詳細定義,包括字段名、字段數(shù)據(jù)類型、完整性約束條件等定義時的信息,以及默認的存儲引擎和字符編碼。同樣可用\G結尾代替;使得顯示結果更美觀。

  3、修改表

  修改表是指修改數(shù)據(jù)庫中已存在的表的定義。

  通過Alter Table語句來修改表,包括修改表名、修改字段數(shù)據(jù)類型、修改字段名、增加字段、刪除字段、修改字段的排列位置、更改默認存儲引擎和刪除表的外鍵約束等。

  3.1 修改表名

  語法為

  ALTER TABLE 舊表名 RENAME [TO] 新表名;

  其中To是可選參數(shù),其是否在語句中出現(xiàn)不會影響語句的執(zhí)行。

  3.2 修改字段名

  基本語法為

  ALTER TABLE 表名 Change 舊屬性名 新屬性名 新數(shù)據(jù)類型;

  如果只修改字段名不修改字段數(shù)據(jù)類型,則保持新數(shù)據(jù)類型與原來一致即可。

  3.3 修改字段的數(shù)據(jù)類型

  基本語法為

  ALTER TABLE 表名 MODIFY 屬性名 新數(shù)據(jù)類型;

  3.4 增加字段

  基本語法為

  ALTER TABLE 表名 ADD 屬性名1 數(shù)據(jù)類型 [完整性約束條件] [FIRST | AFTER 屬性名2];

  其中FIRST為可選參數(shù),用于將新增字段設置為表的第一個字段,AFTER屬性名2也為可選參數(shù),用戶將新增字段放到屬性名2后面,如果這兩個可選參數(shù)都不選,新增字段將默認放到表的最后一個字段。

  實際上,對于一個數(shù)據(jù)表而言,其中字段的排列順序對表不會有什么影響,只是對于創(chuàng)建的人來說,將有某種直接或間接聯(lián)系的字段放在一起,便于理解這個表的結構。

  3.5 增加字段

  基本語法為

  ALTER TABLE 表名 DROP 屬性名;

  3.6 修改字段的排列位置

  基本語法為

  ALTER TABLE 表名 MODIFY 屬性名1 數(shù)據(jù)類型 FIRST | AFTER 屬性名2;

  3.7 更改表的存儲引擎

  基本語法為

  ALTER TABLE 表名 ENGINE=新存儲引擎名;

  如果一個表中已經存在了很多數(shù)據(jù),最好不要輕易更改其存儲引擎。

  3.8 刪除表的外鍵約束

  即斷開表與其父表之間的關聯(lián)關系基本語法為

  ALTER TABLE 表名 DROP FOREIGN KEY 外鍵別名;

  4、刪除表

  刪除表會刪除表中的所有數(shù)據(jù),由于創(chuàng)建表時可能存在外鍵約束,一些表成為了與之關聯(lián)的表的父表,要刪除這些父表,情況比較復雜。

  4.1 刪除沒有被關聯(lián)的普通表

  基本語法為

  DROP TABLE 表名;

  4.2 刪除被關聯(lián)的父表

  此時由于有外鍵依賴于該表,用4.1的刪除語法會報錯。

  刪除此類父表一般有兩種方法:直接先將與之關聯(lián)的子表刪除再刪父表,或者先刪除子表的外鍵約束再刪父表,一般我們采取第二種方法。

相關文章

  • 關于MySQL繞過授予information_schema中對象時報ERROR 1044(4200)錯誤

    關于MySQL繞過授予information_schema中對象時報ERROR 1044(4200)錯誤

    這篇文章主要介紹了關于MySQL繞過授予information_schema中對象時報ERROR 1044(4200)錯誤,本文給大家分享解決方法,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • mysql8.0?lower_case_table_names?大小寫敏感設置問題解決

    mysql8.0?lower_case_table_names?大小寫敏感設置問題解決

    在默認情況下,這個變量是設置為0的,以保持向前兼容性,如果將該變量設置為1,則表名和數(shù)據(jù)庫名將被區(qū)分大小寫,本文主要介紹了mysql8.0?lower_case_table_names?大小寫敏感設置問題解決,感興趣的可以了解一下
    2023-09-09
  • 如何進行mysql的優(yōu)化

    如何進行mysql的優(yōu)化

    這篇文章主要介紹了如何進行mysql的優(yōu)化,其實腳本之家之前就分享了很多的相關資料,需要的朋友可以參考下
    2016-04-04
  • MySQL中使用or、in與union all在查詢命令下的效率對比

    MySQL中使用or、in與union all在查詢命令下的效率對比

    這篇文章主要介紹了MySQL中使用or、in與union all在查詢命令下的效率對比,論證了在通常情況下union all并不一定比or及in更快,需要的朋友可以參考下
    2015-11-11
  • MySQL同步數(shù)據(jù)Replication的實現(xiàn)步驟

    MySQL同步數(shù)據(jù)Replication的實現(xiàn)步驟

    本文主要介紹了MySQL同步數(shù)據(jù)Replication的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • Mysql數(shù)據(jù)庫的優(yōu)化詳解

    Mysql數(shù)據(jù)庫的優(yōu)化詳解

    這篇文章主要介紹了Mysql數(shù)據(jù)庫的優(yōu)化詳解,查詢優(yōu)化的本質是讓數(shù)據(jù)庫優(yōu)化器為SQL語句選擇最佳的執(zhí)行計劃,一般來說,對于在線交易處理(OLTP)系統(tǒng)的數(shù)據(jù)庫,減少數(shù)據(jù)庫磁盤I/O是SQL語句性能優(yōu)化的首要方法,需要的朋友可以參考下
    2023-07-07
  • MySQL5.7.27-winx64版本win10下載安裝教程圖解

    MySQL5.7.27-winx64版本win10下載安裝教程圖解

    這篇文章主要介紹了MySQL5.7.27-winx64版本win10下載安裝教程,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Mac Mysql數(shù)據(jù)庫中文亂碼問題解決

    Mac Mysql數(shù)據(jù)庫中文亂碼問題解決

    這篇文章主要介紹了Mac Mysql數(shù)據(jù)庫中文亂碼問題解決的相關資料,需要的朋友可以參考下
    2016-10-10
  • mysql實現(xiàn)事務的提交與回滾的實例詳解

    mysql實現(xiàn)事務的提交與回滾的實例詳解

    在本篇文章中我們給大家分享一篇關于mysql實現(xiàn)事務的提交與回滾的實例內容,有需要的朋友們可以參考學習下。
    2020-01-01
  • MySQL8數(shù)據(jù)庫安裝及SQL語句詳解

    MySQL8數(shù)據(jù)庫安裝及SQL語句詳解

    本文詳細講解了MySQL8數(shù)據(jù)庫安裝及SQL語句用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02

最新評論