mysql权限管理
Mysql账户管理知识点背景1234# mysql中所有的数据用户数据、权限设置都存放在mysql数据库中,其中user表中存放了用户的信息# user表中host标识登录方式:%表示任意一个IP都可登录,localhost表示只能本地登录,具体IP值表示允许特定主机登录use mysql;select user, host, authentication_string from user;
创建用户并授权12345678910111213141516171819202122# 创建用户并授权时,必须登录数据中的root账户# 数据库名.*:表示对该数据库下所有的数据表拥有这样的权限# 多个用户权限之间用,隔开,如select, insertgrant 权限列表 on 数据库名.* to '用户名'@'主机名' identified by '密码';# 例如给用户wuxiang添加本地登录的访问权限,使该账户只能拥有对数据库shuai中test表的读权限grant select on shuai.test to "wuxian ...
mysql与python交互
mysql与python交互知识点背景12# 非主键取默认值的方式:defaultinsert into 表名 (主键, 字段1, 字段2, ...) values (0, 值1, default)
同步表数据12345678910111213141516171819202122232425# 从已知表中选择数据插入到新表中insert into 新表(字段1, 字段2, ...) select 字段1, 字段2, ... from 老表 where 条件# 利用链表查询,将A中的pid更新为B中的ID值update A表 as A inner join B表 as B on A.name = B.name set A.pid = B.id# 设置表外键:设置外键时后再插入数据,此时会检查外键关联的表的数据是否存在,不存在就会报错# 数据库中尽量少用外键约束,因为其会极大的降低表更新的效率# 添加的外键必须不是主键,外键指向的键必须未其它表的主键alter table 表1 add foreign key (表1字段名) references 表2(表2字段名)# ...
mysql主从搭建
mysql主从知识点背景
解决问题
【读写分离】、【自动备份】、【负载均衡】
实现原理
mysql服务器之间的主从同步时基于二进制日志机制,主服务器使用二进制日志来记录数据库的变动情况,从服务器通过读取和执行该日志文件来保持和主服务器的数据一致
在使用二进制日志时,主服务器的所有操作都会被记录下来,然后从服务器会接受到该日志的一个副本。从服务器可以执行执行该日志中的哪一类事件(譬如只插入数据或只更新数据),默认会执行日志中的所有语句
每一个服务器会记录关于二进制日志的信息:文件名和已经处理过的语句,这样意味着不同的从服务器可以执行同一个二进制文件的不同部分,并且从服务器可以随时连接或者中断和服务器的连接
主服务器和每一个从服务器都必须配置一个唯一的ID号(在my.cnf文件的【mysqld】模块有一个server-id配置项)。此外每一个从服务器还需要通过change master to语句来配置它要连接的主服务器的IP地址、日志文件名称、该日志文件里面的位置(这些信息存储在主服务器的数据库中)
优点
通过增加从服务器来提高数据库的性能,在主服务器上执行写入和更新,在从服务 ...
mysql事务、视图、索引简介
mysql事务、视图、索引简介知识点函数12# ifnull(sql语句, 为null时的返回值):用于判断返回结果是否为nullselect ifnull(select * from user, "未查询到语句") as result
视图
背景
问题
对于复杂的查询查询,往往是由多个数据表进行关联查询而得到,如果数据库因为需求等原因发生了改变,为了保证查询出来的数据与之前相同,则需要在多个地方进行修改,维护起来特别麻烦
解决方案
创建视图
定义
通俗的讲,视图就是一条select语句执行后返回的结果集。所以我们在创建的时候,主要工作就落在创建这条sql语句上。
视图是对若干张基本表的引用,是一张虚拟的表,用于存放查询语句执行的结果,不存储具体的数据(基本表数据发生改变,视图也会随之发生改变)
优点
减少复杂的sql查询语句,增强可读性,
提高了重用性
数据库重构时并不影响程序的运行,减少程序代码和数据库数据的耦合度
提高安全性,针对不同的用户
代码结构
123456789101112# 视图的存在是为了查询数据的方便,不是为了修改数据# 定义 ...