当前位置: 首页 > news >正文

Mysql基础3

一、MySQL

  • MySQL 中日期指的是年月日、时间指的是时分秒
    • MySQL 中年月日格式:'xx-xx-xx'、时间格式:'yy:yy:yy'、日期时间格式:'xx-xx-xx yy:yy:yy'

1、内置函数

1-1、日期函数

  • current_date():当前日期-获取当前年-月-日
  • current_time():当前时间-获取当前时:分:秒
  • current_timestamp():时间戳-以年-月-日 时:分:秒形式展示
  • now():日期时间-获取当前年-月-日 时:分:秒
  • date(datetime):返回 datetime 参数的日期部分
  • date_add(date,interval d_value_type):在 date 添加天数/时间
  • date_sub(date,interval d_value_type):在 date 减去天数/时间
  • datediff(date1,date2):两个日期相差天数,前者减后者

1-2、字符串函数

  • charset(column):查看表中字段数据的类型
  • concat(string1,string2,...):将字符串拼接函数
  • instr(string,substring):判断 substring 是否在 string 中,存在则返回子串在主串的下标位置
  • ucase(string):将内部小写的字符串转成大写的字符串的函数
  • lcase(string):将内部大写的字符串转成小写的字符串的函数
  • length(string)求字符串字所占节数大小函数
  • replace(str,search_str,replace_str):从 str 找到 search_str 子串,并把这个子串用 replace_str 替换
  • substring(str,position [,length]):从 str 的 position 开始,取 length 个字符
  • ltrim(string):去掉 string 内部开头的空格
  • rtrim(string):去掉 string 内部结尾的空格
  • trim(string):去掉 string 内部开头和结尾的空格

1-3、数学函数

  • abs(number):绝对值函数
  • bin(decimal_number):十进制转换成二进制函数
  • hex(number):转换成 16 进制
  • conv(number,a,b):将 number 由 a 进制转换成 b 进制
  • ceiling(number):向上取整
  • floor(number):向下取整
  • format(number,a):保留 number 小数的 a 位精度
  • mod(a,b):取模运算 a%b
  • random():生成 0~1 的随机浮点数

1-4、其他函数

  • user():查看当前用户函数
  • md5(a):MySQL 用户密码存储并非直接保存的,而是通过加密后进行保存的(保存的是加密后的密码),此函数就是哈希加密用的
  • password(a):MySQL 专门加密密码的函数

2、复合查询–进阶重要

  • 所有多表都要先转化成单表进行查询

2-1、子查询

  • where/from 子句内部可以写 select+其他过滤语句作为 where 子句的一部分
    • where 子查询
    • from 子查询
  • 先执行子查询语句
2-1-1、单行子查询-where 子查询
  • 子查询返回的结果是单行单列的
    • where [column=(select ....)]
2-1-2、多行子查询-where 子查询
  • 子查询返回的结果是多行单列的
    • where [column in (select ....)]:column 字段数据只需要在 select…表中的数据即可即可
    • where [column [>/</=] all (select ....)]:column 字段数据 [>/</=] 所有 select…表中的数据即可
    • where [column [>/</=] any (select ....)]:column 字段数据 [>/</=] 任意一个 select…表中的数据即可
2-2-3、多列子查询-where 子查询
  • 子查询返回的结果是多列的
    • where (colum1,colun2,...) = (select column1,column2,... from ...)
2-2-4、from 中使用子查询
  • from 中的结果当作临时表
    • from (select column1,column2,... from ...)

2-2、多表查询

  • 多表查询本质:将两张表进行笛卡尔基放到内存中
    • selecct * from [表1],[表2],...[, 表n]
  • 这个笛卡尔基后的表字段会有重复的,我们需通过[表].[字段]来进行操作

2-3、自连接

  • 同一张表进行笛卡尔基就是自连接,直接进行笛卡尔基是无法连接的,需要对两张表的表名在 from 子句里重命名成不一样的名字

2-4、合并查询–用不多

  • 将多个 select 执行的结果合并成一个表
    • union:获取两个结果的并集,将多余的行去重
    • union all:获取两个结果的合并,不将多余的行去重

3、内外连接

  • 内连接本质:利用where子句对两种表形成的笛卡尔积进行筛选

3-1、内连接

  • 语法:select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件
    • 先执行from 表1 inner join 表2 on 连接条件再执行and 其他条件其次执行select 字段然后再执行group by进行分组后,紧接着必须使用聚合函数构成新表后,再交给select [列投影] from投影出列,然后使用having子句行筛选,之后order by [排序条件]排个序,最后limit [分页条件]行筛选出最终结果交给用户
  • 笛卡尔积就是内连接

3-2、外连接

  • 非笛卡尔式拼接,单纯的把左右两表对应字段数据匹配,将全部匹配正确的数据所在行进行直接拼接,拼成一个新表
3-2-1、左外连接
  • 连接后把left关键字左侧的表完全显示,且不过滤其表中数据
  • 语法:select 字段名 from 表1 left join 表2 on 连接条件
3-2-2、右外连接
  • 连接后把right关键字右侧的表完全显示,且不过滤其表中数据
  • 语法:select 字段名 from 表1 right join 表2 on 连接条件
http://www.dtcms.com/a/561192.html

相关文章:

  • 上海cms网站建设珠海网站建设 科速
  • 有没有可以做游戏的网站电商网课教材
  • 【自然语言处理】生成式语言模型GPT复现详细技术方案
  • Qt 打开文件列表选择文件,实现拖拽方式打开文件,拖拽加载
  • 网站搭建徐州百度网络搭建专做婚礼logo的网站
  • macOS 上获取调试版
  • 奉加微PHY6230软件三:自定义MAC和ll_set_ble_mac_addr不能屏蔽
  • 模型推理如何利用非前缀缓存
  • 网站建设方面的论文重庆网站制作工作室
  • 优化学校网站建设方案wordpress+免备案空间
  • Linux系统之----UDP、TCP详解
  • TcpConnection
  • 选对模型、搭好架构:企业如何构建高精准RAG知识库
  • 广东网站设计公司价格软件商城app下载
  • 建立网站买空间哪家好福州关键词快速排名
  • 河南省建设厅职称网站网站域名包括哪些
  • Typescript语言中通过get请求获取api.open-meteo.com网站的天气数据
  • 设计模式的介绍
  • 13.2.3.Tomcat
  • WordPress网站主题升级网站引导页的作用
  • 哪些网站建设公司好域名备案需要多久
  • [DeepOCR] OCR主模型调度 | VLLM深度集成 | 多模态融合
  • 衡阳网站优化公司网站设计用什么软件
  • “开源链动2+1模式AI智能名片S2B2C商城小程序”在拉群营销中的应用与效果
  • c语言开发网站后端共享备案网站
  • 若依 Ruoyi APP 按钮权限管理 checkPermi
  • 托管网站是什么意思深圳人社局官网
  • MAK产品调研
  • 网站定制制作公司购物网站图片的放大怎么做的
  • 网站建设平台的比较wordpress ajax 参数