数据库的基本介绍
关系型数据库
创建在关系模型基础上的数据库, 用来存储和管理结构化的数据.
关系模型
类似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
在关系型数据库当中, 可以用三张数据表来表示
- 学生表
- 图书表
- 借阅表(记录行为)
关系型数据库的特点(也就是事务的特点)
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;
设置字符集
utf8
和utf8mb4
mysql
中utf8
字符是不全的,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 表名
Comment here is closed