适合有编程基础的人看的《韩顺平零基础30天学java》笔记(P730~P820)MySQL

写在最前边:

研究生一枚,为后端实习和未来工作打基础。无意间发现韩顺平老师的课程,细心细致,讲课和吴恩达老师一样,都是保姆式讲解,各种基础知识都会补充,爱了。
韩顺平老师课程地址:https://www.bilibili.com/video/BV1fh411y7R8?spm_id_from=333.999.0.0
阅读提醒:本笔试适合有编程语言基础的伙伴阅读,因为本兔兔是本专业的,有c、c++、python 、sql基础,笔记中特别的基础的内容就没有记录。完全零基础的小伙伴建议跟着韩老师的课程自己记录。

Java 基础

第三阶段 分析需求、提高代码实现能力

第三章 Mysql基础

驾驭数据库的能力是衡量程序员技术的标准

在这里插入图片描述

一、MySQL安装和配置

1、选择版本 5.7,因为目前最稳定
2、配置过程遇到的问题:
  • 1) 已经安装了其他版本的MySql,建议卸载然后跟着韩老师学习5.7,因为别的版本不稳定,mysql服务总是自动停止。
    彻底卸载mysql的方法
  • 2)记录自己root用户 的密码 是: 姓名全拼
3、使用命令行连接到MySQL mysql必须是一个运行的状态哦
  • 命令格式:
    mysql -h 主机IP -P 端口号 -u 用户名 -p [密码]
    
    在这里插入图片描述
  • mysql是一个网络服务,那么就有监听的端口号(),可以进行网络通信。
    我们设置mysql在 3306 端口
    在这里插入图片描述
4、使用Navicat 管理数据库(SQLyog也行)

二、MySQL 的三层结构

在这里插入图片描述

1、MySQL数据库中 普通表的本质是文件
2、三层分别是:
  • 数据库管理系统 DBMS

    DBMS中最重要的程序:mysqld.exe,在监听3306端口

  • 数据库

    存储位置:data文件夹下
    在这里插入图片描述

  • 表(视图、触发器…)

    ①存储位置:具体的数据库文件夹下
    在这里插入图片描述

    表的本质是文件

    ②存储结构:行列组成一张表
    表的一行称为一条记录,一条记录在java编程中会使用一个对象表示


二、SQL语句学习

1、SQL语句分类

在这里插入图片描述

2、数据库的操作
  • 1)创建数据库
    在这里插入图片描述
    在这里插入图片描述
    • 创建数据库 \ 表 的时候,如果名称和关键字重名可以加上反义号 ’ ’ 。无论什么名字都带着反义号更加规范
      在这里插入图片描述
  • 2)查看数据库
    在这里插入图片描述
  • 3)删除数据库 慎用!!!
    在这里插入图片描述
  • 4)备份数据库 在安装目录\bin下使用DOS指令操作
    mysqldump -u 用户名 -p -B 数据库1 数据库2 数据库n > 保存路径\\文件名.sql
    
  • 5)恢复数据库 在cmd中进入MySQL数据库后,再使用该指令命令行
    Source 文件名.sql
    
    恢复技巧:还可以把备份的sql文件扔到navicat中全部执行一遍
  • 4)备份 表 在安装目录\bin下使用DOS指令操作
    mysqldump -u 用户名 -p 数据库 表1 表2 表n > 保存路径\\文件名.sql
    
3、表的操作

在这里插入图片描述


三、MySQL常用的 列类型【数据类型】

使用原则:在能够满足需求的情况下,尽量选择占用空间小的类型

在这里插入图片描述

0、bit类型

在这里插入图片描述

1、数值类型

在这里插入图片描述

细节1:数值类型还细分为有符号、无符号

在这里插入图片描述

细节2:DECIMAL[M , D]
  1、M是所有位数的总数 = 整数位数 + 小数位数。最大是65,默认为10
  2、D是所有小数位数。最大是30,默认为0
细节3:
 整型列,存放的值不符合要求会报错;小数列,存放的值不符合要求会被四舍五入或者补0

在这里插入图片描述

2、文本类型(字符串类型)

在这里插入图片描述

细节1:
  1、CHAR是固定长度的字符串,VARCHAR是变长字符串
细节2:
  1、CHAR最多 255 ``字符``
  2、VARCHAR最多 65535 ``字节``,其中由3个字节用来记录字符串长度,所以真正存放数据的是65532个字节。 
细节3:VARCHAR真正可以存放的字符数量
  1、不同的 字符集,字符使用的字节大小不一样。
  2、如果是utf8字符,则1个字符占用3个字节,真正可以存放 56635 / 3 = 21844个字符
  3、如果是gbk字符,则1个字符占用2个字节,真正可以存放 56635 / 2 =32766个字符
细节4:
  在创建表的 create语句中,列类型括号中填的都是字符数量(不区别中英文) 而不是字节。
3、二进制数据类型

在这里插入图片描述

4、日期类型

在这里插入图片描述

相关函数 【在insert 、select语句中都可以使用】

在这里插入图片描述
最后一格 年月日 操作函数的演示
在这里插入图片描述

相关函数使用细节

在这里插入图片描述
在这里插入图片描述


四、修改表

在这里插入图片描述


五、CRUD操作

1、INSERT INTO 语句注意事项

在这里插入图片描述
在这里插入图片描述

2、UPDATE…SET…[WHERE…]语句注意事项

在这里插入图片描述

3、DELETE FROM语句注意事项

在这里插入图片描述

4、SELECT 语句注意事项
  • 1)DISTINCT的去重作用要记住
  • 2)列运算在这里插入图片描述
  • 3)起别名在这里插入图片描述
  • 4)WHERE子句
    在这里插入图片描述
  • 5)order by [asc|desc]子句
    在这里插入图片描述

六、函数

1、统计函数count

在这里插入图片描述

细节:count(*)和count(列)的区别:

在这里插入图片描述

2、合计函数sum
细节:仅对数值起作用哦!!

在这里插入图片描述

3、其他合计函数avg、max、min
4、分组统计

在这里插入图片描述

5、字符串函数 【字符索引从 1 开始】

在这里插入图片描述

6、数学函数

在这里插入图片描述

7、加密函数 和 系统函数

在这里插入图片描述
在这里插入图片描述

8、流程控制函数

在这里插入图片描述


七、高级查询语句

1、WHERE语句

在这里插入图片描述

2、LIKE操作符语句—— 【%和 _】

在这里插入图片描述

3、判NULL 要用 IS

在这里插入图片描述

4、查询表结构

在这里插入图片描述

5、排序

在这里插入图片描述

6、分页查询

在这里插入图片描述在这里插入图片描述

注意LIMIT后必须加确定的值而不是表达式哦在这里插入图片描述

八、高级分组语句 分组函数+group by

count 不统计 null ,统计的是非null的行数

在这里插入图片描述

1、不加筛选时,两张表查询结果是笛卡尔积

在这里插入图片描述

2、筛选条件要多思考哦,编号相等只是最简单的

在这里插入图片描述
在这里插入图片描述

3、自连接将同一个表看做两个表使用,进行连接操作
注意:需要起别名哦!

在这里插入图片描述


九、子查询(嵌套查询)

嵌入到其他sql语句中的 select语句
1、单行子查询

子查询只返回一行数据

2、多行子查询

子查询返回多行数据,使用关键字 in
在这里插入图片描述

3、子查询 充当临时表 可以解决很多复杂的查询

在这里插入图片描述

4、all操作符

在这里插入图片描述

等价于使用MAX:

在这里插入图片描述

5、any操作符

在这里插入图片描述

等价于使用MIN:

在这里插入图片描述

十、子查询(嵌套查询)

例题

在这里插入图片描述
在这里插入图片描述

十一、表复制【自我复制、蠕虫复制】

1、使用场景

在这里插入图片描述
在这里插入图片描述

十二、表去重

在这里插入图片描述
在这里插入图片描述

十三、合并查询结果

union all 不会取消重复行在这里插入图片描述
union == 会取消重复行==

十四、外连接

1、出现的需求

要求显示部门名【部门表】、员工名【员工表】,并且没有员工的部门也要显示 出来。
以前的技术:做不到在这里插入图片描述

2、分类
  • 左 外连接:LEFT JOIN
    LEFT JOIN左侧表完全显示
  • 右 外连接:RIGHT JOIN
    RIGHT JOIN右侧表完全显示

十五、约束

1、主键 —— primary key 【不允许null】

在这里插入图片描述

2、unique 【允许null时可插入null】

在这里插入图片描述

3、外键 【允许null时可插入null】

在这里插入图片描述
在这里插入图片描述

4、check 【mysql5.7 在语法上支持,只是做语法校验,但是实际不生效】

十六、自增长

1、需求

在这里插入图片描述

2、使用在这里插入图片描述
3、细节

在这里插入图片描述

十七、索引 不用加内存、不用改程序、不用调用sql就能提高数据库性能的手段

1、索引机制

在这里插入图片描述
在这里插入图片描述

2、索引类型

在这里插入图片描述

3、查询和删除索引

在这里插入图片描述
在这里插入图片描述

4、适合创建索引的场景

在这里插入图片描述

十八、事务 用于保证数据的一致性

在这里插入图片描述

1、由一组相关的增删改语句组成(不含select语句),该组语句要么 全部成功,要么 全部失败。
2、事务操作

在这里插入图片描述
在这里插入图片描述

3、细节

在这里插入图片描述

4、事务隔离级别

在这里插入图片描述

没有事务隔离会造成的危害:

在这里插入图片描述

mysql隔离级别 隔离级别演示视频

在这里插入图片描述
在这里插入图片描述

十九、mysql表类型和存储引擎

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二十、视图 不同权限的人看到的信息不一样

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二十一、Mysql用户管理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二十二、权限管理

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值