MySql

  • 一、数据的相关概念
    • 数据库的好处
    • 数据库的常见概念
    • 数据库存储数据的特点
    • 常见的数据库管理系统
  • 二、DQL(数据查询语言)
    • 基础查询
    • 条件查询
    • 获取客户端的字符集编码格式
    • 分组查询
      • 常见函数
    • 分组函数
      • 链接查询
  • 三、DML(数据操作语言)
    • 插入
    • 修改
    • 删除
      • delete与truncate比较
  • 四、DDL(数据定义语言)
    • 库的管理
    • 表的管理
    • 数据类型
    • 六大约束
      • 添加约束的时机
      • primary key 与 unique 对比
  • 五、事务(只针对DML)
    • 事务的ACID属性
    • savepoint(节点名):设置保存点
    • 事务的隔离级别
  • 六、视图
  • 七、变量
    • 系统变量
    • 自定义变量
  • 八、存储过程与函数(mysql里不能运行,在cmd里运行)
    • 存储过程
    • 函数
  • 九、流程控制结构
    • 分支结构
      • 1、if语句:
      • 2、case结构
      • 3、if结构
    • 循环结构
      • while、loop、repeat
  • 十、经典例题

一、数据的相关概念

数据库的好处

  • 可持久化数据到本地
  • 结构化数据

数据库的常见概念

  • DB:数据库,存储数据的容器
  • DBMS:数据库管理系统,又称为数据库软件或数据库产品,用于创建或管理DB
  • SQL:结构化查询语言,用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有的主流数据库软件通用的语言

数据库存储数据的特点

  • 1、数据存放到表中,然后表再放到库中
  • 2、一个库中可以有多张表,每张表具有唯一的表名用来标识自己
  • 3、表中有一个或多个列,列又称为“字段”,相当于java中“属性”
  • 4、表中的每一行数据,相当于java中“对象”

常见的数据库管理系统

  • MySQL、Oracle、DB2、SqlServer

二、DQL(数据查询语言)

基础查询

  • 查询常量:
    select 常量值;
    注意:字符型和日期型的常量值必须用单引号引起来,数值型不需要

  • 查询函数
    select 函数名(实参列表);
    起别名: AS
    去重(DISTINCT):select distinct 字段名 from 表名;
    加号(+):

条件查询

语法:
select查询列表 ③
from表名 ①
where筛选条件 ②

  • 简单条件运算符

         >,<,=,<> or != ,>=,<=安全等于:<=>
    
  • 逻辑运算符

        &&  andll   or! not
    
  • 模糊查询

         like:一般搭配通配符使用,可以判断字符型或数值型通配符:%多个任意字符,_单个任意字符between ... and ...IN(集合)IS NULL/ IS NOT NUll:用于判断NULL值
    
    • escape(声明转义字符)

获取客户端的字符集编码格式

分组查询

常见函数

  • 字符函数

      concat: 拼接substr: 截取子串upper: 转换成大写lower: 转换成小写trim: 去前后指定的空格和字符ltrim: 去左边空格rtrim: 去右边空格replace: 替换lpad: 左填充rpad: 右填充instr: 返回子串第一次出现的索引length: 获取字节个数
    
  • 数学函数

      round: 四舍五入rand: 随机数floor: 向下取整ceil: 向上取整mod: 取余truncate: 截断
    
  • 日期函数

      now: 当前系统日期+时间curdate: 当前系统日期curtime: 当前系统时间str_to_date: 将字符转换成日期date_format: 将日期转换成字符
    
  • 流程控制函数

       if 处理双分支case语句 处理多分支情况1:处理等值判断情况2:处理条件判断
    
  • 其他函数

      version: 版本database: 当前库user: 当前连接用户
    

分组函数

 * count:计算个数* 一般选择非空的列:主键* count(*)* max:计算最大值* min:计算最小值* sum:计算和* avg:计算平均值* 特点:1、以上五个分组函数都忽略null值,除了 count(*)2、sum和avg一般用于处理数值型,max、min、count可以处理任何数据类型3、都可以搭配distinct使用,用于统计去重后的结果4、count的参数可以支持:* 字段、*、常量值,一般放1* 注意:聚合函数的计算,排除null值。解决方案:* 选择不包含非空的列进行计算* IFNULL函数

链接查询

  • 内连接

      select *                       ⑦from 表1                        ①inner join 表2 on 连接条件  ②where      筛选条件            ③group by  分组的列表            ④having 分组后的筛选          ⑤order by 排序条件              ⑥limit 起始值,长度               ⑧
    

  • 外连接(left:左外连接,表1为主表;right:右外连接,表2为主表)

      select *                      ⑦from 表1                        ①left/right join    表2 on 连接条件  ②where      分组前筛选条件             ③group by  分组的列表            ④having 分组后的筛选          ⑤order by 排序条件              ⑥limit 起始值,长度               ⑧
    

  • 自连接

三、DML(数据操作语言)

  • 对“表内数据“的操作

插入

① insert into 表名(列名,…) values(值1,…)
- 支持插入多行(用逗号隔开):values(值1,…),(值1,…);
- 持子查询(插入):

②insert into 表名 set 列名=值,列名=值,…

修改

 update 表名 set 列=新值,列=新值,... where 筛选条件

删除

 delete from 表名 where 筛选条件 limit ...

delete与truncate比较

四、DDL(数据定义语言)

  • 对于“库和表的管理”
    创建:create
    修改:alter
    删除:drop

库的管理

表的管理

  • 创建(create):create table (if not exists) 表名;

  • 修改(alter):

  • 删除(drop):drop table (if exists) 表名;

  • 复制表:

数据类型

  • 数值型

  • 浮点型

  • 字符型

  • 日期型

六大约束

一、主键约束(primary key)

1.单一主键:[字段] primary key
2.联合主键:primary key([字段],[字段])

二、自增约束(primary key auto_increment)

  • 标识列(又称自增长列)对整型数据进行自增。

三、唯一约束unique(id,name)
四、非空约束(not null)
五、默认约束default [值]
六、外键约束(foreign key([字段]) references [主表[字段]])

  • 只能使用标记约束去定义

添加约束的时机

一、创建表时

二、修改表时

primary key 与 unique 对比

五、事务(只针对DML)

事务的ACID属性

  • 查看变量

      SHOW VARIABLES LIKE 'autocommit';
    
  • 隐式事务
    包含select、insert、update、delete 语句

  • 显式事务

savepoint(节点名):设置保存点

事务的隔离级别

六、视图

  • create view 视图名 as 查询语句

      mysql 5.1 版本出现的新特性,虚拟的,通过表动态生成 ,只保存sql逻辑,不保存结果
    
  • 修改

      1、create or replace view 视图名 as 查询语句 (如果视图存在则修改,不存在则创建)2、alter view 视图名 as 查询语句
    
  • 删除

      drop view 视图1,视图2,....
    
  • 具备以下特点的视图不允许更新

七、变量

系统变量

  • 全局变量

        服务器层面上的,必须拥有super权限才能为系统变量赋值,作用域为整个服务器,也就是针对于所有连接(会话)有效
    
  • 会话变量

         服务器为每一个连接的客户端都提供了系统变量,作用域为当前的连接(会话)
    

自定义变量

  • 用户变量

        作用域为当前链接(会话)
    

  • 局部变量

         作用域:begin end中,且只能放在第一句
    

八、存储过程与函数(mysql里不能运行,在cmd里运行)

  • 写存储过程与函数开始之前都必须定义结束字符:

      delimiter  $;
    

存储过程


函数

  • 视图与存储过程与函数的好处

    • 说明:都类似于java中的方法,将一组完成特定功能的逻辑语句包装起来,对外暴露名字好处:

      • 1、提高重用性
      • 2、sql语句简单
      • 3、减少了和数据库服务器连接的次数,提高了效率

九、流程控制结构

分支结构

1、if语句:

if(表达式1,表达式2,表达式3)
如果表达式1成立,则IF函数返回表达式2的值,否则返回表达式3的值

2、case结构

3、if结构

循环结构

while、loop、repeat



  • 这三种循环都可以省略名称,但如果循环中添加了循环控制语句(leave或iterate)则必须添加名称(标签)

十、经典例题

  • 题:向该表插入指定个数的,随机的字符串
  • 答:

MySql思维总结(这一篇就够!)相关推荐

  1. MySQL 异常有这一篇就够了!

    摘要:在本文中,总结了开发过程中最为常见的几种 MySQL 抛出的异常以及如何解决,包括高版本驱动的问题.时区配置问题.SSL 连接问题等,是一篇经验总结贴. 前言 在本文中,总结了开发过程中最为常见 ...

  2. MySQL ORDER BY排序一篇就够了

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站. 文章目录 MySQL 排序一篇就够了 ORDER BY 语法 实践出真知 实践准备 静态排序 动态排 ...

  3. MySQL 异常:这一篇就够了,MySQL 抛出异常的几种常见解决方式小结

    Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Connectio ...

  4. Mysql只看这一篇就够啦

    目录 (注意!这只是我本人自己对sql的理解,是个小白,大佬随便看看就好了) 一)mysql基本语法 二)聚合函数 三)其他语法 on 和where 的区别 四)join连接之7种连接 首先我们建立两 ...

  5. Mysql全套看这一篇就够了特别详细

    一.MySQL简介... 1 二.MySql的用户和权限管理... 12 三.Mysql逻辑架构简介... 15 四.主从复制... 21 五.SQL预热... 24 六.索引优化分析... 28 七 ...

  6. MySQL基础入门看这篇就够了,java反射原理hash

    Copyright is reserved. Please indicate the source for forwarding */ ​ SELECT * FROM teachers WHERE c ...

  7. MySQL基础之这一篇就够了

    1 MySQL 常见命令 -- 小知识点 -- 1. 自增属性必须是主键 -- 2. 建表时指定联合主键 CREATE TABLE employee (name VARCHAR(25),deptId ...

  8. 学好MySQL看完这一篇就够了(建议收藏)

    目录 1.MySQL简介: 2.RDBMS 术语: 3.数据类型 : 4.数据库操作 说明: 5.MySQL的约束: 6.存储引擎 7.数据表操作: 1.查看表结构 2.查看建表语句 3.修改表 8. ...

  9. 基础 | 零散的MySql基础记不住,看这一篇就够啦

    ❝ 这是小小本周的第二篇,本篇将会着重的讲解关于MySql基础的内容,MySql基础看这一篇就够啦. ❞ 送书反馈与继续送书 之情小微信公众号第一次送书,Java深度调试技术,书已经被中奖者麦洛签收, ...

  10. 前端需要了解的计算机网络知识, 这一篇就够了!(图文并茂,万字长文!)

    作者:lio-mengxiang 原文链接:https://juejin.im/post/5e51febde51d4526c932b390 本文主要目的也是为了非科班前端补充计算机科班基础知识,比如你 ...

最新文章

  1. 改进YOLOv3 | IA-YOLO让恶劣天气的目标检测起飞了!!!
  2. linux如何查看归档文件,linux基本命令:文本搜索,拷贝文件,移动文件,归档管理,压缩解压缩文件,查看命令位置...
  3. Python_note1
  4. Nginx之反向代理与负载均衡实现动静分离实战
  5. 今日头条算法原理(全文)【转】
  6. shell题库选择题_linux操作题及答案 shell练习题
  7. 卡尺测量的最小范围_不知道这四大基本原则,你还有脸在测量圈混?
  8. PID控制器改进笔记之二:改进PID控制器之手自动切换
  9. (pytorch-深度学习系列)CNN的多输入通道和多输出通道
  10. GOF之结构型模式Ⅱ(重点)
  11. 进程外Session保存和全局文件错误捕获
  12. 实验二:编写输出Hello World!
  13. windows java路径问题_java中路径的问题
  14. 以太坊互助保险项目Nexus Mutual新增支持Badger DAO
  15. 蓝桥杯入门训练Fibonacci数列
  16. java day24【Stream流、方法引用】
  17. 不如跳舞!伯克利的舞蹈动作迁移效果逆天
  18. 开源之旅——应用服务器篇
  19. 论文笔记_S2D.73_ICCV2021_单目深度估计的可解释深度网络研究
  20. 【ACM-ICPC 2018 北京赛区网络预赛】B题Tomb Raider ---- 状态压缩+思维★

热门文章

  1. python下载到本地的script_python 站点爬虫 下载在线盗墓笔记小说到本地的脚本
  2. Mn3O4六边形纳米晶体/纳米二氧化锰/纳米氢氧化镍正极极片氧化物-瑞禧
  3. MLK | 如何解决机器学习树集成模型的解释性问题
  4. 掌握了2-3-4树也就掌握了红黑树,不信进来看看,建议收藏!
  5. maven 中deploy命令报401错误的原因及解决方案
  6. 雪花玻璃球(Snow Globe)
  7. 看看你是SAP几级?
  8. 商务统计_7 用图表演示数据 - 定量数据
  9. 大数据Hadoop学习之——好友推荐
  10. 至少12%的Facebook帐号是虚假或重复帐号;《王者荣耀》外挂牟利可能被刑拘|ServiceHot一周热闻