MySQL学习笔记

MySQL学习笔记

MySQL是关系型数据库管理系统(RDBMS)。

MySQL操作

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
-- 展示所有的数据库
SHOW DATABASES;

-- 创建数据库
CREATE DATABASE db_name;

-- 使用数据库
USE db_name;

-- 创建表
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype
)

-- 查看表结构
DESCRIBE table_name;

-- 删除数据库
DROP DATABASE db_name;

-- 删除表
DROP TABLE table_name;

-- 插入数据
INSERT INTO table_name (
column1,
column2,
column3
)
VALUES (
value1,
value2,
value3
)

-- 查询数据
SELECT column1, column2
FROM table_name
WHERE condition;

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

-- 删除数据
DELETE FROM table_name
WHERE condition;

-- 联表查询
SELECT columns
FROM table1
JOIN table2
ON table1.column = table2.column;

-- 子查询
SELECT columns
FROM table_name
WHERE column_name = (SELECT column FROM another_table WHERE condition);

-- 聚合函数,COUNT(), SUM(), AVG(), MAX(), MIN()
SELECT COUNT(*) FROM table_name;

-- 创建索引
CREATE INDEX index_name ON table_name (column);
-- 删除索引
DROP INDEX index_name ON table_name;
-- 分析查询性能
EXPLAIN select * from table_name;

-- 创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';

-- 授予权限
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';

-- 查看用户权限
SHOW GRANTS FOR 'username'@'host';

-- 撤销权限
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'host';

备份与恢复

bash
1
2
3
4
5
# 备份数据库
mysqldump -u username -p database_name > backup.sql

# 恢复数据库
mysql -u username -p database_name < backup.sql

安全

SQL
1
2
-- 设置root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'new_password';

常见问题

  • 连接失败

可能是防火墙配置不正确、MySQL服务未启动、用户权限异常。

  • 性能问题

分析查询日志,优化查询,增加索引。

参考

  1. https://www.mysqlzh.com/
  2. https://www.runoob.com/mysql/mysql-tutorial.html

评论