第十三周Linux教材第十四章学习笔记——MySQL数据库系统

发布时间 2023-11-29 22:02:26作者: 20211115fyq

MySQL数据库系统

MySQL 是一个广泛使用的关系型数据库管理系统(RDBMS),它是开源的,支持多用户和多线程。

14.1 基础知识

1. 数据库基础概念

数据库(Database):** 数据库是一个包含相关数据的集合,并提供了对这些数据的有效管理和访问。

表(Table):** 表是数据库中的基本数据结构,用于存储相关数据。表由行和列组成。

列(Column):** 表中的每个字段都被称为列,每个列存储特定类型的数据。

行(Row):** 表中的每个记录都被称为行,每行包含了一组相关的数据。

主键(Primary Key):** 主键是一列或一组列,其值能唯一标识表中的每一行。主键用于确保数据的唯一性。

外键(Foreign Key):** 外键是一个或多个表中的列,用于建立表与表之间的关系。

 2. MySQL 数据类型

MySQL 支持多种数据类型,包括但不限于:

整数类型(INT, BIGINT, SMALLINT)
浮点类型(FLOAT, DOUBLE)
定点数类型(DECIMAL, NUMERIC)
字符串类型(CHAR, VARCHAR, TEXT)
日期和时间类型(DATE, TIME, DATETIME)
布尔类型(BOOLEAN, BOOL)

3. 数据库管理

创建数据库:使用 `CREATE DATABASE` 语句创建新数据库。

CREATE DATABASE dbname;
... ...

创建表:使用 `CREATE TABLE` 语句定义新表的结构。

CREATE TABLE tablename (
column1 datatype,
column2 datatype,
...
);
... ...

插入数据:使用 `INSERT INTO` 语句向表中插入数据。

INSERT INTO tablename (column1, column2, ...) VALUES (value1, value2, ...);
... ...

查询数据:使用 `SELECT` 语句从表中检索数据。

SELECT column1, column2, ... FROM tablename WHERE condition;
... ...

更新数据:使用 `UPDATE` 语句修改表中的数据。

UPDATE tablename SET column1 = value1 WHERE condition;
... ...

删除数据:使用 `DELETE FROM` 语句从表中删除数据。

DELETE FROM tablename WHERE condition;
... ...

 4. 索引和优化

索引(Index):索引是一种数据结构,用于加速对表中数据的检索操作。常见类型包括主键索引、唯一索引和全文索引。

优化查询:通过正确使用索引、合理设计表结构和使用适当的查询语句,可以提高查询性能。

5. 事务管理

事务(Transaction):事务是一系列数据库操作,要么全部执行成功,要么全部执行失败。

ACID 属性:事务应该具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

事务控制语句:使用 `BEGIN TRANSACTION`、`COMMIT` 和 `ROLLBACK` 等语句控制事务。

6. 用户权限管理

创建用户:使用 `CREATE USER` 语句创建新用户。

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
... ...

授予权限:使用 `GRANT` 语句授予用户对数据库、表或其他对象的特定权限。

GRANT SELECT, INSERT ON dbname.tablename TO 'username'@'localhost';
... ...

撤销权限:使用 `REVOKE` 语句撤销用户的权限。

REVOKE SELECT, INSERT ON dbname.tablename FROM 'username'@'localhost';
... ...

7. 备份和恢复

备份数据库:使用 `mysqldump` 工具或其他备份工具对数据库进行备份。

mysqldump -u username -p dbname > backup.sql
... ...

恢复数据库:使用 `mysql` 命令或其他恢复工具将备份文件导入到数据库。

mysql -u username -p dbname < backup.sql
... ...

8. 存储过程和触发器

存储过程(Stored Procedure):存储过程是一组预编译的 SQL 语句,可以在数据库中存储和重复使用。

触发器(Trigger):触发器是与表相关联的一组操作,它在表上的特定事件(如插入、更新或删除)发生时自动触发。

14.2 安装MySQL

 配置

14.3 使用MySQL

 检查mysql服务器状态:

 登录时出现错误:

 命令前加sudo才正常:

 显示数据库

(注意show databases后加“;”否则无输出)

 新建数据库testdb

 删除数据库

一旦数据库被删除,就无法撤回或恢复,所以删除命令要谨慎使用。删除数据库使用drop database testdb;这里我们删除了刚刚创建的数据库testdb。

 选择数据库

 创建表

 删除表

 插入行

 可编辑sql脚本文件实现多行插入:

1 /*******insert.sql*******/
2 insert into students values (20211116,'Vickey','101');
3 insert into students values (NULL,'Lily','99');
4 insert into students values (20241131,'Ari','80');
5 insert into students values (NULL,'Honey','120');

 删除行

 更新表

 一对一

首先,创建一个email表:

接下来,将学生邮箱地址插入表中:

 以student_id关联两个表:

 一对多

首先创建一个book_order表:

 向其中添加一个外键:

 然后用学生的图书订单填充表:

 连接操作

 ChatGpt挑战