MySQL 常用语句可分为数据库操作、表操作、数据查询、数据增删改等几大类,以下是最常用的语句整理:
一、数据库操作
创建数据库
sql
CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
(指定字符集为 utf8mb4 以支持表情符号)
查看所有数据库
sql
SHOW DATABASES;
使用数据库
sql
USE 数据库名;
删除数据库
sql
DROP DATABASE 数据库名;
二、表操作
创建表
sql
CREATE TABLE 表名 (
id INT PRIMARY KEY AUTO_INCREMENT, -- 自增主键
name VARCHAR(50) NOT NULL, -- 非空字符串
age INT DEFAULT 0, -- 带默认值的整数
create_time DATETIME DEFAULT CURRENT_TIMESTAMP -- 自动记录创建时间
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
查看表结构
sql
DESCRIBE 表名; -- 简写:DESC 表名
查看所有表
sql
SHOW TABLES;
修改表(添加字段)
sql
ALTER TABLE 表名 ADD COLUMN 字段名 类型 [约束];
删除表
sql
DROP TABLE 表名;
三、数据查询(SELECT)
基础查询
sql
SELECT 字段1, 字段2 FROM 表名; -- 查询指定字段
SELECT * FROM 表名; -- 查询所有字段(不推荐生产环境)
条件查询(WHERE)
sql
SELECT * FROM users WHERE age > 18 AND gender = '男';
排序(ORDER BY)
sql
SELECT * FROM products ORDER BY price DESC, sales ASC; -- 降序+升序
限制结果(LIMIT)
sql
SELECT * FROM articles LIMIT 10; -- 取前10条
SELECT * FROM articles LIMIT 5, 10; -- 从第5条开始取10条(分页常用)
分组(GROUP BY)+ 聚合函数
sql
SELECT category, COUNT(*) AS total FROM products
GROUP BY category
HAVING total > 10; -- 对分组结果过滤(区别于 WHERE)
联表查询(JOIN)
sql
-- 内连接
SELECT u.name, o.order_no
FROM users u
INNER JOIN orders o ON u.id = o.user_id;
-- 左连接
SELECT u.name, o.order_no
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;
四、数据插入(INSERT)
插入单条数据
sql
INSERT INTO users (name, age, email)
VALUES ('张三', 25, 'zhangsan@example.com');
插入多条数据
sql
INSERT INTO products (name, price)
VALUES
('手机', 3999),
('电脑', 5999),
('平板', 2999);
五、数据更新(UPDATE)
基础更新
sql
UPDATE users SET age = 26 WHERE id = 1;
批量更新
sql
UPDATE products
SET stock = stock - 1, sales = sales + 1
WHERE category = '电子产品';
注意:务必加 WHERE 条件,否则会更新全表!
六、数据删除(DELETE)
删除指定数据
sql
DELETE FROM orders WHERE status = '已取消' AND create_time < '2023-01-01';
清空表(保留表结构)
sql
TRUNCATE TABLE 表名; -- 比 DELETE 快,无法回滚
注意:DELETE 不加 WHERE 会删除全表数据,谨慎操作!
七、常用进阶操作
去重查询(DISTINCT)
sql
SELECT DISTINCT category FROM products;
模糊查询(LIKE)
sql
SELECT * FROM users WHERE name LIKE '张%'; -- 姓张的所有用户
区间查询(BETWEEN)
sql
SELECT * FROM orders WHERE amount BETWEEN 100 AND 1000;
子查询
sql
SELECT * FROM products
WHERE category_id IN (SELECT id FROM categories WHERE parent_id = 1);
创建索引
sql
CREATE INDEX idx_user_email ON users(email); -- 普通索引
CREATE UNIQUE INDEX idx_product_code ON products(code); -- 唯一索引
这些语句覆盖了 MySQL 日常使用的 90% 以上场景,实际开发中可根据需求组合使用。操作前建议备份数据,尤其是 DELETE 和 UPDATE 操作。
以上就是关于mysql常用语句的介绍。还有一款非常便捷的MYSQL导出、导入备份工具也运用的很不错,“80KM-mysql备份工具”。 可定时备份、异地备份,MYSQL导出导入。可本地连接LINUX里的MYSQL,简单便捷。