Marvel-Site Marvel-Site
首页
  • Java

    • Java基础
    • Java进阶
    • Java容器
    • Java并发编程
    • Java虚拟机
  • 计算机基础

    • 数据结构与算法
    • 计算机网络
    • 操作系统
    • Linux
  • 框架|中间件

    • Spring
    • MySQL
    • Redis
    • MQ
    • Zookeeper
    • Git
  • 架构

    • 分布式
    • 高并发
    • 高可用
    • 架构
  • 框架

    • React
    • 其他
  • 实用工具
  • 安装配置

    • Linux
    • Windows
    • Mac
  • 开发工具

    • IDEA
    • VsCode
  • 关于
  • 收藏
  • 草稿
  • 索引

    • 分类
    • 标签
    • 归档
GitHub (opens new window)

Marvel

吾必当乘此羽葆盖车
首页
  • Java

    • Java基础
    • Java进阶
    • Java容器
    • Java并发编程
    • Java虚拟机
  • 计算机基础

    • 数据结构与算法
    • 计算机网络
    • 操作系统
    • Linux
  • 框架|中间件

    • Spring
    • MySQL
    • Redis
    • MQ
    • Zookeeper
    • Git
  • 架构

    • 分布式
    • 高并发
    • 高可用
    • 架构
  • 框架

    • React
    • 其他
  • 实用工具
  • 安装配置

    • Linux
    • Windows
    • Mac
  • 开发工具

    • IDEA
    • VsCode
  • 关于
  • 收藏
  • 草稿
  • 索引

    • 分类
    • 标签
    • 归档
GitHub (opens new window)
  • Java

  • 计算机基础

  • 框架|中间件

    • Spring

    • MyBatis

    • MySQL

      • MySQL基础知识
        • 1. 什么是数据库, 数据库管理系统, 数据库系统, 数据库管理员?
        • 2. 数据库3范式
        • 3. char与varchar
        • 2. 存储时间
      • SQL语言
      • MySQL经典练习50题
      • MySQL索引
      • MySQL事务
      • MySQL执行计划
      • MySQL锁
      • MySQL日志
      • MySQL架构
      • MySQL多版本并发控制MVCC
      • MySQL优化
      • MySQL常见问题
    • Redis

    • 消息队列

    • Zookeeper

    • Git

    • Maven

    • Gradle

  • 架构

  • 后端
  • 框架|中间件
  • MySQL
Marvel
2022-07-13
目录

MySQL基础知识

# MySQL 基础知识

# 1. 什么是数据库, 数据库管理系统, 数据库系统, 数据库管理员?

  • 数据库:DataBase,DB,就是信息的集合,或者说数据库是由数据库管理的数据的集合。

  • 数据库管理系统:DataBase Management System,DBMS,是一种操作和管理数据库的大型软件,通常用于建立、使用和维护数据库。

  • 数据库系统:Data Base System,DBS,通常由软件、数据库和数据库管理员组成。

  • 数据库管理员:DataBase Administrator,DBA,负责全面管理和控制数据库系统。

数据库系统基本构成

# 2. 数据库3范式

  • 1NF(第一范式):属性(表中的字段)不能再被分割,这个字段只能是一个值,不能再分为多个其他的字段。1NF时所有关系型数据库的最基本要求,也就是说关系型数据库的表必须满足第一范式。

  • 2NF(第二范式):1NF基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。例如订单表里,存储了商品信息(商品价格、商品类型),那就需要把商品ID和订单ID作为联合主键,才满足第二范式。

  • 3NF(第三范式):2NF基础上,消除了非主属性对于部分属性的传递函数依赖。(不能有传递依赖)

函数依赖:在属性X的值确定的情况下,必定能确定熟悉感Y的值,那么Y函数依赖X。

部分函数依赖:学号和身份证->姓名、学号->姓名、身份证->姓名;(姓名)部分函数依赖于(学号、身份证)

完全函数依赖:学号、班级->姓名、学号!->姓名、学班级!->姓名;(姓名)完全函数依赖于(学号、班级)

传递函数依赖:学号->班级、班级->班主任,所以存在非主属性班主任对于学号的传递依赖。

# 3. char与varchar

char:

  • 定长字符串,长度是固定的;
  • 插入长度小于char的固定长度时用空格填充;
  • 因长度固定,存取速度要比varchar快很多;但会占用多余空间,时空间换时间的做法。
  • 最多能存放字符个数为255

varchar:

  • 可变长字符串,长度是可变的;
  • 插入的数据是多长,就按照多长存储;
  • 存取慢,因为长度不固定;但不占用多余空间,是时间换空间的做法。
  • 最多能存放字符个数为65532

# 2. 存储时间

日期类型 存储空间 日期格式 日期范围 是否存在时区
Datetime 8 字节 是
Timestamp 4 字节 否
时间戳 4 字节 否
编辑 (opens new window)
#MySQL
上次更新: 2023/08/20, 21:21:52
MyBatis常见面试问题
SQL语言

← MyBatis常见面试问题 SQL语言→

最近更新
01
位运算
05-21
02
二叉树
05-12
03
Spring三级缓存解决循环依赖
03-25
更多文章>
Theme by Vdoing | Copyright © 2022-2024 Marvel
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式