mysql基础

 

 

 

 

 

修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
//set password for '用户名'@'IP地址' = Password('新密码')

创建用户:

CREATE USER 'xxh'@'%' IDENTIFIED WITH mysql_native_password BY 'xxh123!@#';

create user '用户名'@'IP地址' identified by '密码';

删除用户

drop user '用户名'@'IP地址';

修改用户

rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';;

授权所有权限

GRANT ALL PRIVILEGES ON *.* TO 'xxh'@'%'

授权基本的查询修改权限,按需求设置

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'xxh'@'%';
FLUSH PRIVILEGES;

用户权限

show grants for '用户'@'IP地址'                  -- 查看权限
grant  权限 on 数据库.表 to   '用户'@'IP地址'      -- 授权
revoke 权限 on 数据库.表 from '用户'@'IP地址'      -- 取消权限

对于目标数据库以及内部其他:
      数据库名.*           数据库中的所有
      数据库名.表          指定数据库中的某张表
      数据库名.存储过程     指定数据库中的存储过程
      *.*                所有数据库

用户名@IP地址         用户只能在该IP下才能访问
用户名@192.168.1.%   用户只能在该IP段下才能访问(通配符%表示任意)
用户名@%             用户可以再任意IP下访问(默认IP地址为%)
all privileges  除grant外的所有权限
            select          仅查权限
            select,insert   查和插入权限
            ...
            usage                   无访问权限
            alter                   使用alter table
            alter routine           使用alter procedure和drop procedure
            create                  使用create table
            create routine          使用create procedure
            create temporary tables 使用create temporary tables
            create user             使用create userdrop user、rename user和revoke  all privileges
            create view             使用create view
            delete                  使用delete
            drop                    使用drop table
            execute                 使用call和存储过程
            file                    使用select into outfile 和 load data infile
            grant option            使用grant 和 revoke
            index                   使用index
            insert                  使用insert
            lock tables             使用lock table
            process                 使用show full processlist
            select                  使用select
            show databases          使用show databases
            show view               使用show view
            update                  使用update
            reload                  使用flush
            shutdown                使用mysqladmin shutdown(关闭MySQL)
            super                   􏱂􏰈使用change master、kill、logs、purge、master和set global。还允许mysqladmin􏵗􏵘􏲊􏲋调试登陆
            replication client      服务器位置的访问
            replication slave       由复制从属使用
权限类型

 

索引

索引分单列索引和组合索引

  • 单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引;
  • 组合索引,即一个索引包含多个列。

创建索引时,需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录

索引的不足

虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。建立索引会占用磁盘空间的索引文件。

普通索引

创建索引

创建索引:CREATE INDEX indexName ON mytable(username(length));

如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length

修改表结构: ALTER mytable ADD INDEX [indexName] ON (username(length))

创建表时,直接指定索引

 CREATE TABLE mytable( 
    ID INT NOT NULL,  
    username VARCHAR(16) NOT NULL, 
    INDEX [indexName] (username(length)) 
 ); 

删除索引: DROP INDEX [indexName] ON mytable;

唯一索引

 创建索引
 CREATE UNIQUE INDEX indexName ON mytable(username(length))
  
 修改表结构
 ALTER mytable ADD UNIQUE [indexName] ON (username(length))

显示索引信息

 mysql> SHOW INDEX FROM table_name\G

 

 

 

 

posted @ 2018-11-14 14:22  徘徊的游鱼  阅读(242)  评论(0编辑  收藏  举报