• MySQL之数据库理论



    提示:以下是本篇文章正文内容,Java系列学习将会持续更新

    一、数据库理论

    1-1 数据库分类

    数据库大体可以分为 关系型数据库非关系型数据库
    关系型数据库与非关系型数据库的 区别

    关系型数据库非关系型数据库
    常见数据库Oracle、MySQL、SQL Servermemcached、redis
    使用SQL不强制要求,一般不基于SQL实现
    事务支持支持不支持
    复杂操作支持不支持
    海量读写操作效率低效率高
    基本结构基于表和列,结构固定灵活性比较高
    使用场景业务方面的OLTP系统用于数据的缓存、或基于统计分析的OLAP系统

    注:OLTP(On-Line Transaction Processing)是指联机事务处理,OLAP(On-Line Analytical Processing)是指联机分析处理。

    1-2 SQL语句分类

    1. DDL数据定义语言,用来维护存储数据的结构
      代表指令:creat、drop、alter
    2. DML数据操纵语言,用来对数据进行操作
      代表指令: insert,delete,update
    3. DML中又单独分了一个DQL,数据查询语言,代表指令: select
    4. DCL数据控制语言,主要负责权限管理和事务
      代表指令: grant,revoke,commit

    回到目录…

    二、数据库基础

    2-1 常见的数据类型

    类型表示说明
    小数decimalDECIMAL(3,1) 表示共有3位数,有1位是小数
    整型inttiny int < small int < int < big int
    字符型varcharVarchar(300字以内变长) < text < longtext
    char定长
    时间型date年-月-日
    time时:分:秒
    datetime年-月-日 时:分:秒 表达式DEFAULT:current_timestamp表示自动插入当前系统时间
    timestamp时间戳:从1970-01-01 00:00:00 经过的秒数

    2-2 字段约束

    缩写全称说明
    PKPrimary Key主键,每条数据的唯一标识
    NNNot Null不允许为NULL
    UQUnique唯一键,不允许重复
    AIAuto_Increment自增的,自动增长
    UNUnsigned无符号的
    BBinary
    ZFZero Fill
    GGenerated
    FKForeign Keys外键

    初学者行为准则:

    1. 每张表都有一个id,无所谓叫什么。没有业务含义,只是作为编号主键。类型为int,约束为PK、NN、AI
    2. 每个字段都带上Not NULL
    3. 如果有的字段需要保持唯一,则勾选UQ。如用户账号

    在这里插入图片描述

    2-3 外键

    外键:将一张表和其它表的主键关联起来,防止出现非一致性的操作。

     比如,我们的图书管理系统中有三张表booksreadersrecords,当我们在records表中增删借阅记录时,理想中是应该影响到其它两张表中的信息。但实际上 books表中书的状态没有发生改变,readers中借阅者的信息也没有改变。

    所以我们为了数据的一致性,在 records 表中设置外键,并且锁定到另外两张表的唯一主键。
    在这里插入图片描述
    在这里插入图片描述

    SQL语句:

    ALTER TABLE `lib_0403`.`records` 
    ADD INDEX `fk_bid_idx` (`bid` ASC),
    ADD INDEX `fk_rid_idx` (`rid` ASC);
    ;
    ALTER TABLE `lib_0403`.`records` 
    ADD CONSTRAINT `fk_bid`
      FOREIGN KEY (`bid`)
      REFERENCES `lib_0403`.`books` (`bid`)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION,
    ADD CONSTRAINT `fk_rid`
      FOREIGN KEY (`rid`)
      REFERENCES `lib_0403`.`readers` (`rid`)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    外键约束说明
    RESTRICT父表数据被删除,会阻止删除。默认就是这一项
    NO ACTION在MySQL中,同RESTRICT
    CASCADE级联删除
    SET NULL父表数据被删除,子表数据会设置为NULL

    回到目录…


    总结:
    提示:这里对文章进行总结:
    以上就是今天的学习内容,本文是MySQL的学习,认识了数据库,学习数据库理论,以及MySQL的数据类型和字段约束,还有如何设置外键。之后的学习内容将持续更新!!!

  • 相关阅读:
    代码随想录算法训练营第53天|1143. 最长公共子序列,1035. 不相交的线,53. 最大子数组和
    B. Kuroni and Simple Strings
    postgresql
    redis高可用
    NLP之基本介绍
    人工智能职业教育怎么搞?操作系统层级的解法来了
    软件产品性能测试有哪些流程?第三方软件检测机构如何收费?
    【Leetcode】208.实现Trie(前缀树)
    Centos-7静默安装Oracle-11gr2
    调用Visual Studio的cl.exe编译C/C++程序
  • 原文地址:https://blog.csdn.net/qq15035899256/article/details/126313927