mysql业务功能&SQL总结

mysql创建用户并赋予某个数据库的权限

create user 'ads'@'localhost' identified by 'ads';     #创建ads用户
grant all privileges on ads.* to ads@localhost identified by 'ads';  #赋予所有权限给用户ads 对应的数据库是ads

修改root密码

> use mysql;
> updateuserset password=PASSWORD('密码') whereUser='root';
> flush privileges;

 mysql取消密码登录

vim /etc/my.cnf
skip-grant-table

三日留存

7日留存

根据用户id查询用户对应的角色,角色对应怎么的权限菜单。

索引

mysql支持的存储引擎主要有四种?

InnoDB  支持事务,行级锁定,外键,是事务型数据库引擎的首选

MyISAM  拥有较高的插入, 查询速度, 但不支持事务

Memory  基于散列 存储在内存中,对临时表有用。

Archive 支持高并发的插入操作。 本身不是事务安全, 如记录日志信息可以使用Archive

mysql支持的索引有哪些?

普通索引: 用表中的普通列构建的索引,没有任何限制

唯一索引:列的值必须唯一,但允许有空值

主键索引:是一种特殊的唯一索引,根据主键建立索引,不允许重复 不允许有空值

全文索引:通过建立倒序索引,快速匹配文档的方式

组合索引:联合索引 用多个列组合构建的索引,这多个列中的值不允许有空值。

索引的使用场景有哪些 哪些情况下不适合创建索引?哪些情况不应该创建索引?

        主键应该创建索引

        频繁作为查询条件的字段应该创建索引

        查询中需要与其他表进行关联的字段应该创建索引

        需要排序的字段需要创建索引

        需要统计和分组的字段应该创建索引

        优先考虑创建组合索引

不适合创建索引:     频繁更新的字段不适合创建索引,

                                查询条件中用不到的字段不适合创建索引

不应该创建索引的场景: 数据记录较少的表

                                        经常需要增删改操作的字段

                                        数据记录重复较多 且分布平均的字段(如 性别,状态等)

索引什么时候会失效?索引失效的原因是什么?

        1 条件中有or 

        2 like 查询 (%开头)

        3 如果列类型是字符串 在使用时 一定要“ 引号(字段)” 引用起来 否则会失效

        4 对列进行函数运算   (where md5(password) ='xxxx')

        5 负向查询条件会导致无法使用索引( NOT IN , NOT LIKE !=) 等

        6 对应组合索引 不使用第一个  则索引会失效 因为最左匹配原则 

        7 如果MySQL评估使用全表扫描比使用索引快,则不使用索引。 

索引有什么缺点?

1 索引需要额外占用物理空间,索引越多 所需空间越多

2 当对表中的数据进行增加,删除,修改操作的时候,索引也要动态的维护,降低了数据的写入速度

锁  9种锁 

共享锁

排它锁

模式锁

更新锁

批量更新锁

键范围锁

行级锁

页锁

表锁

功能样例

外键:一张表中有一个非主键的字段只想另一张表的主键,该字段成为外键。

建表的时候 新增外键

外键关联查询   user 表 一对一关联查询 userinfo 表 

SQL 总结

添加外键

alter table user_infos ADD FOREIGN KEY fk_user_infos REFERENCES sys_user(id);

alter table userinfo表 ADD FOREIGN KEY 子表的外键名称 REFERENCES 父表的主键名称;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

村长在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值