show databases;
show tables;
show columns from table_name;
show index from table_name;
use database_name;
create table t1(a integer, b char(10));
alter table t1 rename t2; // 表改名
alter table t2 modify a tinyint not null; // 修改列属性
alter talbe t2 change b c char(20); // 修改列名称及属性
alter table t2 add d timestamp; // 增加列
alter table t2 add index(a); // 增加索引
alter table t2 drop column c; // 删除列
select ceil(20/6); //向上取整4
select floor(20/6); //向下取整3
// benchmark(loop_count, expression)
select benchmark(10000, floor((123456>>2)/20)); //测试表达式或函数的执行时间
// 字符串拼接
update table_name set another_name = concat("helllo", id);
// 修改密码
update user set password=password('new_password') where user = 'user_name';
flush privileges;
grant all privileges on db.table to user_name@localhost identified by 'new_password';
//
Error Code: 1451 a foreign key constraint fails
设置了foreign key关联,造成无法更新或删除数据,如果确认不会影响到其他的表,设置FOREIGN_KEY_CHECKS来删除
SET FOREIGN_KEY_CHECKS = 0;
SET FOREIGN_KEY_CHECKS = 1;
show index from tbl_name
Table 表名称
Non_unique 如果索引不能包括重复词,则为0。如果可以,则为1
Key_name 索引的名称
Seq_in_index 索引中的列序列号,从1开始
Column_name 列名称
Collation 列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类)
Cardinality 索引中唯一值的数目的估计值。通过运行ANALYZE TABLE或myisamchk -a可以更新。基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机会就越大
Sub_part 如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL
Packed 指示关键字如何被压缩。如果没有被压缩,则为NULL
Null 如果列含有NULL,则含有YES。如果没有,则该列含有NO
Index_type 用过的索引方法(BTREE, FULLTEXT, HASH, RTREE)
Comment 评注
alter table运行时会对原表进行临时复制,在副本上进行更改,然后删除原表,再对新表进行重命名。在执行alter table 时,其它用户可以阅读原表,但是对表的更新和修改的操作将被延迟,直到新表生成为止。新表生成后,这些更新和修改信息会自动转移到新表上。