mysql 数学函数

复制表
create table 表明  select * from 待复制表;
复制的内容 包含  表结构 表中的数据

如果想复制的表中不出现原表数据 ,
需要在查询子句 带上不满足查询内容的条件即可

查询
必须满足多个条件的查询
 
and
 
多个条件中满足一个
or
要求查询结果不满足列的条件
not  != <>
查询条件在2者之间
between ... and 包含匹配值本身

查询的内容在范围已知范围内
in


模糊查询
like
%:表示 0位 或者多位
_:表示1位
 
通配符:用来在模糊查询中占用查询的位置

排序
order by 
正序:默认不写 或者写  asc; 
倒序:desc

常用函数
字符串函数

拼接函数:concat(ag1,ag2,...)
SELECT CONCAT(12,sage,'88') from student;

替换函数:replace(列名,原始值,替换值)
SELECT `REPLACE`(ssex,'男','熊') from student where sage >18

截取函数
left(源,index)/right(源,index)
ps:从1开始向右截取index个字符
SELECT LEFT(sname,3) sname from student;
获取字符串的长度
length(源)
在数据库中字段的长度表示不是字符占用的内存大小 表示是
可以存放多少个字符

在数据库中 1个中文有三个长度 字母数字占1个

采用utf-8的编码格式 一个中文汉子占三个字符
采用gb2312:一个中文汉子占二个字符

截取制定字符串的长度
substr(源,开始位置,截取长度)

转换字符串的大小写函数
upper(str):小写 转 大写
lower(str):大写 转 小写

日期函数
获取当前系统日期时间
now()
select now() from dual;
获取当前的系统日期
curdate();
SELECT CURDATE() from dual
获取当前的系统时间
curtime();
SELECT CURTIME() from dual
数学函数
abs(num)://绝对值

返回指定位数的小数值(保留小数点后面的位数 n 四舍五入)
round(源,n)


if 函数

if(表达式,真,假)
SELECT sname,IF(sage>18,if(ssex='男','汗子','妹子'),'娘炮') from student

ifnull(表达式1,表达式2)
如果表达式 1 为null  输出表示2 反之输入表达式1
SELECT id,name,ifnull(create_time,now()) create_time from t_user


聚合函数
统计函数
count(列名); 如果统计的列值为null 则不拉入统计
count(*):统计所有的行数 包括null
count(distinct 字段)


SELECT COUNT(sid) from student where ssex='男'

求和函数
sum(列名)

平均值
avg(列名)
SELECT ROUND(avg(score),2) from score;

最大值/最小值
max(列名)/min(列名)


分组
group by 列名


ps: 在排序 order by 和分组 group by 后面都可以跟上多个表字段,
以,来分别
select azhuanye, COUNT(sid) from student GROUP BY azhuanye,sid order by sid DESC,sname;
分组以后 统计班上各科成绩的最高分 最低分 平均分
SELECT cid,max(score) 最高分, min(score) 最低分,avg(score) 平均分  from score group by cid
 
 
 ps:要想对聚合函数 进行条件的筛选 需要使用到 having 
 
 select 的基本语法
select  查询结果 from 表名 where 列的值要瞒住的条件

group by 分组条件

having 计数必须满足的条件

order by 排序字段

limit 查询行数



多表连接查询

交叉连接:将连接表中的数据都查询出来

内连接:必须存在一定的关联性
from  表1 inner join 表2 inner join 表3 ... on 连接条件 where 查询条件 




左连接:以左表数据为准
from 表1 left join 表2 on 连接条件 where 条件查询



右连接
from 表1 right join 表2 on 连接条件  where 条件查询


子查询

查询中还可以在存在查询

在查询中使用子查询
SELECT scid,(select st.sname from student st where st.sid=s.sid ) 姓名,(select cname from course c where c.cid=s.cid) 课程,score from score s ;
在条件中使用子查询
select sname from student where sid in(
SELECT s.sid from score s where  s.cid in (SELECT cid from course where cname='英语')
)
在表中使用子查询(临时表)
SELECT t.name,t.s from 
(SELECT student.sname name,score.score s from student ,score where score.sid=student.sid) t





















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值