2021-7-29 MySql进阶
Alter的使用:
列的增加和删减
alter table users add user_name VARCHAR(100);#添加一列在末尾 SELECT * from users; alter table users drop user_name;#删除一列 SELECT * from users; alter table users add user_name VARCHAR(100) first;#添加一列在第一行 SELECT * from users; alter table users drop user_name; alter table users add user_name VARCHAR(100) after user_password;#添加一列在user_password之后 SELECT * from users; alter table users drop user_name;
修改列的名称和类型
alter table users MODIFY user_name int;#将user_name修改成int类型 alter table users CHANGE user_name uname VARCHAR(100);#将列user_name的名称改成uname,类型改为varchar(100);
修改列的默认值
alter table users alter uname set DEFAULT 100;#设置默认值 show COLUMNS from users; alter table users alter uname drop DEFAULT;#删除默认值 show COLUMNS from users;#显示表的设计状态
修改表的各种状态
alter table users ENGINE=myisam;#修改表状态为myisam show table STATUS like 'users' ;#展示表的状态 alter table users ENGINE=INNODB; SHOW table STATUS like 'users';
修改表的名称
alter table newtable rename to school;#将newtable的表名称改为school
索引的使用:
索引可以大大提高索引效率,但是用太多的索引,但会降低更新表的速度,所以不要滥用
CREATE TABLE mytable ( ID INT NOT NULL, username VARCHAR(16) NOT NULL, index usernameIndex (username)#创建表的时候创建索引 ); drop index usernameIndex on mytable;#删除索引 drop TABLE mytable; CREATE TABLE newtable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, UNIQUE usernameIndex (username) #创建唯一索引 ); drop TABLE newtable
普通索引:没有什么限制;
唯一索引:索引列的每个值都必须是唯一值
主键:只能有一列
全文索引:适合用于模糊查询,查找字符串内的字符
CREATE TABLE mytable ( ID INT NOT NULL, username VARCHAR(16) NOT NULL, index usernameIndex (username)#创建表的时候创建索引 ); drop index usernameIndex on mytable;#删除索引 alter table mytable ADD PRIMARY key(ID);#主键索引 show INDEX from mytable;#显示索引 alter table mytable drop PRIMARY key; alter table mytable add UNIQUE idIndex(ID);#唯一索引 show INDEX from mytable; drop index idIndex on mytable; alter table mytable add index idIndex(ID);#索引 show INDEX from mytable; drop index idIndex on mytable; alter table mytable add FULLTEXT idIndex(username);#全文索引 show INDEX from mytable; drop index idIndex on mytable; drop table mytable;