MySQL查询语句
一、select基本查询语句:
查询常量:

查询表达式:

查询函数:

查询单个字段:

查询多个字段:

查询所有字段:

二、字段起别名:(仅仅是控制台上的输出结果修改字段名,也就是虚拟表)
优点:
1、便于理解
2、如果我们发现字段有重名的情况,使用别名可以区分
方式一:使用as

方式二:使用空格

注意:如果别名有特殊符号,别名用"" 或者``引用
三、去重
distinct引用:

四、+号的引用
/*
Java中+号
1、运算符:两个操作值都为数值型号
2、连接符:只要有一个为字符串
*/
MySQL中+号
仅仅只有一个功能:运算符
1、两个操作符都为数值型,则作加法运算

2、其中一个为字符型,试图将字符型数值转换为数值型
如果转换成功,则继续作加法运算
如果转换失败,则将字符型数值转换为0
只要其中一方为null,结果肯定为null



五、concat连接关键字
查询id和姓名拼接成一个字段,并显示为姓名

小练习1:拼接id,name,address字段,各个列之间用,拼接,列头显示为out


这里出现一个问题,为什么显示为null呢,地址值为null,但是id和name有值却显示为null,这个时候我们需要给addre一个判断,如果为null显示为0;
所以要使用ifnull关键字
六、ifnull关键字(判断字符是否为null)
如果字段中有null显示为0;

所以上面小练习1最终可以写成:

七、desc关键字
显示表的结构,并查询其中所有数据

八、条件查询(where 关键字)
语法:
select
查询列表
from
表名
where
筛选条件;
分类:
一、按条件表达式筛选
条件运算符:> < = != <> <= >=

二、按逻辑表达式查询
逻辑运算符: && || !
and or not

三、模糊查询(like,between and ,in ,is null)
1、like
特点
1、一般和通配符搭配
通配符:% 任意多个字符,不区分大小写,包含0个字符输出null
%s 字符s结尾
s% 字符s开头
%s% 包含字符s



—任意单个字符

转义字符以及转移字符关键字ESCAPE
ESCAPE '任意字符'

2、between and
包含临界值
两个临界值不要调换,前小后大

3、in
判断某字段的值是否属于in列表中的某一项
特点:
1、使用in提供语句简洁度
2、in列表的值类型必须一致或兼容
例:'123' 可以转换为 123

注意:in里面不支持写通配符
4、is null
只有is null 和 is not null能判断null值

5、安全等于 <=>,相当于is,可以判断null值,也可以判断数值
排序查询
order by 语句:


按表达式排序

按别名排序

按函数排序

按多个字段排序

常见函数:

单行函数:
字符函数
数学函数
日期函数
其他函数
流程控制函数
字符函数:
length()

concat() 拼接

upper,lower 大小写

substr、substring
注意:SQL语言中索引从1开始


instr
返回字串第一回出现的索引,找不到返回0

trim

lpad 用指定的字符实现左填充指定长度(左填充)

rpad 右填充

replace 替换

数学函数:
round 四舍五入

ceil 向上取整,返回>=该参数的最小整数
floor向下取整, 返回>=该参数的最小整数

truncate 截断

mod取余

注意:
mod(a,b): a-a/b*b
mod(-10,-3): (-10)-(-10)/(-3)*(-3) =-1
快计:余数符号和被除数符号一直
日期函数:
now 返回当前日期

curdata 返回当前系统日期。不包含时间

curtime返回当前时间

获取指定的部分,年月日时分秒


str_to_data 将字符通过指定格式转换为日期(多用于查找时间格式混乱不好查找,指定对应格式)


data_format 将日期转换为字符串

其他函数
versiorn

database

user

流程控制函数
if函数:if else的效果

case函数
case第一种用法:判断值相等


case语句第二种:判断区间



浙公网安备 33010602011771号