欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    數據表操作是數據庫操作中最基本和最重要的操作。

    圖5-1是圖書銷售數據庫中存放的圖書表books。

    ■圖5-1圖書表books

    01. 表的結構

    表的結構也稱為“型”(Type),用于描述存儲于表中的數據的邏輯結構和屬性。定義表就是指定義表的結構,使用數據定義語言來實現。在定義表之前首先需要注意以下幾個概念。

    (1) 表名:在同一個數據庫中,每一個表都應該有一個唯一的名稱。表名和數據庫的名字一樣,都應該滿足標識符命名規則。

    (2) 列名:從圖5-1中可以看出,每個表由若干列組成,在同一個表中每個列的名字應該是唯一的,列的名字應該符合標識符命名規則。

    (3) 列的數據類型:表中的每個列都要定義一個數據類型。定義數據類型時需要慎重考慮,如果定義的范圍太小更改列的數據類型,可能會造成無法存放某些數據,如果定義的范圍太大可能會造成存儲空間的浪費。存儲空間的增加將增加系統的I/O操作量,從而降低系統的使用效率。

    (4) 列中是否允許有空值:表中的某些列可能嚴禁出現空值,例如,若要求每本圖書都必須有圖書編號,那么“圖書編號”列就不允許有空值。某些列,例如“作者”列中可能會存在空值,也就是說某些圖書沒有明確作者或作者未知,這時這些列就應該定義成允許空值。

    2. 表中的數據

    表中的數據也稱為“值”(Value),是“型”的具體賦值。操縱表中的數據通過數據操縱語言實現。

    (1) 數據行:一個數據行也被稱為一個元組或一條記錄,是現實世界中一個物理或邏輯實體的數據描述形式。

    (2) 數據列:一個數據列也被稱為一個屬性或一個字段,是同一類型的所有實體在某個屬性上的全部值的集合。列是表定義的基本對象,定義一個表的主要任務就是定義這個表中的各個列。

    (3) 主鍵:表的主鍵是表中的某個列或某幾個列的組合,其值可以唯一標識表中的每個行。一個表只能定義一個主鍵,而且通常都應該定義一個主鍵。主鍵的值不能為空值,也不能重復。如果存在多個列或列組合同時滿足作為主鍵的條件,則應該選擇運算效率高的列或列組合作為表的主鍵。通常數值型的列比字符型的列運算效率高;如果同為字符型,則取值范圍小的列的運算效率通常更高。

    (4) 自增列:又稱標識列,可以將表中具有整數性質的某個列定義為自增列來唯一標識表中的每一行,定義的關鍵詞為。一個表中最多只能有一個列被定義為自增列。自增列不允許為空值,也不允許重復,自增列必須是主鍵或主鍵的一部分。默認情況下自增列中的第一個值是1,后續值自動加1。如果用戶設置了一個非1的初始值,后續值將在該值基礎上自動加1。

    提示/

    系統數據庫中的數據表為系統數據表,如:表(提供了當前MySQL實例中所有數據庫的信息,SHOW 的結果取自此表)、表(提供了關于數據庫中的表的信息,詳細表述了某個表屬于哪個、表類型、表引擎、創建時間等信息,SHOW FROM 的結果取自此表)、表(提供了表中的列信息,詳細表述了某張表的所有列以及每個列的信息,SHOW FROM .的結果取自此表)等。

    02、表的創建 1. 創建表

    創建表就是在數據庫中建立新表。創建表的基本語法格式如下所示。

    語法說明如下。

    【例5-2】在圖書銷售數據庫中創建圖書表books用于存放圖書的信息。

    定義列時使用NOT NULL表示這個列在存儲數據時不允許出現空值,否則使用默認的屬性NULL,表示這個列在存儲數據時允許出現空值。

    如果數據表books已經存在,再運行上面的命令,系統會提示錯誤信息“Table 'books' ”,為了防止這種錯誤發生,在創建數據表時可以在“數據表名稱”前添加IF NOT ,這樣命令執行后,只是返回一條警告信息“Query OK, 0 rows , 1 (0.01 sec)”而已。

    【例5-3】在圖書銷售數據庫中創建顧客表用于存放顧客的信息。

    定義列cstid時使用 KEY表示將該列定義為表的主鍵。定義主鍵時系統自動將該列定義為NOT NULL,即不允許空。

    【例5-4】在圖書銷售數據庫中創建訂單表用于存放訂單的信息。

    定義列時使用表示將該列定義為自增列,系統會自動在該列中生成不重復的整數序列值。定義列的屬性時必須將該列定義為主鍵或主鍵的一部分。

    定義列時使用數據類型,并且將默認值設置為,表示插入記錄時系統會自動將系統當前日期時間存入該列中。默認值約束的設置見6.3.4節。

    【例5-5】在圖書銷售數據庫中創建訂單項目表用于存放訂單項目的信息。

    該表的主鍵由兩列組成,所以這里需要使用表級主鍵。因為主鍵所在列都不允許出現空值,所以即使定義主鍵所在列時沒有使用NOT NULL,系統也會自動為該列增加非空屬性。

    添加IF NOT 參數,表示要創建的表只有在不存在時,才執行該創建表命令。

    2. 創建帶JSON類型的表

    新的數據類型JSON的引用可以將復雜數據存儲在一個數據列中,易于存儲。

    【例5-6】在圖書銷售數據庫中創建帶有JSON類型的表用于存放售貨員信息,然后查看數據庫中已經存在的數據表。

    該表的主鍵由一列組成,可以采用列級主鍵,也可以采用表級主鍵,這里使用的表級主鍵。因為主鍵所在列都不允許出現空值,所以無論該列是否定義NOT NULL,系統都會自動為該列增加非空屬性。

    3. 表的復制

    使用上述的 TABLE命令可以根據實際需要創建表,是實際開發中較常用的方式。而 TABLE LIKE命令則可以對源表的模式進行復制,從現有的數據表中精確地復制表的定義(不復制其數據),其創建的表除了表名和源表不一樣外,其余所有的細節都是一樣的。復制表的基本語法格式如下所示。

    語法說明如下。

    【例5-7】在圖書銷售數據庫中創建和圖書表books一樣結構的臨時表圖書備份表。

    表和books表的結構一模一樣。當退出MySQL再次登錄后,該臨時表將不再存在。SHOW 命令,不能看到臨時表。

    4. 查看表結構

    查看表結構是指查看數據庫中已存在的表的定義。查看表結構的語句包括語句和SHOW TABLE語句,通過這兩個語句,可以查看表的數據列名、數據列的數據類型和完整性約束條件等。

    1) 語句查看表定義

    可以使用(可以縮寫為DESC)命令查看表的基本定義,包括數據列的列名、數據類型、是否為空、是否為主鍵、默認值、自增列等,其基本語法格式如下所示。

    【例5-8】查看表的結構。

    執行結果如圖5-2所示。

    ■圖5-2查看表的結構

    2) SHOW TABLE語句查看表詳細定義

    可以使用SHOW 命令查看定義表的SQL語句,從而得到表的詳細結構,包括列的名稱、數據類型、是否為空、默認值、表的存儲引擎、字符編碼等,比使用DESC命令顯示的信息要全面。SHOW TABLE命令的基本語法格式如下所示。

    【例5-9】查看books表的結構。

    執行結果如圖5-3所示。

    ■圖5-3查看books表的結構

    提示/

    圖5-3是在命令提示符下顯示的結果,在顯示內容較長的情況下,使用“\G”選項可以更好地顯示結果。如果在客戶端工具中,由于顯示列寬度有限,可以將其復制出來查看。

    03、表的修改

    修改表是指修改數據庫中已存在的表的定義。表創建好以后,可以根據需要使用ALTER TABLE語句修改表的結構,包括在表中增加新列、修改列的屬性以及刪除列等。

    1. 增加列

    增加新列的基本語法格式如下所示。

    語法說明如下。

    【例5-10】在圖書表books中新增一個新列press,用于存放出版社名稱。該列數據類型為(50),允許空值。

    關鍵詞NULL表示該列允許空值更改列的數據類型,由于NULL是默認設置,所以該關鍵詞可以省略。也可以通過以下兩條語句完成增加列操作。

    多加了一個關鍵字FIRST,表示press列在表中第一的位置。

    多加了一個關鍵字AFTER,表示press列在列的后面。

    這三條命令添加的列名相同,實操操作完一個命令后,應先刪除該列,再繼續下一個命令。

    提示/

    如果表中已經有數據,那么在表中增加一個新列時,新列中是沒有數據的,所以如果將增加的新列設置成不允許有空值,必然產生錯誤。可以有兩種方法解決這個問題,一種是首先將新列定義成允許有空值,然后向新列中輸入數據后再將這個列修改為不允許有空值;另一種是在添加新列時為該列定義一個默認值。

    2. 修改列

    修改列的基本語法格式如下所示。

    語法說明如下。

    語法說明如下。

    提示/

    通過該語句不僅可以修改列的屬性,也可以修改列的名稱。

    【例5-11】修改圖書表books中的出版社列press,將數據類型修改為(20),不允許空值,并將位置修改為位于作者列之后。

    【例5-12】修改圖書表books,將圖書編號列修改為自增、主鍵列。

    【例5-13】修改訂單表,刪除訂單編號列的自增屬性。

    訂單編號列的為空性屬性和主鍵屬性不變。

    3. 刪除列

    刪除列的基本語法格式如下所示。

    將圖書表books中的出版社列press的名稱改為,其他屬性不變。

    語法說明如下。

    【例5-15】刪除圖書表books中的出版社列。

    4. 重命名表

    數據庫系統通過表名來區分不同的表,表名在同一個數據庫中唯一標識一張表。重命名表的基本語法格式如下所示。

    語法說明如下。

    【例5-16】將顧客表的名稱重命名為users。

    數據庫中表已經不存在了,取而代之的是users表。

    04、表的刪除

    刪除表是指刪除數據庫中已存在的表。刪除表將同時刪除表中的數據。因此,刪除表操作要想好了再做。創建表時可能存在外鍵約束,被關聯的父表刪除比較復雜。這里只講沒有關聯的普通表的刪除,關聯表的刪除在講解外鍵約束時再講解。

    刪除表的基本語法格式如下所示。

    語法說明如下。

    【例5-17】刪除顧客表users。

    數據庫中users表必須存在,否則命令執行將提示錯誤信息“ERROR 1051 (42S02): table '.***'”。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有