mysql学习+再复习
mysql
函数
单行函数
exists 是否存在
字符函数
concat(a,b)拼接两个字符串
ifnull(a+b,0) 如果a+b等于null,则返回0
upper,lower 大小写转换
select upper(‘abc’);
substr/substring
instr 返回子串第一次出现的索引,如果找不到就返回0
trim 去除字符串前后的空格
replace(str,from_str,to_str)将第一个参数中的字符与第二个相等的字符替换成第三个参数
数学函数
- round 四舍五入
- ceil 向上取整 返回>=该参数的最小整数
- floor 向下取整 返回<=该参数的最大整数
- truncate 截断
- mod取余
日期函数
now 返回当前系统日期+时间
curdate 返回当前系统日期,不i包含日期
curtime 返回当前时间,不包含日期
str_to_date 将日期格式的字符串转换为指定格式的日期
date_formate 将日期转换成字符
DATE_FORMAT('2018/6/6','%年%月%日')
str_todate 将字符转换成日期
STR_TO_DATE(’9-13-1999‘,‘%m-%d-%Y’)
其他函数
流程控制函数
分组函数(统计函数,聚合函数)
sum 求和
avg 平均值
max 最大
min 最小
count 计算个数
count(1)、count(*)查询表中总条数
group by
select 分组函数 列(要求出现在group by 的后边)
from 表 【where 筛选条件】
group by 分组的列表
【order by 子句】
where和having都是用来进行条件筛选的,where 是在分组前进行的,having是在分组后进行筛选的
连接查询
笛卡尔乘积现象:表1 有m行,表2:有n行,结果=m*n行
发生原因:没有有效的连接条件
如何避免:添加有效的连接条件
内连接
- 等值连接
- 非等值连接
- 自连接(同一张表,需要B字段作为A字段的查询条件。所以将同一张表看作两张表进行连接查询)
外连接
应用场景:用于查询一个表中有,另一个表中没有的纪录
特点:1、外连接的查询结果为主表中的所有记录
如果从表中有和他匹配的,则显示匹配的值
如果从表中没有和他匹配,则显示为空
外连接查询结果=内连接查询结果+主表中有而从表中没 有的记录
2、左外连接,left join 左边是主表
右外连接,right join 又表示主表
3、左外和右外交换两个表的顺序,可以实现同样的效果
左外连接
left join
右外连接
right join
全外连接
full join(mysql不支持,大坑)
查两个表的并集
交叉连接
cross join(实现笛卡尔乘积,目前感觉没啥用)
子查询
出现在其他语句中的select语句,成为子查询或内查询
外部的查询语句,称为主查询或外查询
分类:
按子查询出现的位置
select 后面
仅仅支持标量子查询
from 后面
支持表子查询
where或having后面
标量子查询
列子查询
行子查询
exists后面(相关子查询)
表子查询
按结果集的行列数不同:
标量子查询(结果集只有一行一列)
列子查询(结果集只有一列多行)
行子查询(结果集有一行多列)
表子查询(结果集一般为多行多列)
where或having后面
- 标量子查询(结果集只有一行一列)
- 列子查询(结果集只有一列多行)
- 行子查询(结果集有一行多列)
特点:
- 子查询一般放在小括号内
- 子查询一般放在条件右侧
- 标量子查询,一般搭配着单行操作符使用 > < >= <= = <>
列子查询,一般搭配这多行操作符使用
in、any/some、all
in/not in(等于列表中的任意一个)
any|some (和子查询返回的某一个值比较):可以被其他方式替代
all(和子查询返回的所有值比较):可以被其他方式替代
mysql学习+再复习的更多相关文章
- MySQL学习基础
MySQL是被Sun公司收购了,所以也有热咖啡图标,不过MySQL的作者后来又做了一个MariaDB,小海豚图标,也很好用. MySQL学习: <MySQL网络数据库设计与开发>(电子工业 ...
- 数据库MySQL学习笔记高级篇
数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(四) 数据类型
我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(五) 运算符
我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- 我的MYSQL学习心得(六) 函数
我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...
- 我的MYSQL学习心得(七) 查询
我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...
- 我的MYSQL学习心得(八) 插入 更新 删除
我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得( ...
- 我的MYSQL学习心得(十) 自定义存储过程和函数
我的MYSQL学习心得(十) 自定义存储过程和函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心 ...
随机推荐
- 网络协议学习笔记(四)传输层的UDP和TCP
概述 传输层里比较重要的两个协议,一个是 TCP,一个是 UDP.对于不从事底层开发的人员来讲,或者对于开发应用的人来讲,最常用的就是这两个协议.由于面试的时候,这两个协议经常会被放在一起问,因而我在 ...
- 使用jadx反编译 调试“XX值得买”APP获取接口签名key(一)
闲来无事,想抓取一下"XX值得买"上排行榜的即时数据,按照通用方法 安装夜神模拟器 新增android 5.0版模拟器 安装xposed框架 安装JustTrustMe.apk 打 ...
- day 11 算法的时间空间复杂度
(1).有以下程序: 求输入的n值(除1和n)之外的所有因子之和. 分析:这里函数内的循环体i初值不能为零.%是表示"取余",0除以任何数都不会存在余数的,所有是余数为0. (2) ...
- 《剑指offer》面试题27. 二叉树的镜像
问题描述 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: 4 / \ 2 7 / \ / \ 1 3 6 9 镜像输出: 4 ...
- [JavaWeb]反序列化分析(二)--CommonCollections1
反序列化分析(二)--CommonCollections1 链子分析 首先新建一个TransformedMap,其中二三参数为可控,后续要用到 当TransformedMap执行put方法时,会分别执 ...
- 小记录:flask的DEBUG开关
请求站点的如下位置: http://www.ahfu.com/ahfuzhang/?debugger=yes&cmd=resource&f=style.css 居然正常范围了CSS文件 ...
- Git:解决报错:fatal: The remote end hung up unexpectedly
使用全局代理即可.字面意思连接时间过长,被github中断了连接.
- c#重写和多态
多态是基于重写的 继承:向子类中添加父类没有的成员,子类对父类的横向扩展 重写:纵向扩展,成员没有增加,但成员的版本增加了 引言 Rider JetBrains:Rider.ReSharper.dot ...
- qt之线程
第一种创建: mythread1.h: #ifndef MYTHREAD_H #define MYTHREAD_H #include<QThread> #include<QDebug ...
- gin中如何记录日志和错误日志
package main import ( "github.com/gin-gonic/gin" "io" "os" ) func main ...