數(shù)據(jù)庫管理不再難:MySQL 超詳細(xì)使用指南
MySQL 是世界上最流行的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,它以其高性能、可靠性和易用性而聞名。
本文將全面介紹 MySQL 的常用操作以及優(yōu)化技巧,幫助讀者快速掌握 MySQL 的核心使用方法。
一. MySQL 基礎(chǔ)操作
1. 連接 MySQL
mysql -u 用戶名 -p
輸入密碼后即可進(jìn)入 MySQL 命令行界面。
2. 數(shù)據(jù)庫操作
創(chuàng)建數(shù)據(jù)庫:
CREATE DATABASE 數(shù)據(jù)庫名;
查看數(shù)據(jù)庫列表:
SHOW DATABASES;
選擇數(shù)據(jù)庫:
USE 數(shù)據(jù)庫名;
刪除數(shù)據(jù)庫:
DROP DATABASE 數(shù)據(jù)庫名;
3. 表操作
創(chuàng)建表:
CREATE TABLE 表名 (
列名1 數(shù)據(jù)類型 [約束條件],
列名2 數(shù)據(jù)類型 [約束條件],
...
[表級約束條件]
);
示例:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
age INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
查看表結(jié)構(gòu):
DESCRIBE 表名;
修改表:
ALTER TABLE 表名 ADD 列名 數(shù)據(jù)類型;
ALTER TABLE 表名 DROP COLUMN 列名;
ALTER TABLE 表名 MODIFY COLUMN 列名 新數(shù)據(jù)類型;
刪除表:
DROP TABLE 表名;
二、數(shù)據(jù)操作
1. 插入數(shù)據(jù)
INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);
示例:
INSERT INTO users (username, email, age)
VALUES ('張三', 'zhangsan@example.com', 25);
2. 查詢數(shù)據(jù)
基本查詢:
SELECT 列名1, 列名2 FROM 表名 WHERE 條件;
條件查詢:
SELECT * FROM users WHERE age > 20;
排序:
SELECT * FROM users ORDER BY age DESC;
分頁:
SELECT * FROM users LIMIT 10 OFFSET 20;
3. 更新數(shù)據(jù)
UPDATE 表名 SET 列1=值1, 列2=值2 WHERE 條件;
示例:
UPDATE users SET age=26 WHERE username='張三';
4. 刪除數(shù)據(jù)
DELETE FROM 表名 WHERE 條件;
示例:
DELETE FROM users WHERE id=5;
三、高級查詢技巧
1. 連接查詢
內(nèi)連接:
SELECT a.*, b.*
FROM 表A a INNER JOIN 表B b
ON a.關(guān)聯(lián)字段 = b.關(guān)聯(lián)字段;
左連接:
SELECT a.*, b.*
FROM 表A a LEFT JOIN 表B b
ON a.關(guān)聯(lián)字段 = b.關(guān)聯(lián)字段;
2. 子查詢
SELECT * FROM users
WHERE age > (SELECT AVG(age) FROM users);
3. 聚合函數(shù)
SELECT COUNT(*) FROM users;
SELECT AVG(age) FROM users;
SELECT MAX(age) FROM users;
SELECT MIN(age) FROM users;
SELECT SUM(age) FROM users;
4. 分組查詢
SELECT age, COUNT(*)
FROM users
GROUP BY age
HAVING COUNT(*) > 5;
四、索引操作
創(chuàng)建索引:
CREATE INDEX 索引名 ON 表名(列名);
查看索引:
SHOW INDEX FROM 表名;
刪除索引:
DROP INDEX 索引名 ON 表名;
五、用戶權(quán)限管理
1. 用戶管理
創(chuàng)建用戶:
CREATE USER '用戶名'@'主機(jī)' IDENTIFIED BY '密碼';
刪除用戶:
DROP USER '用戶名'@'主機(jī)';
2. 權(quán)限管理
授予權(quán)限:
GRANT 權(quán)限 ON 數(shù)據(jù)庫.表 TO '用戶名'@'主機(jī)';
撤銷權(quán)限:
REVOKE 權(quán)限 ON 數(shù)據(jù)庫.表 FROM '用戶名'@'主機(jī)';
刷新權(quán)限:
FLUSH PRIVILEGES;
六、備份與恢復(fù)
備份數(shù)據(jù)庫:
mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 > 備份文件.sql
恢復(fù)數(shù)據(jù)庫:
mysql -u 用戶名 -p 數(shù)據(jù)庫名 < 備份文件.sql