50条常用的MySQL命令汇总
50条常用的MySQL命令汇总
一、数据库操作
创建数据库
CREATE DATABASE database_name;
创建数据库并指定字符集
CREATE DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
查看所有数据库
SHOW DATABASES;
选择/使用数据库
USE database_name;
查看当前使用的数据库
SELECT DATABASE();
删除数据库
DROP DATABASE database_name;
删除数据库(如果存在)
DROP DATABASE IF EXISTS database_name;
修改数据库字符集
ALTER DATABASE database_name CHARACTER SET utf8mb4;
查看数据库创建语句
SHOW CREATE DATABASE database_name;
二、表操作
创建表
CREATE TABLE table_name (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
查看所有表
SHOW TABLES;
查看表结构
DESCRIBE table_name;
-- 或
DESC table_name;
-- 或
SHOW COLUMNS FROM table_name;
查看表的创建语句
SHOW CREATE TABLE table_name;
重命名表
RENAME TABLE old_table_name TO new_table_name;
添加列
ALTER TABLE table_name ADD COLUMN column_name VARCHAR(100);
删除列
ALTER TABLE table_name DROP COLUMN column_name;
修改列定义
ALTER TABLE table_name MODIFY COLUMN column_name INT NOT NULL;
修改列名
ALTER TABLE table_name CHANGE old_column_name new_column_name VARCHAR(100);
添加主键
ALTER TABLE table_name ADD PRIMARY KEY (id);
删除主键
ALTER TABLE table_name DROP PRIMARY KEY;
添加唯一索引
ALTER TABLE table_name ADD UNIQUE (column_name);
添加普通索引
ALTER TABLE table_name ADD INDEX idx_name (column_name);
添加复合索引
ALTER TABLE table_name ADD INDEX idx_composite (col1, col2);
删除索引
DROP INDEX index_name ON table_name;
删除表
DROP TABLE table_name;
清空表(删除所有数据)
TRUNCATE TABLE table_name;
查看表索引
SHOW INDEX FROM table_name;
三、数据操作
插入单条数据
INSERT INTO table_name (col1, col2) VALUES ('value1', 'value2');
插入多条数据
INSERT INTO table_name (col1, col2) VALUES
('v1', 'v2'),
('v3', 'v4');
插入数据(忽略重复)
INSERT IGNORE INTO table_name (col1, col2) VALUES ('value1', 'value2');
插入或更新(存在则更新)
INSERT INTO table_name (id, name) VALUES (1, 'Alice') ON DUPLICATE KEY UPDATE name='Alice';
更新数据
UPDATE table_name SET column_name = 'new_value' WHERE id = 1;
更新多列
UPDATE table_name SET col1 = 'v1', col2 = 'v2' WHERE condition;
删除数据
DELETE FROM table_name WHERE id = 1;
删除所有数据(不重置自增)
DELETE FROM table_name;
查询所有数据
SELECT * FROM table_name;
查询指定列
SELECT col1, col2 FROM table_name;
带条件查询
SELECT * FROM table_name WHERE age > 18;
模糊查询
SELECT * FROM table_name WHERE name LIKE '%张%';
范围查询
SELECT * FROM table_name WHERE age BETWEEN 18 AND 30;
IN 查询
SELECT * FROM table_name WHERE id IN (1, 2, 3);
排序查询
SELECT * FROM table_name ORDER BY age DESC;
分页查询
SELECT * FROM table_name LIMIT 10 OFFSET 0;
-- 或
SELECT * FROM table_name LIMIT 0, 10;
去重查询
SELECT DISTINCT column_name FROM table_name;
聚合函数查询
SELECT COUNT(*), AVG(age), MAX(age), MIN(age), SUM(age) FROM table_name;
分组查询
SELECT department, COUNT(*) FROM employees GROUP BY department;
分组后筛选(HAVING)
SELECT department, COUNT(*) FROM employees GROUP BY department HAVING COUNT(*) > 5;
多表连接查询(INNER JOIN)
SELECT u.name, o.order_id FROM users u INNER JOIN orders o ON u.id = o.user_id;
左连接查询(LEFT JOIN)
SELECT u.name, o.order_id FROM users u LEFT JOIN orders o ON u.id = o.user_id;
子查询
SELECT * FROM users WHERE id IN (SELECT user_id FROM orders WHERE amount > 100);
————————————————
版权声明:本文为CSDN博主「Mr_戴先森」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44024436/article/details/151404054