文章目录
一、数据备份二、权限管理1.创建用户2.给用户授权3.删除用户4.修改用户密码4.1修改密码步骤4.2忘记密码怎么办 三、索引1.为什么要使用索引:2.添加索引的优缺点:3.索引的分类4.索引的操作一、数据备份
1.数据表导出
备份表:
mysqldump -u root -p 库名 表名 > 备份的表名.sql
2.数据库的导出
实际上是一次导入多张表,只不过表在一个sql文件
备份库:
mysqldump -u root -p 库名 >备份的库名.sql
3.数据的导入
导入库需要先创建输入库,因为实际是导入表,必须重新创入个新的数据库,然后再导入:
mysql -uroot -p 库名<备份的文件.sql
二、权限管理
1.创建用户
基本格式:
create user '用户名'@'ip地址' identified by '密码';
举例
创建用户名为lisi 任何位置都可以登录:Create user 'lisi'@'%' identified by '123456';创建用户wangwu 只能本地登录的用户Create user 'wangwu'@'localhost' identified by '123456';创建用户wzy只能在ip地址为10.10.107.85的设备上链接数据库create user 'wzy'@'10.10.107.85' identified by '123456';
2.给用户授权
基本格式:
grant 权限 on 库名.表名 to 用户名@'地址';
举例
给lisi添加 所有库所有表的 查询权限Grant select on *.* to 'lisi'@'%';给远程连接的zhaoliu用户添加对demo1数据库下所有表的所有权限Grant all on demo1.* to 'zhaoliu'@'%';
3.删除用户
基本格式:
drop user '用户名'@'ip地址' ;
4.修改用户密码
Mysql 有一个默认的mysql库 有一个user表,这个表中存放的就是咱们用户信息!我们的密码字符是authentication_string
4.1修改密码步骤
进入数据库软件并且切换到mysql库中,给root账户换个密码为123456
update user set authentication_string=password('123456') where User='root' and host='localhost';
重新启动服务(注意是退出数据库后)
net stop mysqlnet start mysql
重新连接数据库 使用密新码登录
4.2忘记密码怎么办
修改配置文件(f文件) 在mysqld最后一行添加skip-grant-tables
,跳过权限验证
②重新启动服务(注意是退出数据库后)
net stop mysqlnet start mysql
③登录数据库,此时不需要输入密码即可登录,执行修改密码操作
④把配置文件修改回来
⑤重启服务 使用新密码登录即可**
三、索引
特点:一种高效获取数据的存储结构,类似于子字典的目录
1.为什么要使用索引:
可以提升查询数据的效率 减少io的操作 创建索引时,数据库会额外的创建一张表,来维护索引,会占用磁盘 的资源,一般索引的空间比数据大
索引一般支持的数据结构,b+tree b-tree 哈希
————————————b+tree的基本结构————————————
B+tree的特点:
特点:有三层 分别是 根节点,子节点和叶子节点且左右对称*根节点不存储数据,数据存储在叶子节点叶子节点同时保存了写一个数据节点的地址
2.添加索引的优缺点:
优点:提升数据的查询速度,减少io操作缺点:维护成本高,会降低其他操作的执行速度注意:添加索引可以增加查询的速度,但是不是索引越多越好
添加索引一般 是给经常用作where条件的字段添加
我们一般遵循最左原则:
Select * from user where username=’zhansgan’ and age=18;
3.索引的分类
4.索引的操作
4.1添加索引:
格式:
alter table 表名 add 索引类型 【索引名】(字段名);
如果不指定索引的名字,那么索引名就以字段名为准
4.2删除主键索引的格式:
删除主键索引要先将主建索引的自增属性删除 然后才能删除主键索引
Alter table 表名 drop primary key;
4.3查看索引:
格式:
show index from 表名;
4.4删除索引:
drop index 索引的名字 on 表名;