表格的關連及限制用法_PK_FK_UK_INDEX
例:
建立user table
CREATE TABLE user (
      id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '這是PK_ID',
      username  varchar(20) NOT NULL DEFAULT '名字',
      account_number varchar(20) NOT NULL COMMENT '帳號',
      password varchar(255) NOT NULL DEFAULT '123' COMMENT '密碼預設為123',
      PRIMARY KEY(id),
      UNIQUE KEY account_number (account_number)
)AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

新增user table 資料
INSERT INTO user (id,username,account_number)
VALUES  (1,'Mr. Wu','wu123'),
                (2,'Mr. Wang','wang1'),
              (3,'Mr. Lin','lin'),
                (4,'Mr. ERIC','eric');

建立 user 的職業occupation
CREATE TABLE occupation (
      id bigint(20)   NOT NULL AUTO_INCREMENT ,
      occupation CHAR(20) NOT NULL COMMENT '職業',
      salary int(20)  NOT NULL DEFAULT 0,
      user_id bigint(20)  NOT NULL,
      PRIMARY KEY (id),
      FOREIGN KEY fk_occupation(user_id) REFERENCES user(id)
)AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

occupation table 資料
INSERT INTO occupation (occupation,salary,user_id)
VALUES ('軍人',40000,1),
                ('老師',45000,2),
                ('商人',98000,3),
              ('敗家',-35000,4),
                ('業務',25000,2);

說明:
1、PRIMARY KEY 主鍵設定
PRIMARY KEY  是設定此表格欄位值獨一無二的值
PRIMARY KEY (欄位名稱)
例:在user table 及 occupation table 的主鍵名稱是id
PRIMARY KEY (id)

2、FOREIGN KEY 外來鍵
FOREIGN KEY 是設定此表格有參考(關連)到其它表格的值
FOREIGN KEY 建立FK的名稱且是資料庫唯一的名稱(欄位名稱)
            REFERENCES 參考表格(欄位名稱)
例:在occupation table 有個欄位user_id參考 user table id
FOREIGN KEY fk_occupation(user_id) REFERENCES user(id)

3、UNIQUE KEY 唯一鍵
UNIQUE KEY 是設定表格欄位值不重複的值
UNIQUE KEY 建立名稱(欄位名稱)
例:在user table 有個帳號的欄位account_number不可以重複值
UNIQUE KEY account_number (account_number)

4、NOT NULL
設定不可以有null值

5、AUTO_INCREMENT
是自動產生主鍵值
最後要加起始值
AUTO_INCREMENT=1

6、COMMENT '這是PK_ID'
說明或註解

7、DEFAULT
設定初值,
如果你沒有insert 此欄位,會自動補初值。

8、DEFAULT CHARSET=utf8
設定編碼為utf8

表格的關連及限制用法INDEX

INDEX|KEY} [index_name] [index_type] (index_col_name,...)




CREATE TABLE user (
      id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '這是PK_ID',
      username  varchar(20) NOT NULL DEFAULT '名字',
      account_number varchar(20) NOT NULL COMMENT '帳號',
      password varchar(255) NOT NULL DEFAULT '123' COMMENT '密碼預設為123',
      PRIMARY KEY(id),
      UNIQUE KEY account_number (account_number),
      KEY(username)
)AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;


PK 預設就有INDEX了。

參考資料






 















其它文章

arrow
arrow

    PG Levin Li 發表在 痞客邦 留言(0) 人氣()