1、stuff函数
Stuff(str1,index,int,str2)函数共有四个参数,
其功能是将str1中自index位置起删除int个字符,然后将str2插入到str1中的index位置。
===注意,这里的索引初始值为1 ===
2、系统权限集合
grant
(1)功能解释:赋予用户权限
(2)标准用法:
grant 权限 on数据库对象 to 用户
(3)举个例子:
1 grant select on testdb.* to common_user@'%'
2 grant insert on testdb.* to common_user@'%'
3 grant update on testdb.* to common_user@'%'
4 grant delete on testdb.* to common_user@'%'
revoke
revoke则是撤销已经赋予用户权限,语法与grant类似,只是将grant换成revoke,to换成from即可。
3、数据库三级模式架构
(1)外模式
对应用户级,用户所看到的的数据库的数据视图。
(2)概念模式
对应概念级。数据库设计者按照统一的观点构造的全局逻辑结构。
(3)内模式
对应物理级,描述了数据在存储介质上的存储方式和物理结构。
4、<>(不等于)探究
!= 和 <>
我相信很多小伙伴一定对于!=很熟悉,但是对于<>可能不太熟。
除了这一点之外的还有很重要一点需要探究。
对空值进行判断!
这里强调三遍:<>对于null值无法判断!!
同理 != 符号也对于空值无法判断!!!!
举个例子:
(1)对于<>进行判断!
(2)!= 符号测试:
从上述测试可以看出,<>是对空值不进行判断的,是忽略,忽略,忽略!!!!
5、注意IN和Between And的区分
(1)IN (xx,xx,xx,…) 通常是不连续的。
(2)BETWEEN AND 注意是闭区间 比方说 BETWEEN 1 AND 199,是1-199,含1和199。
6、MySQL行转列
MySQL如何实现将多行数据转换成一行数据显示。
举个例子:
一张成绩单记录了多位学生多个科目的成绩,但是我想要每行输出每个学生的语文,数学科目的成绩!
那怎么办呢?
subject表示科目,stuid表示所属用户ID。
好吧,其实还是要借助GROUP BY和IF判断函数。
select stuid,
sum(if(`subject`='语文',score,0)) as '语文',
sum(if(`subject`='数学',score,0)) as '数学'
from score
where `subject` in ('语文','数学')
group by `stuid`
结果展示:
7、MySQL查询语句执行顺序
正确执行顺序:
(1)首先要找到我们要查询或者要连接的表格
(2)紧接着条件筛选(where)
(3)对数据进行分组(GROUP BY)
(4)对分好的组再次进行筛选(ORDER BY)
(5)执行结束后,开始进行查询操作(SELECT)
(6)对于重复数据开始进行去重(DISTINCT)(还记得MySQL数据去重的两种办法吗?)
(7)对查询后的数据进行排序(ORDER BY)(默认是升序)
(8)根据实际需要返回查询的条数(LIMIT/OFFSET函数)