MySQL-建立表及其約束

來源:互聯網
上載者:User

標籤:mysql   建立表   基本語句   

CREATE TABLE [tb_name];

1、建立表的主鍵約束:主鍵是唯一標識某欄位的作用,當該欄位為主鍵的時候,其值必須是唯一的,且不可為空。
mysql>CREATE TABLE student(id INT PRIMARY KEY,
                                                 stu_id INT,
                                                 course_id INT);id為主鍵,所有欄位都為整數

mysql>CREATE TABLE student (id INT PRIMARY KEY,
                                                   stu_id INT,
                                                   course_id INT,
                                                   PRIMARY KEY(id,stu_id)
                                                   );  id和stu_id成為主鍵,兩者的組合唯一標識一條記錄

2、建立表的外鍵約束(CONSTRAINT:外鍵別名;FOREIGN KEY:外鍵欄位;REFERENCES 父表):外鍵是和另外一個表關聯其來的作用,外鍵必須是另一表的主鍵,外鍵可以為空白。
mysql>CREATE TABLE student (id INT PRIMARY KEY,
                                                   stu_id INT,
                                                   course_id INT,
                                                   CONSTRAINT c_fk FOREIGN KEY(stu_id,course_id)
                                                   REFERENCES example2(stu_id,course)
                                                    );表student的stu_id,course_id為外鍵,外鍵到example2表的stu_id,course_id主鍵。example2是student的父表。子表的外部索引鍵關聯的必須是父表的主鍵。而且,資料類型必須一致。

3、設定表的非空約束(NOT NULL):定義欄位值不可為空
mysql>CREATE TABLE student(id INT NOT NULL PRIMARY KEY,
                                                  name VARCHAR(20) NOT NULL,
                                                  stu_id INT,
                                                  CONSTRAINT e_fk FOREIGN KEY(stu_id)
                                                  REFERENCES example1(stu_id)
                                                   ); id為主鍵,NOT NULL定義id和stu_id為非空約束;CONSTRAINT定義外鍵別名,FOREIGN KEY定義外鍵欄位,REFERENCES定義父表;

4、設定表的唯一約束(UNIQUE):定義欄位值唯一。
mysq>CREATE TABLE student(id INT NOT NULL PRIMARY KEY,
                                                 name VARCHAR(20) NOT NULL,
                                                 stu_id INT UNIQUE,
                                                 sex CHAR(6),
                                                 CONSTRAINT e_fk FOREIGN KEY(sex)
                                                 REFERENCES example2(sex),
                                                 );id為主鍵且不可為空;name為字串類型且不可為空;sut_id為整形且只能唯一;sex為字串且是外鍵,example2為student父鍵。

5、設定表的屬性值自動增加:數字自動成長(AUTO_INCREMENT)
mysql>CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT,
                                                  name VARCHAR(20) NOT NULL,
                                                  stu_id UNIQUE AUTO_INCREMENT,
                                                  sex CHAR(6) ,
                                                  CONSTRAINT e_fk FOREIGN KEY(sex)
                                                  REFERENCES example2(sex),
                                                   );id為主鍵且自動成長不可為空,Name為字串不可為空,stu_id是唯一鍵自動成長,sex是外鍵,example2是student的父表。

6、設定表屬性的預設值(如果插入一條新的記錄沒有為這個欄位賦值,那麼資料庫系統會自動為這個欄位插入預設值):DEFAULT
mysql>CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT,
                                                  name CHAR(20) NOT NULL,
                                                  stu_id UNIQUE INT AUTO_INCREMENT,
                                                  sex CHAR(6) DEFALUT ‘man‘,
                                                   );id為自動成長整數類型,且是主鍵;name為字元類型,不可為空;stu_id是唯一鍵自動成長;sex的預設值是man。

MySQL-建立表及其約束

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.