网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
- 不区分大小写,建议关键字大写,表名,列名小写
- 每条命令最好用分号结尾
- 每条命令根据需要,可以进行缩进或换行
- 注释
单行注释:#注释文字
单行注释:-- 注释文字
多行注释: /* 注释文字 */
二、DQL语言
1、常用操作
常用操作
- select 常量值; 查询常量值
- select 表达式; 查询表达式
- select 函数; 查询函数
起别名
1、便于理解
2、如果要查询字段有重名的情况,使用别名来区分
去重(distinct关键字)放在select之后
+号的作用
- 两者都为数值型,进行加运算
- 其中一者为字符型的数值,将其转换为数值型,进行加运算
- 其中一者为字符,转换失败,将字符转为0,进行加运算
- null + 10 ,其中一者为null,结果一定为null
运算符
条件运算符: > < = != <> >= <=
逻辑运算符: && || ! and or not
连接字符 concat(字符1,字符2,。。。)
2、常用函数
单行函数
字符函数
函数 | 用法 |
length() | 获取字符长度 |
concat() | 拼接字符 |
upper() | 转大写 |
lower() | 转小写 |
substr() | 截取字符(sql中下标从1开始) substr(字符,初始位置) substr(字符,指定初始位置,指定字符长度) |
instr() | 子字符在父子符第一次出现的位置 instr(父子符,子字符) |
trim() | 去两端指定字符(默认为空格) trim(字符) trim(指定字符 from 字符)去掉两端指定字符 |
lpad() | 用指定字符左填充到指定长度 lpad(字符,字符长度,填充字符) |
rpad() | 用指定字符右填充到指定长度 注:指定长度小于字符长度,会从右截取字符 |
replace() | 替换字符 replace(字符,被替换字符,替换字符) |
数学函数
函数 | 用法 |
round() | 四舍五入函数 round(数值) round(数值,保留位数) |
ceil() | 向上取整 |
floor() | 向下取整 |
truncate() | 截断 truncate(数值,保留位数)不进行四舍五入 |
mod() | 取余函数 |
日期函数
函数 | 用法 |
now() | 返回当前系统日期+时间 |
curdate() | 返回当前系统日期 |
curtime() | 返当前系统时间 |
**year(日期)****month(日期)****monthname(日期)**英文名称 | 获取指定的的部分 |
str_to_date() | 日期格式的字符转为指定格式的日期 str_to_date(‘9-13-1999’, ‘%m-%d-%Y’) |
date_format() | 将日期转化为字符 date_format(‘2018/6/6’,‘%Y年%m月%d日’) |
格式符:%Y 四位的年份 %y 两位的年份 %m 月份(01,02,03 …)
%c 月份(1,2,3 …) %d 日 %H 小时(24小时制)
%h 小时(12小时制) %i 分钟 %s 秒
流程控制函数
if else
if(判断语句,true执行,false执行)
case函数
使用一:类似switch…case
case 表达式或字段
when 常量1 then 要显示的值1或语句1;
when 常量2 then 要显示的值2或语句2;
…
else 要显示的值n或语句n;
end
(then后面 值不用加分号,语句要加分号)
使用二:类似多重if
case
when 条件1 then 要显示的值1或语句1;
when 条件2 then 要显示的值2或语句2;
…
else 要显示的值n或语句n;
end
分组函数
- sum()求和
- avg()求平均值
- max()求最大值
- min()求最小值
- count()求个数
特点:
A、sum、avg一般用于处理数值,max、min、count可以处理任何类型
B、以上分组函数都忽略了null值
3、查询方式
简单查询
select 查询列表 from 表名; (查询多个字段用逗号隔开)
模糊查询
1**、like 关键字**
% 匹配任意个字符
_ 匹配任意单个字符
$ 转义
2、between and
3、in 关键字
in (匹配列表);in 列表的值类型必须一致或者兼容
4、is null | is not null
可以判断null值
= 和 <> 不能判断null值
5、<=>安全等于
既可以判断null值,也可以判断普通值
排序查询
order by 排序列表 [ asc | desc ] 根据排序列表排序;
asc 升序(默认,可不写);desc降序
分组查询
select 分组函数,列(要求出现在group by的后面)from 表
【where 筛选条件】 group by 分组的列表【having 分组后再筛选】【order by 子句】
连接查询
语法:
select 查询列表 from 表1 别名 【连接类型】
join 表2 别名 on 连接条件
【where】【group by】【having】【order by】
连接类型:
内连接:inner
外连接
左外:left [outer] 左边的为主表
右外:right [outer] 右边的为主表
全外:full [outer]
交叉连接:cross (笛卡尔乘积)
子查询
分类:
按子查询出现的位置:
- select后面:仅仅支持标量子查询
- from后面:支持表子查询
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
5753899242)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!