文章目录
变量: @变量名
变量定义和修改
SET @变量名 := 值;
SELECT @变量名 := 值;
select 查询结果 into @变量名 from 表;
变量使用
select @变量名;
注意事项
在用到变量的时候先排序后查询
在没有变量的时候是先查询后排序
CONCAT()
使用方法:CONCAT(str1,str2,…)
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。
如果所有参数均为非二进制字符串,则结果为非二进制字符串。
如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。
一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如:
SELECT CONCAT(CAST(int_xxx AS CHAR), char_col)
MySQL的concat函数可以连接一个或者多个字符串,如
mysql> SELECT CONCAT(‘my’, ‘s’, ‘ql’);
-> ‘mysql’
mysql> SELECT CONCAT(‘my’, NULL, ‘ql’);
-> NULL
mysql> SELECT CONCAT(14.3);
-> ‘14.3’
延伸:讲讲MySQL中concat_ws函数
使用方法:CONCAT_WS(separator,str1,str2,…)
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。
注意:
如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。
如连接后以逗号分隔
mysql> SELECT CONCAT_WS(',','First name','Second name','Last Name');
-> 'First name,Second name,Last Name'
mysql> SELECT CONCAT_WS(',','First name',NULL,'Last Name');
-> 'First name,Last Name'
mysql CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。
GROUP_CONCAT
MySQL中的GROUP_CONCAT()函数用于将多行数据合并为一个字段。这是一个汇总(GROUP BY)函数,如果该组包含至少一个非NULL值,则该函数返回String值。否则,它返回NULL。
substr()
截取字符串
用法:substr(string string,num start,num length);
select substr(参数1,参数2,参数3) from 表名
string为字符串;start为起始位置;length为长度。
注意:mysql中的start是从1开始的。
例子:(查出kename字段中第一次出现.之前的字符串)
UNION
七种SQL JOINS的实现
MySQL怎么实现满链接
mysql没有 full join 语句 但是我们可以把下面这两用UNION ALL个合起来
聚合函数
常用的聚合函数有COUNT()、AVG()、SUM()、MAX()、MIN()。
COUNT()函数:统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数。
COUNT(*)计算表中总的行数,不管某列是否有数值或者为空值。
COUNT(字段名)计算指定列下总的行数,计算时将忽略空值的行。
AVG()函数:通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。
SUM()函数:是一个求总和的函数,返回指定列值的总和。
MAX()函数:返回指定列中的最大值,不仅适用于查找数值类型,也可应用于字符类型。
MIN()函数:返回查询列中的最小值,不仅适用于查找数值类型,也可应用于字符类型。
此外,聚合函数可以与GROUP BY关键字一起使用,对每个分组进行计算。
count(*),count(1),count(具体字段)那个更快一些
数据库一个页是存放16kb的数据
页的内部结构
索引
索引分类
- 从
功能逻辑
上说,索引主要有 4 种,分别是普通索引、唯一索引、主键索引、全文索引。 - 按照
物理实现方式
,索引可以分为 2 种:聚簇索引和非聚簇索引。 - 按照
作用字段个数
进行划分,分成单列索引和联合索引。
索引创建
alter table 表名 add 索引名字(列名);
create 索引名 on 表名(列名);
索引删除
ALTER TABLE 表名 drop 索引名;
DROP INDEX 索引名 ON 表名;