天天看點

Java資料庫開發與實戰運用---MySQL基礎之資料類型與表的管理

Java資料庫開發與實戰運用---MySQL基礎之資料類型與表的管理
Java資料庫開發與實戰運用---MySQL基礎之資料類型與表的管理
Java資料庫開發與實戰運用---MySQL基礎之資料類型與表的管理

4.資料表的相關操作

資料表

Java資料庫開發與實戰運用---MySQL基礎之資料類型與表的管理

建立表

CREATE TABLE [IF NOT EXISTS] tbl_name(
    字段名稱 字段類型 [完整性限制條件],
    字段名稱 字段類型 [完整性限制條件],
	...
)ENGINE=存儲引擎 CHARSET=編碼方式;
	
           

    UNSIGNED

        無符号,沒有負數,從0開始

    ZEROFILL

        零填充,當資料的顯示長度不夠的時候可以使用前補0的效果填充至指定長度,字段會自動添加UNSIGNED

    NOT NULL

        非空限制,也就是插入值的時候這個字段必須要給值,值不能為空

    DEFAULT

        預設值,如果插入記錄的時候沒有給字段指派,則使用預設值

    PRIMARY KEY

        主鍵,辨別記錄的唯一性,值不能重複,一個表隻能有一個主鍵,自動禁止為空

    AUTO_INCREMENT

        自動增長,隻能用于數值列,而且配合索引使用,預設起始值從1開始,每次增長1

    UNIQUE KEY

        唯一性,一個表中可以有多個字段是唯一索引,同樣的值不能重複,但是NULL值除外

    FOREIGN KEY

        外鍵限制

檢視目前資料庫下已有資料表

    SHOW TABLES;
    SHOW [FULL] TABLES [{FROM | IN} db_name]
    [LIKE 'pattern' | WHERE expr]
           

檢視指定資料表的詳細資訊

   SHOW CREATE TABLE tbl_name;
           

檢視表結構

 DESC tbl_name;
DESCRIBE tbl_name;
SHOW COLUMNS FROM tbl_name;
           

删除指定的資料表

    DROP TABLE [IF EXISTS] tbl_name;
           

表結構相關操作

    添加字段

        ALTER TABLE tbl_name 

ADD 字段名稱 字段屬性 [完整性限制條件] [FIRST|AFTER 字段名稱]

    删除字段

        ALTER TABLE tbl_name

DROP 字段名稱

    添加預設值

        ALTER TABLE tbl_name

ALTER 字段名稱 SET DEFAULT 預設值;

    删除預設值

        ALTER TABLE tbl_name

ALTER 字段名稱 DROP DEFAULT

    修改字段類型、字段屬性

        ALTER TABLE tbl_name

MODIFY 字段名稱 字段類型 [字段屬性] [FIRST | AFTER 字段名稱]

    修改字段名稱、字段類型、字段屬性

        ALTER TABLE tbl_name

CHANGE 原字段名稱 新字段名稱 字段類型 字段屬性 [FIRST | AFTER 字段名稱]

    添加主鍵

        ALTER TABLE tbl_name

ADD PRIMARY KEY(字段名稱)

    删除主鍵

        ALTER TABLE tbl_name

DROP PRIMARY KEY;

    添加唯一

        ALTER TABLE tbl_name

ADD UNIQUE KEY|INDEX [index_name] (字段名稱)

    删除唯一

        ALTER TABLE tbl_name 

DROP index_name;

    修改資料表名稱

        ALTER TABLE tbl_name 

RENAME [TO|AS] new_tbl_name

        RENAME TABLE tbl_name TO new_tbl_name;

    修改AUTO_INCREMENT的值

        ALTER TABLE tbl_name AUTO_INCREMENT=值

6.MySQL存儲引擎

    MyISAM存儲引擎

        預設MyISAM的表會在磁盤中産生3個檔案

  •             .frm
  •                 表結構檔案
  •             .MYD
  •                 資料檔案
  •             .MYI
  •                 索引檔案

        可以在建立的時候指定資料檔案和索引檔案的存儲位置,隻有MyISAM表支援

            DATA DIRECORY [=] 資料儲存的絕對路徑

            INDEX DIRECTORY [=] 索引檔案儲存的絕對路徑

        MyISAM單表最大支援的資料量2的64次方條記錄

        每個表最多可以建立64個索引

        如果是複合索引,每個複合索引最多包含16個列,索引值最大長度是1000B

        MyISAM引擎的存儲格式

            定長(FIXED 靜态)

                是指字段中不包含VARCHAR/TEXT/BLOB

            動态(DYNAMIC)

                隻要字段中包含了VARCHAR/TEXT/BLOB

            壓縮(COMPRESSED)

                myisampack建立

    InnoDB存儲引擎

        設計遵循ACID模型,支援事務,具有從服務崩潰中恢複的能力,能夠最大限度保護使用者的資料

        支援行級鎖,可以提升多使用者并發時的讀寫性能

        支援外鍵,保證資料的一緻性和完整性

        InnoDB擁有自己獨立的緩沖池,常用的資料和索引都在緩存中

        對于INSERT、UPDATE、DELETE操作,InnoDB會使用一種change buffering的機制來自動優化,還可以提供一緻性的讀,并且還能夠緩存變更的資料,減少磁盤I/O,提高性能

        建立InnoDB表之後會産生兩個檔案

            .frm表結構檔案

            .ibd,資料和索引存儲表空間中

        所有的表都需要建立主鍵,最好是配合上AUTO_INCREMENT,也可以放到經常查詢的列作為主鍵

MySQL資料操作

添加記錄

    INSERT [INTO] tbl_name[(col_name,...)] {VALUE|VALUES}(VALUES...);
           

    不指定字段名稱

        INSERT tbl_name VALUE(value...)

        需要按照建表時的字段順序給每一個字段指派

    列出指定字段

        INSERT tbl_name(字段名稱,...) VALUES(值,...)

    INSERT ... SET的形式

        INSERT tbl_name SET 字段名稱=值,...;

    INSERT ... SELECT

        INSERT tbl_name[(字段名稱...)] SELECT 字段名稱,... FROM  tbl_name [WHERE 條件]

    一次添加多條記錄

        INSERT tbl_name[(字段名稱,...)] VALUES(值,...),

(值,....),

(值,...)

繼續閱讀