DQL(data query language)语言的学习
基础查询
进阶1
语法:
select 查询列表 from 表名;
特点:
1.查询列表可以是表中的字段 、常量值、表达式、函数
2.查询的结果是一个虚拟的表格
3.查询常量池: select 100;
4.查询表达式:select 100*9;
5.查询函数:select version();
6.起别名:select name as别名 from 表名; 注意:空格隔开也可以 别名有特殊符号可以加双引号或者单引号
7.去重: select distinct 字段名 from 表名;
9.+号的作用 在myslq仅仅只是一个运算符:
select 100+900; 两个操作数都为数值型,则做加法运算
select ‘123’+90 ;其中一方为字符型,视图将字符型转换为数值型
如果转换成功则继续做加法运算,
select ‘john’+90:如果转换失败,则将字符型值转换成0
select null+10 :只要一方为null,则结果肯定为null
10. 拼接函数 concat():select concat(‘a’,‘b’,‘c’) as 结果
11. ifnull()函数:select ifnull(“字段名为null”,“值为0”)
进阶2 条件查询
语法: select 查询列表
from 表名
where 筛选条件
该条sql语句执行顺序:先看表名 然后筛选 继续查询列表
分类:
一、按条件表达式筛选
简单条件筛选运算符:> < = != <>
二、按逻辑表达式筛选
逻辑运算符:&& || ! 对应 and or not
三、模糊查询
like 特点:一般和通配符使用
% 任意多个字符,包含0个字符
_ 任意单个字符 可以通过“\”符号 进行转义
举例: select * from
where lastname like ‘&%’ escape ‘$’
between
and
1.使用 between and 可以提高简洁度
2.包含临界值
3.两个临界值不要调换顺序
举例
select * from
表名
where lastid between 100 and 120
in 含义:判断某字段的值是否属于in 列表中某一项
特点:使用in 提高语句简洁度
in 列表的值必须统一或兼容
is null用法:
select * from 表名
where lastname is null
安全等于 <=> 不仅可以判断null 值
is null 仅仅可以判断null 值 ; 可读性高
<=>既可以判断null值,又可以判断普通的数值;可读性低
**order By **语句:
select 列名
from 表名
where 条件
order by 排序字段
order by 语句一般房子查询的最后边 limit 字句除外
执行顺序 : 1.from 2.筛选条件 3.查询列表 4.order by
进阶四
常见函数 类似于java的方法
select 函数名(实参列表)from 表名
分类:
1.单行函数 concat、length 、ifnull
2.分组函数
一 、字符函数
1.length() 获取参数值的字节个数
show variables like ‘%like%’
2.concat() 拼接字符串
3.upper() lower()
4.substr() 索引从1开始
举例 substr(“”,4) 截取指定索引处后面的所有字符
substr(“”,0,3) 截取指定索引处指定字符长度的字符
5 instr() 返回字段第一次出现的索引,如果找不到返回0
6 trim()
7 lpad () 用指定的字符实现实现左填充指定的长度
举例:lpad(“a” ,10,"")
8 rpad() 用指定的字符实现右填充指定的长度
9 replace() 替换
举例: select replace(“AAAAABB”,“BB”,“bb”)
二 、数学函数
round()四舍五入 select round(4.56) round(4.563,2) 保留小数点两位
ceil() 向上取整,返回大于等于该参数的整数 sleect ceil(1.002)
floor() 向下取整
truncate() 截断 select truncate(1.65,1)
mod ()取余 select MOD(a,b) 计算方式a-a/bb
三、日期函数
now() 返回当前系统日期+时间;select now()
curdate() 返回当前系统日期不包含时间
curtime() 返回当前的时间 不包含日期
可以获取指定的部门,年、月、日、小时、分钟、秒
select year(now())
str_to_date() 将字符通过指定格式转换成日期
举例:select str_to_date(‘1998-3-2’,‘%Y-%c-%d’);
date_format:将日期转换成字符
四、其他函数
select version(); select database();select user();
五、流程控制函数
1.if函数: if else 的效果
select if(10>5,“大”,“小”);
2.case 函数的使用一:switch case 的效果
switch(变量或表达式){
case 常量1:语句;break;
…
default:语句;break;
}
mysql 中
case 要判断的字段或表达式
when 常量1 then 要显示的值1
when 常量2 then 要显示的值2
…
else 要显示的值n或语句
end
case 函数的使用二:类似于多重if
case
when 条件1 then 要显示的值1或语句1
when 条件2 then 要显示的值2或语句2
else 要显示的值n 或语句n
end