Mysql操作——数据库高级

本文主讲:Mysql数据库中的高级操作,例如建立与删除索引、管理用户等……

数据库索引——建立和删除索引【重点】

数据库索引的应用场景

答:假设数据库内有大量数据时,我们要查找某一行数据,为这个数据字段加上索引会大大的提高查询效率,提高查询速度!

索引在数据库内的保存机制是平衡查询树机制,即 B+tree

怎么在数据库内创建索引

语法:

1:create index 索引名称 on 数据表名(字段名(长度))

2:create index 索引名称 on 数据表名(字段名)

注意事项:

1:如果数据库内是唯一索引,索引名称按照 unip_字段名称 来命名,非唯一索引按照 idx_字段名称来命名

2:索引名称必须全部为小写

3:如果需要加索引的那个字段是字符串类型,那么在创建索引时要加上这个字段的最大长度,例如 varchar(10),就要加上10

4:单张表中索引数量不超过5个

快速代码体验:

image-20211012153012185

怎么查看数据库内的索引

语法:show index from 数据表名

代码:

image-20211012153021236

怎么删除数据库的索引

语法:drop index 索引名称 on 数据表

代码:

image-20211012153029769

数据库索引——插入10万条数据

怎么在 python 端向数据库插入100000 条数据

答:利用 for 循环

代码:

image-20211012153041798

数据库索引——验证索引效率【重点】

如何验证数据库插入索引后查询某条数据的效率会提升!

答:利用 mysql 数据库内置的SQL语句耗时监视方法 —— profiling (耗时监视方法)

验证步骤:

第一步:打开 SQL语句耗时监视方法 即 set profiling = 1 ;

第二步:执行查询某条数据的SQL语句 例如 select * from indes_ceshi where title = “haha_99999”;

第三步:为要查询的数据字段加上索引再次查询第二步相同的数据

第四步:执行显示耗时语句 即 show profiles;

第五步:对比耗时,看加入索引是否提升了效率

图示:

image-20211012153103669

用户管理【重点】

Mysql用户的应用场景

答:就像做公众号一样,多人团队协作,创建其他用户并分配一些权限用于多人协作,每一个用户有自己的职责

怎么查看指定数据库的所有用户

第一步:利用 root 用户登录数据库,并且进入默认创建的 mysql 数据库,即 use mysql;

第二步:利用 desc 查看 user 数据表内的字段结构 即desc user;

第三步:利用 select 查看用户、主机等字段信息,即 select host,host from user;

截图:

image-20211012153124479

image-20211012153133021

怎么创建用户并且分配权限

创建用户步骤:

第一步:利用 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;

image-20211012153201477

怎么查询一个用户的所有权限

语法:show grants for “用户名”@“主机”;

截图:

image-20211012153218766

用户管理——增加权限【重点】

怎么增加指定用户的权限

语法:grant update on 数据库.数据表 to “用户名”@“主机” with grant option;
表示向指定用户新增 update 权限

截图:

image-20211012153230513

用户管理——重置密码【重点】

如何在知道密码的情况下重置用户密码

语法:alter user “用户名”@“主机” identified by “新密码”

注意事项:这个操作需要用户先输入数据库原始密码进入数据库之后才能操作

截图:

image-20211012153241543

如何在丢失用户数据库密码的情况下修改密码

第一步:停止数据库服务,即 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表内删除用户)

爬虫实战——爬取数据保存至数据库内【应用】

……..

爬虫实战——展示爬取的数据【应用】

未完待续……