数据库的基本介绍

  • 关系型数据库

    创建在关系模型基础上的数据库, 用来存储和管理结构化的数据.

    • 关系模型

      类似python中类
      class Student:
          def __init__(self, name, classes ...):
              self.name = name
              self.classes = classes
          
          def borrow(self, book):
              print(f"student {self.name} borrow {book.name}")
      
      class Book:
          pass

      在关系型数据库当中, 可以用三张数据表来表示

      1. 学生表
      2. 图书表
      3. 借阅表(记录行为)

      QmLj4.jpg

    • 关系型数据库的特点(也就是事务的特点)

      • ACID

        • Atomic(原子性)

          指事务的操作是不可分割的, 要么完成, 要么不完成. 不存在其他的中间态

          A -> B 转账, 如果中途中断, 那么整个银行系统就会崩溃.
        • Consistence(一致性)

          事务A和事务B同时运行, 无论谁先结束, 数据库都会到达一致.

          集合点在东方明珠, 同学A从静安出发, 同学B从黄埔出发.
          一致性不关心A和B谁先到达, 只关心最终两者都在东方明珠汇合.
        • Isolation(隔离性)

          解决多个事务同时对数据进行读写和修改的能力.

        • Duration(持久性)

          当某个事务一旦提交, 无论数据库崩溃还是其他原因, 该事务的结果都能够被持久化地保存下来.

          事务的所有操作都是有记录的, 即使数据库中途崩溃, 仍然可以通过记录恢复
    • 适用场景

      考虑到事务和日志

      • 对数据完整性有要求.
      • 存储的数据结构化完整.
      • 单个数据库服务实例可以满足需求.

        建立集群方案, 大多需要适用企业版, 企业版收费高昂.
      • 读表操作远远大于写表操作.
  • 非关系型数据库(Nosql, not noly sql)

    创建在Nosql系统存储(键对值)基础上的数据库, 既可以存储结构化的数据, 也可以存储非结构化的数据.

Mysql数据库的安装(服务端)

数据库分为服务端和客户端
  • windows

    https://jingyan.baidu.com/article/9f7e7ec0ebac9a6f281554dd.html
  • ubuntu

    apt-get install mysql-server
    # 登录
    mysql -u root -p
  • mac

    https://jingyan.baidu.com/article/b7001fe1c7cc260e7382dd66.html

Navicat的安装和使用(客户端)

  • windows&ubuntu

    http://www.navicat.com.cn/
  • mac

    SequelPro

Mysql数据库的基本使用

  • 连接

    • localhost

      填写主机的时候就是填写ip地址

      localhost对应的地址约等于127.0.0.1

  • 数据库(database)

    • Create

      create database tunan_class_2;
      • 设置字符集

        • utf8utf8mb4

          mysqlutf8字符是不全的, utf8mb4才是和我们python中的utf-8字符集一致.

        • 排序规则

          选择默认的utf8mb4_general_ci

    • Retrieve

      show databases;
    • Update

      ALTER database tunan_class_2 DEFAULT CHARACTER SET 'utf8mb4'
    • Delete

      drop database 库名
  • 数据表(table)

    • Create

      use tunan_class;
      CREATE TABLE class_2(
      id int PRIMARY KEY auto_increment,
      student_name varchar(255)
      )DEFAULT charset=utf8mb4;
    • Retrieve

      show tables;
    • Update

      ALTER TABLE class_2 RENAME class_3;
    • Delete

      drop table 表名
      • 只删除数据, 不删除表

        truncate 表名
Last modification:September 6, 2022
如果觉得我的文章对你有用,请随意赞赏