# MySQL基礎常用命令大全
本文全面介紹MySQL數據庫的基礎操作命令,涵蓋數據庫管理、表操作、數據增刪改查、用戶權限等核心內容,適合初學者系統學習。
## 一、數據庫基本操作
### 1. 連接MySQL服務器
```sql
mysql -h 主機名 -u 用戶名 -p
-h
:指定MySQL服務器地址(本地可省略)-u
:指定用戶名-p
:提示輸入密碼示例:
mysql -u root -p
SELECT VERSION();
-- 或
STATUS;
SHOW DATABASES;
CREATE DATABASE 數據庫名
[CHARACTER SET 字符集]
[COLLATE 排序規則];
-- 示例
CREATE DATABASE shop
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
USE 數據庫名;
DROP DATABASE [IF EXISTS] 數據庫名;
SELECT DATABASE();
CREATE TABLE [IF NOT EXISTS] 表名 (
列名1 數據類型 [約束條件] [COMMENT '注釋'],
列名2 數據類型 [約束條件],
...
[PRIMARY KEY (列名)]
) [ENGINE=存儲引擎] [CHARSET=字符集];
-- 示例
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password CHAR(32) NOT NULL,
email VARCHAR(100),
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB CHARSET=utf8mb4;
DESC 表名;
-- 或
DESCRIBE 表名;
-- 或
SHOW COLUMNS FROM 表名;
SHOW CREATE TABLE 表名;
ALTER TABLE 表名 ADD 列名 數據類型 [約束條件];
ALTER TABLE 表名 MODIFY 列名 新數據類型 [約束條件];
ALTER TABLE 表名 CHANGE 原列名 新列名 數據類型;
ALTER TABLE 表名 DROP COLUMN 列名;
RENAME TABLE 原表名 TO 新表名;
-- 或
ALTER TABLE 原表名 RENAME TO 新表名;
DROP TABLE [IF EXISTS] 表名;
TRUNCATE TABLE 表名;
-- 完整插入
INSERT INTO 表名 VALUES (值1, 值2, ...);
-- 指定列插入
INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);
-- 批量插入
INSERT INTO 表名 VALUES
(值1, 值2, ...),
(值1, 值2, ...),
...;
SELECT 列1, 列2 FROM 表名 [WHERE 條件];
SELECT * FROM users WHERE age > 18 AND status = 1;
SELECT * FROM products ORDER BY price DESC, sales ASC;
SELECT * FROM articles LIMIT 10 OFFSET 20;
-- 等價于
SELECT * FROM articles LIMIT 20, 10;
SELECT department, COUNT(*) as emp_count
FROM employees
GROUP BY department
HAVING emp_count > 5;
UPDATE 表名 SET 列1=值1, 列2=值2 [WHERE 條件];
-- 示例
UPDATE users SET password = MD5('123456') WHERE id = 100;
DELETE FROM 表名 [WHERE 條件];
-- 清空表
DELETE FROM 表名;
-- 普通索引
CREATE INDEX 索引名 ON 表名(列名);
-- 唯一索引
CREATE UNIQUE INDEX 索引名 ON 表名(列名);
-- 復合索引
CREATE INDEX 索引名 ON 表名(列1, 列2);
SHOW INDEX FROM 表名;
DROP INDEX 索引名 ON 表名;
CREATE USER '用戶名'@'主機' IDENTIFIED BY '密碼';
-- 示例
CREATE USER 'dev'@'%' IDENTIFIED BY 'Dev123!';
ALTER USER '用戶名'@'主機' IDENTIFIED BY '新密碼';
GRANT 權限 ON 數據庫.表 TO '用戶'@'主機';
-- 示例
GRANT SELECT, INSERT ON shop.* TO 'dev'@'%';
SHOW GRANTS FOR '用戶'@'主機';
REVOKE 權限 ON 數據庫.表 FROM '用戶'@'主機';
DROP USER '用戶名'@'主機';
START TRANSACTION;
-- 或
BEGIN;
COMMIT;
ROLLBACK;
SAVEPOINT 保存點名;
ROLLBACK TO SAVEPOINT 保存點名;
CREATE VIEW 視圖名 AS SELECT語句;
ALTER VIEW 視圖名 AS SELECT語句;
DROP VIEW [IF EXISTS] 視圖名;
DELIMITER //
CREATE PROCEDURE 過程名(參數列表)
BEGIN
-- SQL語句
END //
DELIMITER ;
-- 示例
DELIMITER //
CREATE PROCEDURE get_user(IN uid INT)
BEGIN
SELECT * FROM users WHERE id = uid;
END //
DELIMITER ;
CALL 過程名(參數);
DELIMITER //
CREATE FUNCTION 函數名(參數) RETURNS 返回類型
BEGIN
-- 函數體
RETURN 值;
END //
DELIMITER ;
SHOW PROCEDURE STATUS;
SHOW FUNCTION STATUS;
DELIMITER //
CREATE TRIGGER 觸發器名 觸發時機 觸發事件
ON 表名 FOR EACH ROW
BEGIN
-- 觸發器邏輯
END //
DELIMITER ;
-- 示例
DELIMITER //
CREATE TRIGGER update_time
BEFORE UPDATE ON users
FOR EACH ROW
BEGIN
SET NEW.update_time = NOW();
END //
DELIMITER ;
SHOW TRIGGERS;
DROP TRIGGER 觸發器名;
mysqldump -u 用戶名 -p 數據庫名 > 備份文件.sql
mysql -u 用戶名 -p 數據庫名 < 備份文件.sql
SHOW VARIABLES LIKE '%變量名%';
SET GLOBAL 變量名=值;
-- 或
SET SESSION 變量名=值;
SHOW STATUS;
EXPLN SELECT語句;
-- 導出
SELECT * INTO OUTFILE '/tmp/data.csv'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
FROM 表名;
-- 導入
LOAD DATA INFILE '/tmp/data.csv'
INTO TABLE 表名
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
SOURCE /path/to/file.sql;
本文詳細介紹了MySQL數據庫的基礎操作命令,包括: - 數據庫和表的創建與管理 - 數據的增刪改查操作 - 索引、視圖、存儲過程等高級功能 - 用戶權限管理與事務控制 - 數據庫備份恢復技巧
掌握這些基礎命令是進行MySQL數據庫開發和管理的前提。建議讀者結合實際操作練習,逐步深入理解MySQL的更多高級特性。
注意:實際使用時請根據MySQL版本調整語法,部分命令在不同版本中可能有差異。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。