小木的学习笔记
-- 添加字段 -- ALTER TABLE table_name ADD 字段名称 字段类型 [完整性约束条件] [FIRST|AFTER] -- 给tb_user添加card字段 ALTER TABLE tb_user ADD card CHAR(18); -- 给card添加默认值 ALTER TABLE tb_user ALTER card SET DEFAUTL 1000001; -- 删除默认值 ALTER TABLE tb_user ALTER card DROP DEFAULT; -- 带完整性约束条件的 ALTER TABLE tb_user ADD test1 VARCHAR(100) NOT NULL UNIQUE; -- 添加字段到第一位 ALTER TABLE tb_user ADD test2 VARCHAR(10) NOT NULL FIRST; -- 添加字段到指定位置 ALTER TABLE tb_user add test3 INT NOT NULL DEFAUTL 100 AFTER username; -- 批量添加,一次选中,多次添加 ALTER TABLE tb_user ADD test4 INT NOT NULL DEFAULT 123 AFTER password, ADD test5 FLOAT(6,2) Frist, ADD test6 SET('A','B','C','D');
-- 删除字段 -- ALTER TABLE 表名 DROP 字段名 ALTER TABLE tb_user DROP test6; -- 一次选中表,删除多个字段 ALTER TABLE tb_user DROP test2, DROP test3, DROP test5;
-- 彻底清空数据表 -- TRUNCATE [TABLE] table_name -- 清空数据,并重置AUTO_INCREMENT TRUNCATE tb_user;
-- 修改字段属性 -- ALTER TABLE table_name MODIFY 字段名称 字段类型 [完整性约束条件] -- 将email字段 VARCHAR(50)修改成VARCHAR(200) -- 注意,修改时如果不带完整性约束条件,原有的约束条件将丢失,如果想保留修改时就得带上完整性约束条件 ALTER TABLE tb_user MODIFY email VARCHAR(200) NOT NULL DEFAULT 'a@a.com'; -- 将card移到test后面 ALTER TABLE tb_user MODIFY card CHAR(10) AFTER test; -- 将test放到第一个,保留原完整性约束条件 ALTER TABLE tb_user MODIFY test CHAR(32) NOT NULL DEFAULT '123' FIRST; 修改字段名称和属性: -- 将test字段改为test1 -- ALTER TABLE 表名 CHANGE 原字段名 新字段名 字段类型 约束条件 ALTER TABLE tb_user CHANGE test test1 CHAR(32) NOT NULL DEFAULT '123';
-- 先创建个表 CREATE TABLE tb_user( id INT, card CHAR(18), username VARCHAR(20) NOT NULL ); -- 添加主键 -- ALTER TABLE table_name ADD [CONSTRAINT [sysmbol]] PRIMARY KEY [index_type] (字段名称,...) ALTER TABLE tb_user ADD PRIMARY KEY(id); -- 添加复合主键 ALTER TABLE tb_user ADD PRIMARY KEY(id,card);
-- 删除主键 ALTER TABLE tb_user DROP PRIMARY KEY; -- 再给tb_user添加主键, 完整形式 ALTER TABLE tb_user ADD CONSTRAINT symbol PRIMARY KEY index_type(id); 在删除主键时,有一种情况是需要注意的,我们知道具有自增长的属性的字段必须是主键,如果表里的主键是具有自增长属性的;那么直接删除是会报错的。如果想要删除主键的话,可以先去年自增长属性,再删除主键 -- 再创建一个表, CREATE TABLE tb_user( id INT UNSIGNED KEY AUTO_INCREMENT ); -- 删除主键,这样会报错,因为自增长的必须是主键 ALTER TABLE tb_user DROP PRIMARY KEY; -- 先用MODIFY删除自增长属性,注意MODIFY不能去掉主键属性 ALTER TABLE tb_user MODIFY id INT UNSIGNED; -- 再来删除主键 ALTER TABLE tb_user DROP PRIMARY KEY;
-- 添加唯一性约束 -- ALTER TABLE table_name ADD [CONSTANT [symbol]] UNIQUE [INDEX | KEY] [索引名称](字段名称,...) -- username添加唯一性约束,如果没有指定索引名称,系统会以字段名建立索引 ALTER TABLE tb_user ADD UNIQUE(username); -- car添加唯一性约束 ALTER TABLE tb_user ADD CONSTRAINT symbol UNIQUE KEY uni_card(card); -- 查看索引 SHOW CREATE TABLE tb_user; -- test,test1添加联合unique ALTER TABLE tb_user ADD CONSTRAINT symbol UNIQUE INDEX mulUni_test_test1(test, test1); -- 删除唯一 -- ALTER TABLE table_name DROP {INDEX|KEY} index_name; -- 删除刚刚添加的唯一索引 ALTER TABLE tb_user DROP INDEX username; ALTER TABLE tb_user DROP KEY uni_card; ALTER TABLE tb_user DROP KEY mulUni_test_test1;
-- 修改自增长的值 -- ALTER TABLE table_name AUTO_INCREMENT=值 ALTER TABLE tb_user AUTO_INCREMENT=100;
标签: mysql