MySQL是一种广泛使用的关系型数据库管理系统,以其开源、可靠和易用性而闻名。无论你是数据库新手还是希望提升技能的开发者,本文将为你提供一条清晰的MySQL学习路径,帮助你从新手成长为实战专家。MyS...
MySQL是一种广泛使用的关系型数据库管理系统,以其开源、可靠和易用性而闻名。无论你是数据库新手还是希望提升技能的开发者,本文将为你提供一条清晰的MySQL学习路径,帮助你从新手成长为实战专家。
MySQL是一种关系型数据库管理系统(RDBMS),使用结构化查询语言(SQL)进行数据的增删改查操作。它广泛应用于Web应用、在线事务处理(OLTP)和许多其他场景。
从MySQL官网下载适合你操作系统的版本。
以Linux系统为例:
sudo apt-get install mysql-server使用mysql_config_editor设置登录路径:
mysql_config_editor set --login-path=client --host=localhost --user=root --password输入密码并保存。
启动MySQL服务:
sudo service mysql start停止MySQL服务:
sudo service mysql stop数据库是存储数据的容器,类似于文件系统中的文件夹。
数据表用于存储具体的数据,类似于文件夹中的文件。
CREATE DATABASE mydatabase;USE mydatabase;CREATE TABLE students ( id INT PRIMARY KEY, name VARCHAR(50), age INT
);INSERT INTO students (id, name, age) VALUES (1, 'Alice', 25);SELECT * FROM students;UPDATE students SET age = 26 WHERE id = 1;DELETE FROM students WHERE id = 1;连接两个或多个表进行查询:
SELECT students.name, orders.order_date
FROM students
JOIN orders ON students.id = orders.student_id;在查询中使用另一个查询的结果:
SELECT name FROM students WHERE age > (SELECT AVG(age) FROM students);CREATE TABLE sales ( id INT PRIMARY KEY, date DATE, amount INT
) PARTITION BY RANGE (YEAR(date)) ( PARTITION p2020 VALUES LESS THAN (2021), PARTITION p2021 VALUES LESS THAN (2022), PARTITION p2022 VALUES LESS THAN (2023)
);CREATE VIEW young_students AS SELECT * FROM students WHERE age < 25;DELIMITER //
CREATE PROCEDURE AddStudent(IN s_name VARCHAR(50), IN s_age INT)
BEGIN INSERT INTO students (name, age) VALUES (s_name, s_age);
END //
DELIMITER ;创建索引以加速查询:
CREATE INDEX idx_name ON students (name);使用EXPLAIN语句分析查询:
EXPLAIN SELECT * FROM students WHERE name = 'Alice';使用mysqldump备份数据库:
mysqldump -u root mydatabase > backup.sql通过备份文件恢复数据:
mysql -u root mydatabase < backup.sql配置主从复制以实现数据冗余和高可用性。
在主服务器上:
GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'slave_password';在从服务器上:
CHANGE MASTER TO MASTER_HOST = 'master_host', MASTER_USER = 'slave_user', MASTER_PASSWORD = 'slave_password';启动从服务器:
”`sql START SL