# MySQL基礎知識點整理
## 一、MySQL簡介
### 1.1 什么是MySQL
MySQL是一個開源的關系型數據庫管理系統(RDBMS),由瑞典MySQL AB公司開發,現屬于Oracle旗下產品。它使用最常用的結構化查詢語言SQL進行數據庫操作。
主要特點:
- 開源免費(社區版)
- 性能高、可靠性好
- 支持跨平臺(Windows/Linux/macOS等)
- 支持多種編程語言接口
- 支持多用戶、多線程
### 1.2 MySQL版本
- 社區版(MySQL Community Server):免費開源
- 企業版(MySQL Enterprise Edition):收費,提供技術支持
- 集群版(MySQL Cluster)
當前主流版本:MySQL 5.7、MySQL 8.0(推薦使用8.0+版本)
## 二、MySQL安裝與配置
### 2.1 Windows安裝
1. 下載MySQL安裝包(.msi)
2. 運行安裝向導
3. 配置root密碼
4. 選擇服務啟動類型
5. 完成安裝
### 2.2 Linux安裝(以Ubuntu為例)
```bash
# 更新軟件包列表
sudo apt update
# 安裝MySQL服務器
sudo apt install mysql-server
# 安全配置
sudo mysql_secure_installation
# 啟動服務
sudo systemctl start mysql
配置文件位置: - Windows: my.ini - Linux: /etc/mysql/my.cnf
常用配置項:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
port=3306
character-set-server=utf8mb4
default-storage-engine=INNODB
mysql -u 用戶名 -p
-- 創建用戶
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
-- 授權
GRANT ALL PRIVILEGES ON database.* TO 'username'@'host';
-- 刷新權限
FLUSH PRIVILEGES;
-- 查看用戶權限
SHOW GRANTS FOR 'username'@'host';
-- 撤銷權限
REVOKE ALL PRIVILEGES ON database.* FROM 'username'@'host';
-- 刪除用戶
DROP USER 'username'@'host';
-- 查看所有數據庫
SHOW DATABASES;
-- 創建數據庫
CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 選擇數據庫
USE dbname;
-- 刪除數據庫
DROP DATABASE dbname;
常見數據類型: - 整數:TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT - 浮點數:FLOAT, DOUBLE, DECIMAL - 字符串:CHAR, VARCHAR, TEXT, BLOB - 日期時間:DATE, TIME, DATETIME, TIMESTAMP - 其他:ENUM, SET, JSON
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
status TINYINT DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 添加列
ALTER TABLE users ADD COLUMN phone VARCHAR(20) AFTER email;
-- 修改列
ALTER TABLE users MODIFY COLUMN phone VARCHAR(15);
-- 刪除列
ALTER TABLE users DROP COLUMN phone;
-- 重命名表
RENAME TABLE users TO customers;
-- 單條插入
INSERT INTO users (username, password, email)
VALUES ('admin', '123456', 'admin@example.com');
-- 批量插入
INSERT INTO users (username, password, email) VALUES
('user1', '111111', 'user1@example.com'),
('user2', '222222', 'user2@example.com');
-- 基本查詢
SELECT * FROM users;
-- 條件查詢
SELECT username, email FROM users WHERE status = 1;
-- 排序
SELECT * FROM users ORDER BY created_at DESC;
-- 分頁
SELECT * FROM users LIMIT 10 OFFSET 20; -- 第3頁,每頁10條
-- 分組
SELECT status, COUNT(*) FROM users GROUP BY status;
-- 連接查詢
SELECT u.username, o.order_id
FROM users u
JOIN orders o ON u.id = o.user_id;
UPDATE users SET password = 'newpassword', status = 0 WHERE id = 1;
DELETE FROM users WHERE id = 1;
-- 清空表(不可恢復)
TRUNCATE TABLE users;
-- 創建普通索引
CREATE INDEX idx_username ON users(username);
-- 創建唯一索引
CREATE UNIQUE INDEX idx_email ON users(email);
-- 創建組合索引
CREATE INDEX idx_name_status ON users(username, status);
SHOW INDEX FROM users;
DROP INDEX idx_username ON users;
START TRANSACTION;
-- 執行SQL語句
COMMIT; -- 或 ROLLBACK;
設置隔離級別:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
mysqldump -u root -p dbname > backup.sql
SELECT * INTO OUTFILE '/tmp/users.csv'
FIELDS TERMINATED BY ','
FROM users;
mysql -u root -p dbname < backup.sql
# 緩沖區設置
innodb_buffer_pool_size = 4G
key_buffer_size = 256M
# 連接數設置
max_connections = 200
thread_cache_size = 10
# 日志設置
slow_query_log = 1
long_query_time = 2
建議使用utf8mb4字符集,支持完整的Unicode(包括emoji)
SET GLOBAL time_zone = '+8:00';
本文整理了MySQL的基礎知識點,適合初學者快速了解MySQL的核心概念和基本操作。實際應用中,還需要結合具體業務場景深入學習高級特性和優化技巧。 “`
注:本文約2500字,采用Markdown格式編寫,包含代碼塊、列表、標題等格式。內容涵蓋MySQL安裝、配置、基本操作、CRUD、索引、事務、存儲引擎等核心知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。