mysql 處理

修改字段屬性:測試

 

-- 修改字段屬性
-- ALTER TABLE tb_name MODIFY 字段名稱 字段類型 [完整性約束條件]
-- 將email字段 VARCHAR(50)修改爲VARCHAR(200)
-- 注意,修改時若是不帶完整性約束條件,原有的約束條件將丟失,若是想保留修改時就得帶上完整性約束條件
ALTER TABLE user10 MODIFY email VARCHAR(200) NOT NULL DEFAULT 'a@a.com';

-- 將card移到test後面
ALTER TABLE user10 MODIFY card CHAR(10) AFTER test;

-- 將test放到第一個,保留原完整性約束條件
ALTER TABLE user10 MODIFY test CHAR(32) NOT NULL DEFAULT '123' FIRST;

 

修改字段名稱和屬性:spa

-- 將test字段改成test1
-- ALTER TABLE 表名 CHANGE 原字段名 新字段名 字段類型 約束條件
ALTER TABLE user10 CHANGE test test1 CHAR(32) NOT NULL DEFAULT '123';

 

添加刪除默認值:索引

 

-- 建立新表
CREATE TABLE user11(
id TINYINT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL UNIQUE,
age TINYINT UNSIGNED
);

-- 給age添加默認值
ALTER TABLE user11 ALTER age SET DEFAUTL 18;
-- 添加一個字段
ALTER TABLE user11 ADD email VARCHAR(50);
-- 給email添加默認值
ALTER TABLE user11 ALTER email SET DEFAULT 'a@a.com';

-- 刪除默認值
ALTER TABLE user11 ALTER age DROP DEFAULT;
ALTER TABLE user11 ALTER email DROP DEFAULT;

 

 

添加主鍵:test

 

-- 建立一個表
CREATE TABLE test12(
id INT
);
-- 添加主鍵
-- ALTER TABLE tb_name ADD [CONSTRAINT [sysmbol]] PRIMARY KEY [index_type] (字段名稱,...)
ALTER TABLE test12 ADD PRIMARY KEY(id);


-- 添加複合主鍵
-- 先建立個表
CREATE TABLE test13(
id INT,
card CHAR(18),
username VARCHAR(20) NOT NULL
);
-- 添加複合主鍵
ALTER TABLE test13 ADD PRIMARY KEY(id,card);

 

刪除主鍵:email

-- 刪除主鍵
ALTER TABLE test12 DROP PRIMARY KEY;

-- 再給test12添加主鍵, 完整形式
ALTER TABLE test12 ADD CONSTRAINT symbol PRIMARY KEY index_type(id);

在刪除主鍵時,有一種狀況是須要注意的,咱們知道具備自增加的屬性的字段必須是主鍵,若是表裏的主鍵是具備自增加屬性的;那麼直接刪除是會報錯的。若是想要刪除主鍵的話,能夠先去年自增加屬性,再刪除主鍵mail

 

-- 再建立一個表,
CREATE TABLE test14(
id INT UNSIGNED KEY AUTO_INCREMENT
);

-- 刪除主鍵,這樣會報錯,由於自增加的必須是主鍵
ALTER TABLE test14 DROP PRIMARY KEY;

-- 先用MODIFY刪除自增加屬性,注意MODIFY不能去掉主鍵屬性
ALTER TABLE test14 MODIFY id INT UNSIGNED;
-- 再來刪除主鍵
ALTER TABLE test14 DROP PRIMARY KEY;

 

 

 

惟一索引:co

 

-- 添加惟一性約束
-- ALTER TABLE tb_name ADD [CONSTANT [symbol]] UNIQUE [INDEX | KEY] [索引名稱](字段名稱,...)

-- 建立測試表
CREATE TABLE user12(
id TINYINT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
card CHAR(18) NOT NULL,
test VARCHAR(20) NOT NULL,
test1 CHAR(32) NOT NULL
);

-- username添加惟一性約束,若是沒有指定索引名稱,系統會以字段名創建索引
ALTER TABLE user12 ADD UNIQUE(username);
-- car添加惟一性約束
ALTER TABLE user12 ADD CONSTRAINT symbol UNIQUE KEY uni_card(card);
-- 查看索引
SHOW CREATE TABLE user12;

-- test,test1添加聯合unique
ALTER TABLE user12 ADD CONSTRAINT symbol UNIQUE INDEX mulUni_test_test1(test, test1);

-- 刪除惟一
-- ALTER TABLE tb_name DROP {INDEX|KEY} index_name;
-- 刪除剛剛添加的惟一索引
ALTER TABLE user12 DROP INDEX username;
ALTER TABLE user12 DROP KEY uni_card;
ALTER TABLE user12 DROP KEY mulUni_test_test1;

 

 

修改表的存儲引擎:存儲引擎

-- 修改表的存儲引擎
-- ALTER TABLE tb_name ENGINE=存儲引擎名稱
ALTER TABLE user12 ENGINE=MyISAM;
ALTER TABLE user12 ENGINE=INNODB;

 

修改自增加值:index

-- 修改自增加的值
-- ALTER TABLE tb_name AUTO_INCREMENT=值
ALTER TABLE user12 AUTO_INCREMENT=100;
相關文章
相關標籤/搜索