Mysql 学习-1

来源:互联网 发布:网络机房装修招聘 编辑:程序博客网 时间:2024/04/30 16:55
    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_nameTable         表名称Non_unique    如果索引不能包括重复词,则为0。如果可以,则为1Key_name      索引的名称Seq_in_index  索引中的列序列号,从1开始Column_name   列名称Collation     列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类)Cardinality   索引中唯一值的数目的估计值。通过运行ANALYZE TABLE或myisamchk -a可以更新。基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机会就越大Sub_part      如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULLPacked        指示关键字如何被压缩。如果没有被压缩,则为NULLNull          如果列含有NULL,则含有YES。如果没有,则该列含有NOIndex_type    用过的索引方法(BTREE, FULLTEXT, HASH, RTREE)Comment       评注


alter table运行时会对原表进行临时复制,在副本上进行更改,然后删除原表,再对新表进行重命名。在执行alter  table 时,其它用户可以阅读原表,但是对表的更新和修改的操作将被延迟,直到新表生成为止。新表生成后,这些更新和修改信息会自动转移到新表上。


原创粉丝点击