学习MySQL3DQL和函数

数据库DQL和函数分类

1.DQL查询表中记录

1.1基础查询

语法:
select 查询列表 from 表名
特点:
查询列表可以是:表中的字段、常量值、表达式、函数
查询的结果是一个虚拟的表格
操作:

select * from user

1.2取别名

使用AS

1.3去重

在查询语句中,select后面加上distinct

select distinct name from user;

1.4+号的作用

作用:仅仅只有做加法运算功能
如果要把两个字符型数值连在一起,就要使用concat函数

select concat(name,sex) from user;

concat_ws(分隔符,字段1,字段2),使用分隔符连接字符串

select concat_ws(',',stu_number,`name`) from stu;

1.5条件查询

语法:select 查询列表 from 表名 where 条件
注:like一般和通配符一起使用,常用通配符 % _

SELECT * FROM stu WHERE `name` LIKE '\_%';

bewteen and:等价于大于等于第一个值,小于等于第二个值

SELECT * FROM stu WHERE age between 22 AND 23;

in 判断某个字段的值是否属于in列表中的某一项,可以满足列表中的一项或多项,如果不满足则返回空

SELECT age,name FROM stu WHERE stu_number in(003,002);

1.6排序查询

语法:select 查询列表 from 表名[ where 条件] order by 排序列表[ASC| DESC]

SELECT age FROM stu ORDER BY age ASC;

1.7分组查询

格式:select 字段名 from 表名 group by 字段名 [having] 条件

SELECT sex FROM stu GROUP BY sex HAVING sex!='女';

注:
sql执行顺序:from–>where–>group by–>having–>select–>order by–>limit
having与where的区别:
对查询结果进行分组前,将不符合where条件的行去掉,即先过滤再分组
where后面不可以使用聚合函数,如SUM(),MIN(),Max()等,因为聚合函数要对全列数据实行计算,因而使用它的前提是:结果集已经确定!而where子句还处于"确定"结果集的过程中,因而不能使用聚合函数
having子句的作用是筛选满足条件的组,即先分组再过滤
having后面可以使用聚合函数
使用having时,要和group by 一起使用,并且having在group by 后面,筛选条件的字段需要包含在查询字段中,如:

select age,count(1) from user1 group by age having sex>=0;

由于查询字段中没有包含having中的sex字段,执行结果会报错:Unknown column ‘sex’ in ‘having clause’

select age,sex,count(1) from user1 group by age having sex>=0;

在查询字段中添加sex字段,sql即可执行
where筛选条件的字段不需要包含在查询字段中

1.8union和union all

union用于合并两个或多个select语句的结果集,并消去表中任何重复行
如果需要保留重复的记录值,请使用union all
DQL

2.函数分类

数据库中,函数分为标量函数和聚合函数

2.1标量函数

概念:对表的计算,求出来是一个单一的值
ucase():将某个字段转换为大写
lcase():将某个字段转换为小写
mid(str,pos,len):从某个文本字段提取字符,pos指开始位置(下标从1开始,如果为负数,则从字符串最后向前查找;len指截取长度
length():返回某个文本字段的长度
round():对某个数值字段进行指定小数位数的四舍五入
now():返回当前的系统日期和时间
format():格式化某个字段的显示方式timestampdiff()-时间差
date_fromat(要格式化的字段,格式化的格式):时间的格式化

2.2聚合函数

概念:纵向查询,是对一列的值进行计算,任何返回一个结果值。会忽略null值
avg():返回平均值
count():返回行数
max():返回最大值
min():返回最小值
sum():返回总和
函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值