MySQL:SQL进阶

安全管理

创建用户账号

1
create user ben inentified by ‘p@$$w0rd’

查看访问权限

1
show grants for ben

授权: 要授予的权限,被授予访问权限的数据库或表、用户名

1
grant select on crashcourse.* to ben

撤销权限:revoke

索引

索引创建:

  • alter table table_name add [index|key] [index_name] [index_type] [index_col_name,..] [index_option]
  • create [unique] index index_name [index_type] on table_name [index_col_name]

索引删除

  • alter table table_name drop [index|key] index_name
  • rrop index index_name on table_name

可以只对一个列的一部分数据索引。例如只索引前100个字段:alter table t add key idx_d (b(100))

使用show index from table查看索引

  • Table:索引所在的表名。
  • Non_unique:非唯一的索引,如果是primary key则值为0.
  • Key_name:索引的名字。
  • Seq_in_index:索引中该列的位置。
  • Column_name:索引列的名称。
  • Collation:列以什么方式存储在索引中,A即排序的,Null则为非排序。
  • Cardinality:表示索引中唯一值的估计值,应该尽量为1.
  • Sub_part:是否是列的部分被索引。
  • Packed:关键字如何被压缩,如果没有压缩,则为NULL。
  • Null:是否索引的列含有NULL值。
  • Index_type:索引的类型,InnoDB只支持BTREE。
  • Comment:注释。

参考