修改表
ALTER TABLE tb_name;
1.添加字段
ALTER TABLE tb_name ADD 字段名字 字段类型 约束条件 [FIRST/AFTER 字段名称]
1>添加用户名字段
ALTER TABLE test ADD username VARCHAR(20);
2>将字段test添加到表中第一个字段
ALTER TABLE test ADD test VARCHAR(20) FIRST;
3>在id之后添加年龄字段
ALTER TABLE test ADD age TINYINT UNSIGNED AFTER id;
4>一次添加多个字段
ALTER TABLE test ADD test1 INT UNSIGNED NOT NULL,
ADD test2 TINYINT UNSIGNED NOT NULL DEFAULT 12,
ADD test3 INT;
2.删除指定字段
ALTER TABLE tb_name DROP [COLUMN] 字段名称;
将test1字段删除
ALTER TABLE test DROP COLUMN test1;
将test字段删除
ALTER TABLE test DROP test;
将test2,test3,字段删除,添加test4
ALTER TABLE test DROP test2,DROP test3,ADD test4 INT;
3.修改列定义MODIFY
ALTER TABLE tb_name MODIFY 字段名称 字段类型 约束条件 [FIRST|AFTER 字段名称];
将test4字段变为VARCHAR(20) NOT NULL DEFAULT 'THIS IS A TEST' FIRST
ALTER TABLE test MODIFY test4 VARCHAR(20) NOT NULL DEFAULT 'THIS IS A TEST' FIRST;
4.CHANGE修改字段名称
ALTER TABLE tb_name CHANGE 原字段名称 新字段名称 字段类型 约束条件 [FIRST|AFTER 字段名称]
将test4修改为test2
ALTER TABLE test CHANGE test4 test2 VARCHAR(32);(必须给新名称指定类型)
将test2修改为test2 数据类型 INT NOT NULL DEFAULT 100
ALTER TABLE test CHANGE test2 test2 INT NOT NULL DEFAULT 100;
将id字段修改为主键并自增长
ALTER TABLE test CHANGE id id INT UNSIGNED NOT NULL AUTO_INCREMENT KEY;
将test2的字段位置改在username 之后
ALTER TABLE test CHANGE test2 test2 INT UNSIGNED NOT NULL DEFAULT 100 AFTER username;
5.添加主键ADD PRIMARY KEY
ALTER TABLE tb_name ADD PRIMARY KEY(字段名称)
CREATE TABLE test1(
id TINYINT);
将id字段添加为主键
ALTER TABLE test1 ADD PRIMARY KEY(id);
ALTER TABLE test1 ADD CONSTRAINT symbol PRIMARY KEY(id);
5.删除主键DROP PRIMARY KEY
ALTER TABLE tb_name DROP PRIMARY KEY;
删除TEST1的主键
ALTER TABLE test1 DROP PRIMARY KEY;
CREATE TABLE test2(
id TINYINT UNSIGNED AUTO_INCREMENT KEY
);
删除test2主键
ALTER TABLE test2 MODIFY id TINYINT UNSIGNED
ALTER TABLE test2 DROP PRIMARY KEY;
6.添加唯一
ALTER TABLE tb_name ADD UNIQUE [KEY|INDEX][index_name](字段名称)
age字段唯一
ALTER TABLE test ADD UNIQUE (age);
将username字段添加成唯一,同时指定索引名称
ALTER TABLE test ADD UNIQUE KEY un_username (username);
8删除索引DROP INDEX index_name
ALTER TABLE tb_name DROP INDEX index_name;
age索引删除
ALTER TABLE test DROP INDEX age;
username字段唯一索引删除
ALTER TABLE test DROP INDEX un_username;
9.添加默认约束
alter table tb_name ALTER 字段名称 SET DEFAULT 值;
username字段添加
ALTER TABLE test ALTER username SET DEFAULT 'KING';
10.删除默认约束
ALTER TABLE tb_name ALTER 字段名称 DROP DEFAULT;
username删除
ALTER TABLE test ALTER username DROP DEFAULT;
11.修改表名
ALTER TABLE tb_name RENAME [TO|AS] new_name;
RENAME TABLE tb_name TO new_name;
test表命名kaikeba
ALTER TABLE test RENAME TO kaikeba;
kaikeba表命名test
ALTER TABLE kaikeba RENAME test;
test表命名ran
RENAME TABLE test TO ran;
12修改表的存储引擎
ALTER TABLE tb_name ENGINE=存储引擎名称;
ALTER TABLE test ENGINE=MyISAM;
13.修改自增长的值
ALTER TABLE tb_name AUTO_INCREMENT=值;
ran表AUTO_INCREMENT=100
ALTER TABLE ran AUTO_INCREMENT=100;
记录的操作DML(增删改)
1>插入记录的操作INSERT
INSERT [INTO] tb_name [(字段名称……)]VALUES(值|exp|)
DEFAULT……)
CREATE TABLE IF NOT EXISTS user(
id SMALLINT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL UNIQUE,
age TINYINT UNSIGNED
)ENGINE=InnoDB CHARSET='UTF8'
--插入记录
INSERT INTO user VALUES(1,'2E',2);
指定字段名称
INSERT user(username,age) VALUES('DSA',9);
INSERT user(id,username,age) VALUES(NULL,'DSESA',9);
INSERT user(id,username,age) VALUES(DEFAULT,'SDA',4+3);
一次插入多听记录
INSERT [INTO] tb_name [(字段名称……)]VALUES(值……),(值……)
INSERT INTO user(username,age) VALUES ('A',2),('W',9)