mysql讀書筆記

weixin_33728268發表於2016-02-23

花了2周,讀完了 《mysql入門很簡單》,畢竟是入門書, 400多頁翻起來也很快,以下是把幾個點梳理下

一 建立,修改,刪除表

  CREATE TABLE 表名(屬性名 資料型別 [完整性約束],
                    屬性名 資料型別 [完整性約束],  
);
 例子
 CREATE TABLE example ( stu_id INT PRIMARY KEY UNIQUE NOT NULL AUTO_INCREMENT,
                        stu_name = VARCHAR(20),
                        stu_sex BOOLEN
);

CREATE TABLE example1 ( id INT PRIMARY KEY UNIQUE NOT NULL AUTO_INCREMENT,
                        course VARCHAR(10) NOT NULL DEFAULT 'english',
                        s_num INT(10) NOT NULL,
                        CONSTRAINT example1_fk FOREIGN KEY (s_sum)
                        REFERENCES example ( stu_id )     
);
約束條件:
  1. PRIMARY KEY 設定主鍵
  2. UNIQUE 設定該屬性值唯一
  3. NOT NULL 不為空
  4. FOREIGN KEY 外來鍵
  5. AUTO_INCREMENT 自動增加,一般設定為主鍵
  6. DEFAULT 設定預設值
檢視錶結構
DESC example;
SHOW CREATE TABLE example \G;
# \G可以使顯示結果更加美觀
修改表名
ALTER TABLE 舊錶名 RENAME 新表名;

ALTER TABLE example RENAME new;
修改欄位型別
ALTER TABLE 表名 MODIFY 屬性名, 資料型別;

ALTER TABLE example  MODIFY stu_name VARCHAR(30);
修改欄位名
  ALTER TABLE 表名 CHANGE 舊屬性名 新屬性名 新屬性型別;
  
  ALTER TABLE example CHANGE stu_name stu_new VARCHAR(30);
增加欄位
ALTER TABLE 表名 ADD 屬性名1 資料型別 [完整性約束條件] [FIRST | AFTER 屬性名2];

ALTER TABLE example ADD phone VARCHAR(30) 
ALTER TABLE example ADD phonenum VARCHAR(30)  AFTER stu_name 
#把phonenum新增到stu_name屬性後
刪除欄位
ALTER TABLE 表名 DROP 屬性名;

ALTER TABLE example DROP phone;
修改欄位排列
ALTER TABLE 表名 MODIFY 屬性名1 資料型別 FIRST | AFTER 屬性名2

phonenum修改到最前面
ALTER TABLE example phonenum VARCHAR(30) FIRST; 
#phonenum 放到stu_name後面
ALTER TABLE example phonenum varchar(30) after stu_name;
修改引擎
ALTER TABLE 表名 ENGINE = 儲存引擎名;

ALTER TABLE example ENGINE = MyISAM;
刪除表的外來鍵約束
ALTER TABLE 表名 DROP FOREIGN KEY 外來鍵別名

ALTER TABLE example1 DROP FOREIGN KEY example_fk;
刪除表
DROP TABLE example1;

二 索引

相關文章