Mysql操作——数据库高级
本文主讲:Mysql数据库中的高级操作,例如建立与删除索引、管理用户等……
数据库索引——建立和删除索引【重点】
数据库索引的应用场景
答:假设数据库内有大量数据时,我们要查找某一行数据,为这个数据字段加上索引会大大的提高查询效率,提高查询速度!
索引在数据库内的保存机制是平衡查询树机制,即 B+tree
怎么在数据库内创建索引
语法:
1:create index 索引名称 on 数据表名(字段名(长度))
2:create index 索引名称 on 数据表名(字段名)
注意事项:
1:如果数据库内是唯一索引,索引名称按照 unip_字段名称 来命名,非唯一索引按照 idx_字段名称来命名
2:索引名称必须全部为小写
3:如果需要加索引的那个字段是字符串类型,那么在创建索引时要加上这个字段的最大长度,例如 varchar(10),就要加上10
4:单张表中索引数量不超过5个
快速代码体验:
怎么查看数据库内的索引
语法:show index from 数据表名
代码:
怎么删除数据库的索引
语法:drop index 索引名称 on 数据表
代码:
数据库索引——插入10万条数据
怎么在 python 端向数据库插入100000 条数据
答:利用 for 循环
代码:
数据库索引——验证索引效率【重点】
如何验证数据库插入索引后查询某条数据的效率会提升!
答:利用 mysql 数据库内置的SQL语句耗时监视方法 —— profiling (耗时监视方法)
验证步骤:
第一步:打开 SQL语句耗时监视方法 即 set profiling = 1 ;
第二步:执行查询某条数据的SQL语句 例如 select * from indes_ceshi where title = “haha_99999”;
第三步:为要查询的数据字段加上索引再次查询第二步相同的数据
第四步:执行显示耗时语句 即 show profiles;
第五步:对比耗时,看加入索引是否提升了效率
图示:
用户管理【重点】
Mysql用户的应用场景
答:就像做公众号一样,多人团队协作,创建其他用户并分配一些权限用于多人协作,每一个用户有自己的职责
怎么查看指定数据库的所有用户
第一步:利用 root 用户登录数据库,并且进入默认创建的 mysql 数据库,即 use mysql;
第二步:利用 desc 查看 user 数据表内的字段结构 即desc user;
第三步:利用 select 查看用户、主机等字段信息,即 select host,host from user;
截图:
怎么创建用户并且分配权限
创建用户步骤:
第一步:利用 root 登录数据库,进入指定数据库
第二步:创建用户,即 create user “用户名”@“主机名”identified by “密码”;
第三步:给这个用户分配权限,即 grant 权限 on python_ceshi2 . * to“用户名”@“主机名”;
其中 python_ceshi2 . * 表示为 python_ceshi2 数据库内的所有数据表添加这个用户权限,也可以是为特定数据表添加权限等!
用户权限有很多种,例如 create select ,insert ,update,delete等,其中 all privileges 代表添加所有权限
注意区分主机名是localhost与%的区别
第四步:刷新权限,即 flush privileges;
截图:
注意:下面的截图忘记了第四步骤即刷新权限 flush privileges;
怎么查询一个用户的所有权限
语法:show grants for “用户名”@“主机”;
截图:
用户管理——增加权限【重点】
怎么增加指定用户的权限
语法:grant update on 数据库.数据表 to “用户名”@“主机” with grant option;
表示向指定用户新增 update 权限
截图:
用户管理——重置密码【重点】
如何在知道密码的情况下重置用户密码
语法:alter user “用户名”@“主机” identified by “新密码”
注意事项:这个操作需要用户先输入数据库原始密码进入数据库之后才能操作
截图:
如何在丢失用户数据库密码的情况下修改密码
第一步:停止数据库服务,即 sudo service mysql stop
第二步:编辑数据库文件,即 sudo gedit 找到某一个数据库文件,在[mysqld]字段下面添加 skip-grant-tables
第三步:重启数据库 service mysql start
第四步:直接在命令行输入 mysql 即可进入数据库
第五步:用这个指令修改密码 update user set authentication_string = “” where user=”root” 重置 root 用户的密码
第六步:退出数据库 输入空密码进行登录数据库 即 mysql -u root -p
第七步:通过指令 alter user “root”@“%”identified by “新密码”进行重置密码
用户管理——删除用户【重点】
如何指定用户远程登录数据库
第一步:本地数据库内检查用户的主机是否为%,如果是localhost就不能远程登录,只能本机登录,需要修改
第二步:在 Windows 中输入指令即可远程连接数据库,即 mysql -h windows的ip地址 -u 用户名 -p 然后输入密码即可
如何删除数据库指定用户
语法:
1:drop user “用户名”@“主机”
2:delete from user where user = “laowang” (进入mysql数据库内的user表内删除用户)
爬虫实战——爬取数据保存至数据库内【应用】
……..
爬虫实战——展示爬取的数据【应用】
未完待续……