CSDN新星计划第3季
活动详情地址:https://marketing.csdn.net/p/aeb393e206ac127c1f8dc5194cef8923
参赛赛道:大数据赛道
话题描述:
现在CSDN、知乎、掘金上各路大佬层出不穷,他们身经百战、血洗杀场,总结出满满的求职干货。但同时也存在很多非良心的博主,要么活出了人类的本质,复读机一样到处转载;要么纯粹自嗨型草草说了自己的经验,让读者无法从良莠不齐的资源海洋中高效高质地获取真正有用的信息。本话题的目的很简单,一句话:用最少的时间,最高效率,让你清楚:想要拿到Androidoffer,你需要做什么?你该怎么做?
这一节继续介绍MySQL数据库,主要介绍了DQL(数据查询语言),内容主要以查询语言为主。由于篇幅过长,DQL(数据查询语言)将分成两篇介绍。第一篇主要包括数据查询语言之基础查询、条件查询、排序查询、常见函数等内容。其中,主要介绍每一类查询语言的语法和其特点。
select 查询列表
from 表名;
- 查询列表可以是字段、常量值、表达式、函数、也可以是多个
- 查询结果是一个虚拟表
查询单个字段
select 字段名 from 表名;
查询多个字段
select 字段名,字段名 from 表名;
查询所有字段
select * from 表名;
注:
①在做查询时,需打开指定的库,在最上面先写命令 USE库名;
②着重号’ '可用来区分是关键字还是字段;
③执行就选中谁来进行实现命令。
查询常量
注:
MySQL中不区分字符和字符串
查询函数
select 函数名(实参列表);
查询表达式
select 100%98;
起别名
①使用as
好处:
–便于理解
–如果要查询的字段有重名的情况,使用别名可以区分开来
②使用空格
注:
要是别名中有特殊符号如空格、#等建议将别名加上双引号
去重
select distinct 字段名 from 表名;
+号
作用:做加法运算
select 数值+数值;直接运算
select 字符+数值;先试图将字符转换成数值,如果转换成功,则继续运算;否则转换成0,再做运算
select null+值;结果都为null
【补充】concat函数
功能:拼接字符
select concat (字符1,字符2,字符3,…)
【补充】ifnull函数
功能:判断某字段或表达式是否为null,如果为null 返回指定的值,否则返回原来的值
select ifnull (commission_pct,0) from employees;
【补充】isnull函数
功能:判断某字段或表达式是否为null,如果是,则返回1,否则返回0;
select 查询列表
from 表名
where 筛选条件
特点:
①一般搭配通配符使用,可以判断字符型或数值型
②通配符:%任意多个字符,包含0个字符;_任意单个字符
①使用between and 可以提高语句简洁度
②包含临界值
③两个临界值不要调换顺序
含义:判断某字段的值是否属于 in 列表中的某一项
①使用 in 提高语句简洁度
②in 列表的值类型必须一致或兼容
③不适用通配符
is null
PK
<=>
is null : 仅仅可以判断null值,可读性较高,建议使用
<=>:既可以判断null值,又可以判断普通的数值,可读性较低
select 查询列表
from 表
where 筛选条件
order by 排序列表【asc / desc】
①asc代表的是升序,desc代表的是降序。如果不写,默认是升序
②order by 子句中支持单个字段、多个字段、函数、表达式、别名
③order by 子句一般是放在查询语句的最后面,limit 子句除外
1、概述
2、单行函数
命令 | 功能 |
---|---|
concat | 连接 |
substr | 截取子串 |
upper | 变大写 |
lower | 变小写 |
replace | 替换 |
length | 获取字节个数 |
trim | 去前后空格 |
lpad | 左填充 |
rpad | 右填充 |
instr | 获取子串第一次出现的索引 |
命令 | 功能 |
---|---|
round | 四舍五入 |
ceil | 向上取整 |
floor | 向下取整 |
truncate | 截断 |
mod | 取余 |
rand | 获取随机数,返回0-1之间的小数 |
命令 | 功能 |
---|---|
now | 返回当前日期 +时间 |
year | 返回年 |
month | 返回月 |
day | 返回日 |
date_format | 将日期转换成字符 |
curdate | 返回当前日期 |
str_to_date | 将字符转换成日期 |
curtime | 返回当前时间 |
hour | 小时 |
minute | 分钟 |
second | 秒 |
datediff | 返回两个日期相差的天数 |
monthname | 以英文形式返回月 |
一些日期的格式符表示
序号 | 格式符 | 功能 |
---|---|---|
1 | %Y | 四位的年份 |
2 | %y | 两位的年份 |
3 | %m | 月份(01,02,…11,12) |
4 | %c | 月份(1,2,…11,12) |
5 | %d | 日(01,02,…) |
6 | %H | 小时(24小时制) |
7 | %h | 小时(12小时制) |
8 | %i | 分钟(00,01…59) |
9 | %s | 秒(00,01,…59) |
命令 | 功能 |
---|---|
version | 当前数据库服务器的版本 |
database | 当前打开的数据库 |
user | 当前用户 |
3、分组函数
命令 | 功能 |
---|---|
max | 最大值 |
min | 最小值 |
sun | 和 |
avg | 平均值 |
count | 计算个数 |
①语法
select max(字段) from 表名;
②支持的类型
sum和avg一般用于处理数值型
max、min、count可以处理任何数据类型
③以上分组函数都忽略null
④都可以搭配distinct使用,实现去重的统计
select sum(distinct 字段)from 表;
⑤count函数
count(字段):统计该字段非空值的个数
count(*):统计结果集的行数
count(1):统计结果集的行数
效率上: MyISAM存储引擎,count(*)最高 InnoDB存储引擎,count(*)和count(1)效率>count(字段)
⑥和分组函数一同查询的字段,要求是group by 后出现的字段
这一篇主要介绍了数据查询语言的一些查询类型,下一篇将继续介绍其他几种数据查询语言类型。