MySQL 是一种广泛使用的关系型数据库管理系统 (RDBMS),适用于各种应用程序的数据库操作。
1. MySQL 基本概念
-
数据库 (Database) :存储数据的容器,数据库中包含多个表。
-
表 (Table) :数据库中用于存储数据的结构,每个表由行和列组成。
-
行 (Row) :表中的一条记录,每行包含多个字段值。
-
列 (Column) :表中的一个字段,通常用于存储特定类型的数据(如姓名、年龄等)。
2. MySQL 常用命令
1. 数据库操作
创建数据库:
CREATE DATABASE dbname;
删除数据库:
DROP DATABASE dbname;
查看所有数据库:
SHOW DATABASES;
选择数据库:
USE dbname;
查看当前数据库:
SELECT DATABASE();
2. 表操作
创建表:
CREATE TABLE tablename (
column1 datatype,
column2 datatype,
...
);
例子:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
age INT
);
表字段类型请看:juejin.cn/post/745403…
删除表:
DROP TABLE tablename;
查看所有表:
SHOW TABLES;
查看表结构:
DESCRIBE tablename;
修改表结构:
- 添加列:
ALTER TABLE tablename ADD columnname datatype;
- 删除列:
ALTER TABLE tablename DROP COLUMN columnname;
- 修改列:
ALTER TABLE tablename MODIFY COLUMN columnname new_datatype;
3. 数据操作
插入数据:
INSERT INTO tablename (column1, column1, ...) VALUES (value1, value2, ...);
查询数据:
SELECT column1, column2, ... FROM tablename;
- 查询所有列:
SELECT * FROM users;
- 查询特定列:
SELECT name, age FROM users;
更新数据:
UPDATE tablename SET column1 = value1, column2 = value2 WHERE condition;
删除数据:
DELETE FROM tablename WHERE condition;
4. 查询条件和排序
条件查询:
- 使用
WHERE
:
SELECT * FROM users WHERE age > 20;
- 多条件查询:
SELECT * FROM users WHERE age > 20 AND name = 'kim';
IN
查询:
SELECT * FROM users WHERE name IN ('alice', 'kim');
LIKE
查询(模糊查询):
SELECT * FROM users WHERE name LIKE 'k%';
BETWEEN
查询:
SELECT * FROM users WHERE age BETWEEN 18 AND 22;
排序:
- 默认升序排序:
SELECT * FROM users ORDER BY age;
- 降序排序:
SELECT * FROM users ORDER BY age DESC;
5. 聚合函数
计数:
SELECT COUNT(*) FROM users;
求和:
SELECT SUM(age) FROM users;
平均值:
SELECT AVG(age) FROM users;
最大值:
SELECT MAX(age) FROM users;
最小值:
SELECT MIN(age) FROM users;
分组查询:
SELECT age, COUNT(*) FROM users GROUP BY age;
6. 连接查询
内连接(INNER JOIN
):
SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;
左连接(LEFT JOIN
):
SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column;
右连接(RIGHT JOIN
):
SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;
7. 索引和性能优化
创建索引:
CREATE INDEX index_name ON tablename (columnname);
删除索引:
DROP INDEX index_name ON tablename;
查看表的索引:
SHOW INDEX FROM tablename;
8. 用户管理
创建用户:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
赋予权限:
GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'host';
查看权限:
SHOW GRANTS FOR 'username'@'host';
删除用户:
DROP USER 'username'@'host';
刷新权限:
FLUSH PRIVILEGES;
3. 常见操作和优化技巧
备份和恢复
1. 备份数据库:
mysqldump -u root -p dbname > backup.sql
2. 恢复数据库:
mysql -u root -p dbname < backup.sql
查看当前连接和状态
1. 查看当前连接:
SHOW PROCESSLIST;
2. 查看数据库状态:
SHOW STATUS;
MySQL 配置文件
MySQL 配置文件位置: MySQL 的配置文件一般位于 /etc/my.cnf
或 /etc/mysql/my.cnf
,可以编辑该文件来调整 MySQL 配置(如内存、连接数等)