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学习心 ...
随机推荐
- 原生twig模板引擎详解(安装使用)
最近在学习SSTI(服务器模板注入),所以在此总结一下 0x00 Twig的介绍 什么是Twig? Twig是一款灵活.快速.安全的PHP模板引擎. Twig的特点? 快速:Twig将模板编译为纯粹的 ...
- 带你自定义实现Spring事件驱动模型
Spring 事件驱动模型概念 Spring 事件驱动模型就是观察者模式很经典的一个应用,我们可以通过Spring 事件驱动模型来完成代码的解耦. 三角色 Spring 事件驱动模型或者说观察者模式需 ...
- tmux安装配置与使用
tmux安装 sudo apt-get install tmux tmux配置 在家目录下操作 cd git clone https://github.com/gpakosz/.tmux.git ln ...
- 【解决了一个小问题】gin框架中出现如下错误:"[GIN-debug] [WARNING] Headers were already written. Wanted to override status code 400 with 500"
POST到数据到一条gin框架的接口后,客户端收到400错误,并且返回了业务中返回的"decode json fail". 关键代码是: func report(c *gin.Co ...
- 【简记】SpringBoot禁用Swagger
楔子 Swagger 是 Java Web 开发中常用的接口文档生成类库,在开发和前后端联调时使用它来模拟接口调用能提高开发效率.但是,在生产环境可能并不需要它,一个原因是启用它会延长程序启动时间(动 ...
- SourceGenerator的应用: .Net多进程开发库 - Juxtapose
背景 进程间通讯属于老生常谈的话题,可能已经有很多的通信示例代码,但在实际使用中需要做的东西还比较多.例如协议定制.消息收发.进程管理等都需要实现,进阶需求可能还需要实现回调函数.取消等. 个人在工作 ...
- 如何快速写出高质量的 Go 代码?
前言 团队协作开发中,必然存在着不同的代码风格,并且诸如 http body close,unhandled error 等低级错误不能完全避免.通过使用 ci lint 能够及早的发现并修复问题,提 ...
- mongodb在插入数据环节避免数据重复的方法(爬虫中的使用update)
mongo 去重 import pymongo client = pymongo.MongoClient() collection=client.t.test # collection.insert( ...
- el表达式中的${param}用法
el表达式中的${param}? 1. 2. ${param.name} 等价于 request.getParamter("name"),这两种方法一般用于服务器从页面或者客户端获 ...
- Redis哨兵模式高可用解决方案
一.序言 Redis高可用有两种模式:哨兵模式和集群模式,本文基于哨兵模式搭建一主两从三哨兵Redis高可用服务. 1.目标与收获 一主两从三哨兵Redis服务,基本能够满足中小型项目的高可用要求,使 ...