您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。