工作中,只要是后端开发,就离不开与数据库打交道,下面介绍一些MySQL数据库中常用的基本命令。
1. 连接到MySQL数据库
mysql -u username -p
2. 创建数据库
CREATE DATABASE dbname;
3. 选择要使用的数据库
USE dbname;
4. 创建表
CREATE TABLE tablename (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
5. 插入数据
INSERT INTO tablename (id, name, age) VALUES (1, 'name', 25);
6. 查询数据
SELECT * FROM tablename;
7. 更新数据
UPDATE tablename SET age = 26 WHERE name = 'name';
8. 删除数据
DELETE FROM tablename WHERE id = 1;
9. 复杂查询
- 使用
WHERE
子句进行条件查询
SELECT * FROM tablename WHERE age > 30;
- 使用
JOIN
进行表连接查询
SELECT t1.name, t2.address
FROM table1 t1
JOIN table2 t2 ON t1.id = t2.id;
10. 索引的创建和使用:
- 创建索引
CREATE INDEX idx_name ON tablename (name);
- 使用索引加速查询
SELECT * FROM tablename WHERE name = 'name';
11. 事务处理
- 开启事务
START TRANSACTION;
- 提交事务
COMMIT;
- 回滚事务
ROLLBACK;
12. 存储过程和触发器
- 创建存储过程
DELIMITER //
CREATE PROCEDURE sp_get_user(IN user_id INT)
BEGIN
SELECT * FROM users WHERE id = user_id;
END //
DELIMITER ;
- 创建触发器
CREATE TRIGGER before_insert_trigger
BEFORE INSERT ON tablename
FOR EACH ROW
BEGIN
SET NEW.created_at = NOW();
END;
13. 创建视图(View)
CREATE VIEW view_name AS
SELECT id, name FROM tablename WHERE age > 30;
14. 数据库优化
- 使用
EXPLAIN
分析查询计划,优化查询性能
EXPLAIN SELECT * FROM tablename WHERE age > 30;
- 使用索引覆盖来避免回表查询
SELECT id FROM tablename WHERE age > 30;
15. 创建函数(Function)
CREATE FUNCTION add_numbers(a INT, b INT) RETURNS INT
BEGIN
DECLARE sum INT;
SET sum = a + b;
RETURN sum;
END;
16. 用户权限控制(User Privileges):
授予用户对数据库的访问权限
GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost' IDENTIFIED BY 'password';
17. 分区表
- 创建分区表以提高查询效率和管理数据
CREATE TABLE tablename (
id INT,
name VARCHAR(50),
age INT
) PARTITION BY RANGE (age) (
PARTITION p0 VALUES LESS THAN (30),
PARTITION p1 VALUES LESS THAN (40),
PARTITION p2 VALUES LESS THAN MAXVALUE
);
18. 复制和高可用性
- 配置主从复制以实现数据备份和读写分离
CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='replication_user', MASTER_PASSWORD='password';
START SLAVE;
- 配置主从集群以提高高可用性
CREATE DATABASE dbname;
CHANGE MASTER TO MASTER_HOST='master_host', MASTER_USER='replication_user', MASTER_PASSWORD='password';
START SLAVE;
```
后续继续更新,小伙伴们可以收藏起来哦!!!