MySQL學習筆記(二)

MySQL學習筆記(二)編碼

一.數據表

1.建立表

  • DREATE =TABLE [IF NOOT EXISTS] `tbl_name`(
    `字段名稱` 字段類型 [完整性約束條件] [COMMENT '註釋'],
    `字段名稱` 字段類型 [完整性約束條件] [COMMENT '註釋'],
    ...
    )ENGINE = 存儲引擎 CHARSET = 編碼方式;

2.查看數據表

  • SHOW TABLES;
  • SHOW [FULL] TABLES [{FROM|IN}db_name];

3.查看指定數據表的詳細信息

  • SHOW CREATE TABLE tbl_name;

4.查看錶結構

  • DESC tbl_name;
  • DESCRIBE tbl_name;
  • SHOW COLUMNS FROM tbl_name;

5.刪除數據表

  • DROP TABLE [IF EXISTS] tbl_name;

6.向數據表中插入記錄

  • INSERT [INTO] tbl_name(field1,field2,...) VALUES(value1,value2,...);

7.查詢數據表中的記錄

  • SELECT * FROM tbl_name;

8.添加字段

  • ALTER TABLE tbl_name
    ADD 字段名稱 字段屬性 [完整性約束條件] [FIRST|AFTER 字段名稱];

9.刪除字段

  • ALTER TABLE tbl_name
    DROP 字段名稱;

10.添加默認值

  • ALTER TABLE tbl_name
    ALTER 字段名稱 SET DEFAULT 默認值;

11.刪除默認值

  • ALTER TABLE tbl_name
    ALTER 字段名稱 DROP DEFAULT;

12.修改字段(名稱、)類型、屬性

  • ALTER TABLE tbl_name
    MODIFY 字段名稱 字段類型 [字段屬性] [FIRST|AFTER 字段名稱];
  • ALTER TABLE tbl_name
    CHANGE 原字段名稱 新字段名稱 字段類型 字段屬性 [FIRST | AFTER 字段名稱];

13.添加主鍵

  • ALTER TABLE tbl_name
    ADD PRIMARY KEY(字段名稱);

14.刪除主鍵

  • ALTER TABLE tbl_name
    DROP PRIMARY KEY;索引

    若是有AUTO_INCREMENT,要先去掉才能刪除主鍵rem

15.添加惟一

  • ALTER TABLE tbl_name
    ADD UNIQUE KEY|INDEX [index_name] (字段名稱);

16.刪除惟一

  • ALTER TABLE tbl_name
    DROP index_name;

17.修改數據表名稱

  • ALTER TABLE tbl_name
    RENAME [TO|AS] new_tbl_name;
  • RENAME TABLE tbl_name TO|AS new_tbl_name;

18.修改AUTO_INCREMENT的值

  • RENAME TABLE tbl_name TO new_tbl_name;

2、數據類型

1.數值型

  • 整數型字符串

    數據類型 有符號型存儲範圍 無符號型存儲範圍 字節
    TINYINT $-2^7$ ~ $2^7-1$ $0$ ~ $2^8-1$ 1
    SMALLINT $-2^{15}$ ~ $2^{15}-1$ $0$ ~ $2^{16}-1$ 2
    MEDIUMINT $-2^{23}$ ~ $2^{23}-1$ $0$ ~ $2^{24}-1$ 3
    INT $-2^{31}$ ~ $2^{31}-1$ $0$ ~ $2^{32}-1$ 4
    BIGINT $-2^{63}$ ~ $2^{63}-1$ $0$ ~ $2^{64}-1$ 8
    BOOL,BOOLEAN 0爲false,其餘爲true 1

    超過指定長度要求時自動截斷it

  • 浮點數table

    數據類型 存儲範圍 字節
    FLOAT[M,D] $-3.2010^{38}$ ~ $-1.1710^{-38}$ & $0$ & $1.17510^{-38}$ ~ $3.4010^{38}$ 4
    DOUBLE[M,D] $-1.7910^{308}$ ~ $-2.2210^{-308}$ & $0$ & $2.2210^{-308}$ ~ $1.7910^{308}$ 8

    其中,M表示總長度,D表示小數部分長度
    超過指定長度要求時自動四捨五入class

  • 定點型數據類型

    數據類型 存儲範圍 字節
    DECIMAL[M,D] 和DOUBLE相同,以字符串形式存儲 8

    超過指定長度要求時自動截斷
    DECIMAL比FLOAT和DOUBLE精度高學習筆記

2.字符串類型

  • 數據類型 存儲需求
    CHAR(M) M個字節,$0 <=M<= 255$
    VARCHAR(M) L+1個字節,$L<=M,0 <=M<= 65535$
    TINYTEXT L+1個字節,$L<2^8$
    TEXT L+2個字節,$L<2^{16}$
    MIDUMTEXT L+3個字節,$L<2^{24}$
    LONGTEXT L+4個字節,$L<2^{32}$
    ENUM('value1','value2',...) 1或2個字節,取決於枚舉值的個數,最多65535個值
    SET('value1','value2',...) 一、二、三、4或8個字節,取決於set成員的數目,最多64個

    CHAR通常比VARCHAR存儲空間大,但查詢速度更快
    在字符串長度達不到CHAR的要求時,會在後面自動填充空格,但查詢時不會去掉空格;VARCHAR不會自動填充,尾部若有空格會保留
    TEXT列不能有默認值,檢索時不存在大小寫轉換
    ENUM類型自動過濾空格,下標從1開始,下表越界時不能添加

3.日期時間類型

  • 數據類型 存儲範圍 存儲需求
    TIME -838:59:59 ~ 838:59:59 3
    DATE 1000-01-01 ~ 9999-12-31 3
    DATETIME 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 8
    TIMESTAMP 1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 4
    YEAR 1901-2155 1

3、完整性約束條件

1.unsigned

  • 無符號,沒有負數,從0開始

2.ZEROFILL

  • 零填充,顯示長度不夠時前補0填充,同時非負

3.NOT NULL

  • 非空

4.DEFAULT

  • 默認值,輸入數據沒有賦值時使用默認值

5.PRIMARY KEY

  • 主鍵,標識記錄的惟一性,不能重複,一個表只能有一個主鍵,自動禁止爲空

6.UNIQUE KEY

  • 惟一性,一個表能夠有多個,除null外不能重複

7. AUTO_INCREMENT

  • 自動增加,智能用於數值列,配合索引使用,從1開始

8.FOREIGN KEY

  • 外鍵約束
相關文章
相關標籤/搜索