MySQL 关系型数据库笔记

MySQL 关系型数据库笔记

一、数据库基础

  1. 数据库 (Database): 存储数据的仓库,按照数据结构组织、存储和管理数据。

  2. 关系型数据库 (Relational Database): 基于关系模型建立的数据库,使用表格存储数据,表格之间通过关系连接。

  3. 表 (Table): 数据库中的基本结构,由行和列组成,类似于电子表格。

  4. 行 (Row): 表中的一条记录,代表一个实体。

  5. 列 (Column): 表中的一个字段,代表实体的一个属性。

  6. 主键 (Primary Key): 唯一标识表中每条记录的列或列组合。

  7. 外键 (Foreign Key): 建立表与表之间关系的列,指向另一张表的主键。

二、SQL 语言

  1. SQL (Structured Query Language): 用于操作关系型数据库的标准语言。

  2. SQL 分类:

    • DDL (Data Definition Language): 定义数据库对象,例如 CREATE、ALTER、DROP。

    • DML (Data Manipulation Language): 操作数据,例如 SELECT、INSERT、UPDATE、DELETE。

    • DCL (Data Control Language): 控制数据库访问权限,例如 GRANT、REVOKE。

  3. 常用 SQL 语句:

    • 创建数据库: CREATE DATABASE database_name;

    • 删除数据库: DROP DATABASE database_name;

    • 创建表:

      sql

      复制

      CREATE TABLE table_name (
          column1 datatype constraints,
          column2 datatype constraints,
          ...
          PRIMARY KEY (column_name)
      );
    • 删除表: DROP TABLE table_name;

    • 插入数据: INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);

    • 查询数据: SELECT column1, column2, ... FROM table_name WHERE condition;

    • 更新数据: UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;

    • 删除数据: DELETE FROM table_name WHERE condition;

三、MySQL 数据类型

  1. 数值类型:

    • INT: 整数

    • FLOAT: 单精度浮点数

    • DOUBLE: 双精度浮点数

    • DECIMAL: 定点数

  2. 字符串类型:

    • CHAR: 定长字符串

    • VARCHAR: 变长字符串

    • TEXT: 长文本数据

  3. 日期时间类型:

    • DATE: 日期

    • TIME: 时间

    • DATETIME: 日期和时间

    • TIMESTAMP: 时间戳

四、MySQL 约束

  1. NOT NULL: 列不能为空。

  2. UNIQUE: 列的值必须唯一。

  3. PRIMARY KEY: 主键,唯一标识一条记录。

  4. FOREIGN KEY: 外键,建立表与表之间的关系。

  5. CHECK: 检查列的值是否符合条件。

  6. DEFAULT: 为列设置默认值。

五、MySQL 索引

  1. 索引 (Index): 提高数据检索速度的数据结构。

  2. 索引类型:

    • 普通索引: 最基本的索引,没有任何限制。

    • 唯一索引: 索引列的值必须唯一。

    • 主键索引: 特殊的唯一索引,不允许有空值。

  3. 创建索引: CREATE INDEX index_name ON table_name (column_name);

  4. 删除索引: DROP INDEX index_name ON table_name;

六、MySQL 函数

  1. 聚合函数: AVG()、COUNT()、MAX()、MIN()、SUM()

  2. 字符串函数: CONCAT()、LENGTH()、LOWER()、UPPER()、SUBSTRING()

  3. 日期时间函数: NOW()、CURDATE()、CURTIME()、DATE_ADD()、DATE_SUB()

  4. 数学函数: ABS()、CEIL()、FLOOR()、RAND()、ROUND()

七、MySQL 事务

  1. 事务 (Transaction): 一组原子性的 SQL 操作,要么全部成功,要么全部失败。

  2. 事务特性 (ACID):

    • 原子性 (Atomicity): 事务是一个不可分割的工作单元。

    • 一致性 (Consistency): 事务必须使数据库从一个一致性状态变换到另一个一致性状态。

    • 隔离性 (Isolation): 多个事务并发执行时,一个事务的执行不应影响其他事务。

    • 持久性 (Durability): 一旦事务提交,对数据的改变就是永久性的。

  3. 事务控制语句:

    • BEGIN: 开始一个事务。

    • COMMIT: 提交事务,使更改永久生效。

    • ROLLBACK: 回滚事务,撤销所有更改。

八、MySQL 备份与恢复

  1. 备份类型:

    • 完全备份: 备份整个数据库。

    • 增量备份: 备份自上次备份以来更改的数据。

  2. 备份工具:

    • mysqldump: 命令行工具,用于备份数据库。

    • MySQL Workbench: 图形化工具,提供备份和恢复功能。

  3. 恢复数据库: 使用备份文件恢复数据库。

九、MySQL 优化

  1. 优化查询:

    • 使用索引。

    • 避免使用 SELECT *。

    • 使用 LIMIT 限制返回的行数。

  2. 优化表结构:

    • 选择合适的数据类型。

    • 规范化数据库设计。

  3. 优化服务器配置:

    • 调整内存参数。

    • 优化磁盘 I/O。

十、MySQL 学习资源

  1. 官方文档: https://dev.mysql.com/doc/

  2. 在线教程: MySQL 教程 | 菜鸟教程

  3. 书籍: 《MySQL 必知必会》、《高性能 MySQL》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值