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挑战
标签:语句,...,数据库,MySQL,tablename,使用,Linux,数据库系统 From: https://www.cnblogs.com/20211115fyq/p/17865342.html