type
status
slug
summary
tags
category
password
date
icon

Databases

数据模型

  • data
  • data relationship
  • data constraints
  • data semantics
  • 关系模型 relational model
    • 面向对象数据模型
    • 对象-关系模型
  • 半结构化数据模型(XML)

MySQL

一、MySQL概述

🧠
数据库相关概念
数据库:存储数据的仓库,数据是有组织的进行存储 DB
数据库管理系统:操纵和管理数据库的大型软件 DBMS
SQL:操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准
  • 主流的关系型数据库管理系统
    • Oracle
    • MySQL
    • 操作语言都是SQL
  • 进入MySQL
    • 这样操作之后就可以进入到MySQL命令行控制界面
  • 数据模型
    • 一个数据库中可以包含多个表
      多个数据库依靠DBMS进行管理

二、SQL

  • SQL通用语法
    • SQL语句可以单行或多行语句,以分号结尾
    • 关键字建议使用大写
    • SQL语句使用空格/缩进来增强语句的可读性
    • 注释 — # /* *
  • SQL分类
    • DDL data definition language
      • 数据定义语言
      • 用来定义数据库对象(数据库,表,字段
      • 查询
        • 创建
          • 删除
            • 使用
              • 查询当前数据库所有表
                • 查询表结构
                  • 查询指定表的建表语句
                    • 创建表结构
                      • 数据类型
                        • 数值类型、字符串类型、日期时间类型
                          • notion image
                            精度代表整个数字的位数,标度代表小数部分的位数
                            age TINYINT UNSIGNED 代表无符号
                            score double(4, 1)
                            notion image
                            二进制数据(音频,文本,安装包)
                            char(10) 未占用的空间用空格占位 性能高
                            varchar(10) 变长字符串 性能较差 计算占用的空间
                            用户名(username) 使用varchar比较好
                            性别(gender) 使用char(1)比较好
                            notion image
                            birthday date 记录生日的日期
                      • 修改表
                        • 添加字段
                          • 修改字段的数据类型
                            • 修改字段名和数据类型
                            • 删除字段
                              • 修改
                                • 删除
                                  • 删除表
                                  • 删除指定表,并且重新创建该表
                                  • 🧠
                                    两种删除方法都会删除表中的所有数据,但是第二种方法会保留表的结构,只是删除数据,而第一种方法是表的结构和表的数据都会被删除
                                🦄
                                DDL-数据库操作(可以选择相应的一些参数)
                                notion image
                                DDL-关于表操作
                                notion image
                            • DML data manipulation language
                              • 数据操作语言
                              • 用来对数据表中的数据进行增删改
                              • 用来对数据表中表的数据记录进行增删改的操作
                                • 增加 insert
                                    1. 给指定字段添加数据
                                      1. 给全部字段添加数据
                                        1. 批量添加数据
                                          🦄
                                          注意⚠️ - 插入数据大小应该在字段的规定范围内 - 字符串和日期类型数据应该包含在引号中 - 插入数据时,指定的字段顺序应该和值的顺序是一一对应
                                      2. 修改 update
                                        • 基本语法
                                          🦄
                                          注意⚠️: 修改语句的条件可以有,也可以没有 如果没有条件,那么会修改整张表的所有数据
                                      3. 删除 delete
                                        • 🦄
                                          注意⚠️ 如果没有条件,就会删除整张表的所有数据 delete语句不可以删除某一个字段的值
                                  • DQL
                                    • 数据查询语言
                                    • 用来查询数据库中表的记录
                                  • DCL
                                    • 数据控制语言
                                    • 用来创建数据库用户、控制数据库的访问权限

                                E-R模型

                                什么是数据库设计

                                数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。
                                notion image
                                数据库是信息系统的核心和基础,它把信息系统中大量的数据按一定的模型组织起来,并提供存储、维护、检索数据的功能,最终使信息系统可以方便、及时、准确地从数据库中获得所需的信息。即数据库的设计目标是:为用户和各种应用系统提供一个信息基础设施和高效率的运行环境,这里的高效率代表的是冗余少、易维护和便于使用。
                                需求分析 → 概念设计 → 逻辑设计 → 物理设计 → 数据库实现 → 运行与维护阶段
                                notion image
                                总而言之,数据库设计是一个不断迭代和逐步求精的过程。而在这个过程中,重中之重的阶段为概念设计逻辑设计,且本文也是围绕这两个阶段着重展开叙述的。

                                什么是关系型数据库

                                数据库设计为关系型数据库
                                关系 :关系型数据库关系的数据结构就是一张二维表,通俗的讲,二维表名称就是关系名。
                                属性 :二维表中的列称为属性(字段),每个属性都有一个属性名。
                                值域 :二维表中属性的取值范围称为值域,每个属性都有一个值域。
                                关系模式 :二维表的结构称为关系模式。设关系名为 R,其属性为 A1,A2,…,An,则关系模式可以表示为:R(A1,A2,…,An),一个具体的例子:职工(职工号,姓名,性别,部门)。
                                候选码 :如果一个属性集的值能唯一标识一个关系的元组而又不含多余的属性,则称该属性集为候选码。在一个关系上可以有多个候选码。
                                主属性 :包含在任一候选码中的属性。
                                非主属性 :不包含在任一候选码中的属性。
                                主键 :有时一个关系有多个候选码,可以选择其中一个作为主键。每个关系有且只有一个主键。
                                外键 :如果关系模式 R 中的属性 K 是其他关系模式的主键,那么 K 在关系模式 R 中称为外键。
                                notion image
                                概念设计是设计形成一个独立于 DBMS 的概念数据模型,用来表述数据与数据之间的联系,它直接面向现实世界,因而很容易被用户所理解,方便用于数据库设计者与用户的交流。该阶段先设计与用户具体应用相关的数据结构——用户视图,然后再不断对视图进行集成修改,最终得到一个能正确、完整地反应该单位数据及联系并满足各种处理要求的数据模型,之后再把概念模型转换成具体机器上 DBMS 支持的数据模型。
                                概念结构设计的特点:
                                • 能真实、充分地反映现实世界;
                                • 易于理解;
                                • 易于更改;
                                • 易于向关系、网状、层次等各种数据模型转换。
                                概念设计的阶段的主要描述工具就是 E-R 模型(Entity-Relationship Model)。

                                E-R模型

                                实体是 E-R 模型的基本对象,是对现实世界中各种事物的抽象。它可以是物理存在的事物,例如人、汽车等;也可以是抽象的概念,例如学校、部门等。
                                属性是不可分割的数据单位,用于描述实体所具有的特征,例如教师实体具有姓名、性别、地址等属性。
                                能够唯一表示实体的属性集称为
                                在 E-R 模型中,实体一般是长方形来体现,而属性则是椭圆形,如果属性是主码(主键),则在属性名称下用画下划线来表示。如下图所示。
                                notion image
                                属性按照取值的个数还可以分为单值属性多值属性。单值属性是指此属性对于同一个实体只能取一个值,大多数的属性都属于单值属性,例如同一个人只能具有一个年龄和一种性别。但是在某些情况下,实体的属性可能取多个值,这时候的属性就称为多值属性,例如人的联系方式信息就是一个多值的,有的人有 1 个电话,有的人有 2 个或者 3 个等等,或者可以分为移动电话联系方式、固定电话联系方式和邮件联系方式等。
                                注意:多值属性的描述与单值属性不一致,它采用双线椭圆表示,并且在实际开发过程中,如果有多值属性出现,一般要将其另归为实体或联系。
                                 
                                顶级高手应具备的CFA思维量子计算
                                Loading...
                                fufu酱
                                fufu酱
                                一个爱折腾的大学生
                                公告
                                👋
                                欢迎 欢迎来到fufu酱的blog! 💞️我是22级浙江大学竺可桢学院计算机科学与技术专业的学生 一个爱折腾的大学生 🌱我会在这个网站上更新我的笔记和工具分享 🌈目前all in MLLM 📫你可以用下面的方式联系到我
                                🍀
                                今後ともよろしくお願いします