用户管理
用户权限管理:在不同的项目中给不同的角色不同的操作权限,为了保证数据库的安全
mysql需要客户端进行链接认证,mysql所有的用户信息都是保存在mysql数据库下的user表中
select*from mysql.user\G;
创建用户
create user 用户名 inentified by 明文密码
删除用户
drop user 用户名 @host;
修改密码:mysql中提供了多种修改方式,基本上都必须使用对应的一个系统行数:password(),靠函数对密码进行加密处理
set password for 用户 = password('新的明文密码');
update mysql.user set password = password('新的明文密码');
权限管理
数据权限:增删改查(select\update\delete\insert)
结构权限:结构操作(create\drop)
管理权限:权限管理(create user\grant\revoke),通常只有管理员有此权限
授予权限:grant
grant 权限列表 on 数据库名.表名 to 用户 //数据库.表名可以是整库或者某个表
grant all privileges on 数据库名.表名 to 用户 //all privileges 指所有权限
取消权限:revoke
revoke 权限列表/all privileges on 数据库.表 from 用户名
刷新权限
当对用户权限进行操作后,进行一个刷新,将操作的具体内容同步到表中
flush privileges;
外键
外键的基本要求
外键字段需要保证与关联的主表的主键字段类型完全一致
基本属性也要相同
如果在表后增加外键,对数据还有一定的要求(从表数据与主表的关联关系)
外键只能使用innode存储引擎
增加外键
[constraint '外键名' ]foreign key(外键字段) references 主表(主键);
alter table 从表 add constraint '外键名' foreign key(外键字段) references 主表(主键);
外键约束
通过建立外键关系之后,会主表和从表都会有一定的数据约束效率
当一个外键产生时,外键所在的表(从表)会受制于主表数据对的存在从而导致数据不能进行某些不符合规范的操作(不能插入主表不存在的数据)
如果一张表被其他表外键引入,那么该表的数据操作就不能随意,必须保证从表数的有效性(不能随便删除被从表引入的记录)
add foreign key(外键字段) references 主表(主键) on 约束模式
//约束模式:
//district:严格模式,默认,不允许操作
//cascade:级联模式,一起操作,主表变化,从表数据也变化
//set null :置空模式,主表变化(删除),从表对应记录置空,前提时从表中对应的字段允许为空
msyql中常用函数
select 函数名(参数),函数名(参数); //调用方法
字符串函数
char_length():判断字符串的字符数
concat():链接字符串
length():判断字符串的字节数(与字符集)
instr():判断目标字符在字符串中是否存在,存在返回其位置,不存在返回0
lacse():全部小写
left():从左侧指定位置开始截取字符串
ltrim():消除左边空格
mid():从中间指定位置开始截取,如果不指定截取长度,直到最后
时间函数
now():返回当前时间,日期 时间
curdate():返回当前日期
curtime():返回当前时间
datetime():判断两个日期之间的天数差距
date_add():进行时间的增加
数学函数
abs():绝对值
ceiling():向上取整
floor():向下取整
pow():求指数,谁的多少次方
rand():获取一个随机数(0-1之间)
round():四舍五入函数
其他函数
md5():会数据进行md5加密(mysql中的md5与其他任何地方的md5加密出来的内容都是一样的)
version():获取版本号
database():显示当前所在的数据库
uuid():生成一个唯一标识符(自增长)自增长是单表唯一,uuid是整库(数据为一同时空间唯一)