MySQL中函数主要分为四大类:
-
字符串函数
-
数字函数
-
日期时间函数
-
-
控制流函数
字符串函数
-
length(字符串) 球的是字符串的字节长度
MySQL数据库中一个汉字占3个字节,一个字母占一个字节
-
char_length(字符串) 求的是字符串的长度
-
mid(原始字符串,截取的开始位置,截取的长度)
数值函数:
round(原始数据,保留的小数位)
round(原始数据)
least(值1,值2,值3...) 求最小的数字
greatest(值1,值2...) 求最大的数字
now() 获取日期和时间
current_date() 获取日期
current_time() 获取时间
to_days(日期值 将日期转换成总天数)
dayofyear(日期值) 求该年已过的天数
week(日期值) 已过的周数
表连接
前提:有时候我们所需要的数据不止在一张表中,需要多个表做结合的查询,就可以用表连接
分类:
-
内部连接(提供了两种表与表之间的连接方式)只会显示两个表中匹配到的数值信息
表与表之间建立起关联的列,要求列名可以不一样,但是这两个列的数据类型和内容保持一致
内连接查询:只关联表与表中能够匹配到的信息数据,才能有对应的查询结果
-
表连接的实现是通过where关键字来进行的关联
格式一:
select 表名1,列名1,表名1,列名2,表名2,列名1,表名2,列名2...
from 表名1,表名2,表名3,表名4...
where 表名1.列名1=表名2.列名1;
-
通过inner join on 实现表与表 之间的连接
格式二:
select 表名1,列名1,表名1,列名2,表名2,列名1,表名2,列名2...
from 表名1 [inner] join表名2
on 表名1.列名1=表名2.列名1;
-
inner join on 又划分为两个分类:
-
等值连接 值的是条件中只包含“=” 没有其他符号在里面
-
非等值连接 指的是条件中除了“=” 还有其他的符号> <
-
外部连接
特征:至少会反馈出一个表的所有内容
分类:左外部连接 右外部连接
左外部连接:对左边的表不加限制,反馈左表的所有行
右外部连接:对右边的表不加限制,反馈右表的所有行
外部连接 on
左外部连接:
select 表名.列名
from 表名1 left outer join 表名2
on 表名1.列=表名2.列;
会反馈左表的所有内容,如果在右表中没有匹配到,在对应位置上就显示为null
右外部连接:
select 表名.列名
from 表名1 right outer join 表名2
on 表名1.列=表名2.列;
会反馈右表的所有内容,如果在左表中没有匹配到,在对应位置上就显示null
子查询:
指的是查询语句里面嵌套查询语句
子查询的注意事项:
where后面的条件要什么,子查询就查什么
什么情况优先考虑子查询
-
题上给出的条件没有明确的提示结果
-
where后面要用到聚合函数当条件
格式:
select 列名 from 表名 where 列名 in(select查询语句)
例子:select 列名 from 表名 where 列名 in(select 列名 from 表名 where 列名 in(select 列名 from 列名 where 条件));
嵌套子查询:指的是子查询中还包含其他的子查询
select(select(select(select)))
相关子查询:指的是子查询的结果有且只有一个值
当insert语句和select语句做结合,就是把查询的结果插入到某一张表中
格式:
insert into 表名 select 查询语句
使用update和select语句(子查询)结合
update 表名 set 列名 where 列名 in(select语句);
删除语句
delete from 表名 where 列名 in(select查询语句)
视图
指的是根据某个实际的表(实表)查询出来,生成的一个虚表
其作用就是方便用户对数据的操作
使用SQL语句创建视图
格式:
create view 视图名字 as select语句:
注意:视图既然作为一张虚表的存在,那么对实表的增删改查操,视图同样成立
视图既然是根据实表得到的,那么对视图的增删改操作,也会影响实表
插入数据
insert into 视图的名字 values(值1,值2...);
修改数据
update 视图的名字
set 列名=值
where 条件;
删除视图数据
delete from 视图的名字 where 条件:
删除视图
drop view 视图名
修改视图
alter view 视图名 as select语句
对于表的增删改查操作,在视图中同样成立
索引
指的是在数据库表中的一个列或多个列的设置,帮助快速的定位所查询的数据
索引的作用(优点)
-
加快查询速度(定位)
-
保证数据的唯一性(唯一约束)
-
实现表与表之间的参照完整性(进行外键约束参照的列)
-
可以减少group by,order by,分组和排序的时间(根据某个列来进行分组或者排序)