SQL

SQL常用语句大全

SQL 常用语句大全(通用版,适用于 MySQL、PostgreSQL、SQL Server、Oracle 等)

SQL(Structured Query Language)分为几大类:DDL(数据定义)、DML(数据操作)、DQL(数据查询)、DCL(数据控制)、事务控制。下面按功能分类汇总最常用语句,并附带示例(假设有表 usersorders)。

1. 数据库操作(DDL)

语句用法示例
CREATE DATABASE创建数据库CREATE DATABASE mydb CHARACTER SET utf8mb4;
DROP DATABASE删除数据库DROP DATABASE mydb;
USE切换数据库USE mydb;
SHOW DATABASES查看所有数据库SHOW DATABASES;

2. 表操作(DDL)

语句用法示例
CREATE TABLE创建表“`CREATE
DROP TABLE删除表DROP TABLE users;
TRUNCATE TABLE清空表数据(保留结构)TRUNCATE TABLE users;
ALTER TABLE … ADD添加列ALTER TABLE users ADD COLUMN email VARCHAR(100);
ALTER TABLE … MODIFY修改列类型ALTER TABLE users MODIFY age SMALLINT;
ALTER TABLE … DROP删除列ALTER TABLE users DROP COLUMN email;
ALTER TABLE … RENAME重命名表ALTER TABLE users RENAME TO customers;
SHOW TABLES查看所有表SHOW TABLES;
DESC/DESCRIBE查看表结构DESC users;

3. 数据插入、更新、删除(DML)

语句用法示例
INSERT INTO插入单行INSERT INTO users (name, age) VALUES ('张三', 25);
INSERT INTO 多行插入多行INSERT INTO users (name, age) VALUES ('李四', 30), ('王五', 22);
UPDATE更新数据UPDATE users SET age = age + 1 WHERE id = 1;
DELETE删除数据DELETE FROM users WHERE id = 1;
DELETE 清空表清空表(可回滚)DELETE FROM users;

4. 数据查询(DQL,最常用)

基本查询

SELECT * FROM users;
SELECT name, age FROM users WHERE age > 20 ORDER BY age DESC LIMIT 10;

常用关键字

关键字用法示例
WHERE条件过滤WHERE age BETWEEN 20 AND 30 AND name LIKE '张%'
ORDER BY排序ORDER BY age DESC, id ASC
LIMIT/OFFSET分页(MySQL)LIMIT 10 OFFSET 20(第3页,每页10条)
DISTINCT去重SELECT DISTINCT age FROM users;
GROUP BY分组统计SELECT age, COUNT(*) FROM users GROUP BY age HAVING COUNT(*) > 1;
HAVING分组后过滤(配合 GROUP BY)同上

聚合函数

函数含义
COUNT(*)行数
COUNT(column)非NULL值数量
SUM(column)求和
AVG(column)平均值
MAX/MIN(column)最大/最小值

多表查询

-- 内连接
SELECT u.name, o.amount FROM users u INNER JOIN orders o ON u.id = o.user_id;

-- 左连接
SELECT u.name, o.amount FROM users u LEFT JOIN orders o ON u.id = o.user_id;

-- 右连接、全连接类似

子查询

SELECT name FROM users WHERE id IN (SELECT user_id FROM orders WHERE amount > 1000);

联合查询

SELECT name FROM users WHERE age > 30
UNION ALL  -- UNION 去重,UNION ALL 不去重
SELECT name FROM customers WHERE age > 30;

5. 索引操作

语句用法示例
CREATE INDEX创建普通索引CREATE INDEX idx_name ON users(name);
CREATE UNIQUE INDEX创建唯一索引CREATE UNIQUE INDEX idx_email ON users(email);
DROP INDEX删除索引DROP INDEX idx_name ON users;

6. 事务控制

START TRANSACTION;  -- 或 BEGIN
INSERT INTO users ...;
UPDATE orders ...;
COMMIT;             -- 提交
-- ROLLBACK;         -- 回滚(出错时)

7. 数据控制语言(DCL,权限管理)

语句用法示例
GRANT授予权限GRANT SELECT, INSERT ON mydb.* TO 'user'@'localhost';
REVOKE撤销权限REVOKE INSERT ON mydb.* FROM 'user'@'localhost';
CREATE USER创建用户CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';

8. 常用实用语句汇总(一图记住)

-- 查看当前数据库版本
SELECT VERSION();

-- 查看当前使用的数据库
SELECT DATABASE();

-- 查看表占用空间大小(MySQL)
SELECT table_name, 
       table_rows, 
       data_length/1024/1024 AS data_MB, 
       index_length/1024/1024 AS index_MB 
FROM information_schema.tables 
WHERE table_schema = 'mydb';

-- 批量更新(CASE WHEN)
UPDATE users SET level = CASE 
    WHEN age < 18 THEN 'minor'
    WHEN age < 60 THEN 'adult'
    ELSE 'senior'
END;

学习建议

  • 新手顺序:先掌握 SELECT → INSERT/UPDATE/DELETE → 多表 JOIN → GROUP BY → 子查询。
  • 实践:用 SQLite(免安装)或在线工具(如 db-fiddle.com)多练习。
  • 不同数据库差异:分页(MySQL 用 LIMIT,SQL Server 用 OFFSET FETCH,Oracle 用 ROWNUM),函数名略有不同,但核心语法通用。

掌握以上语句,就能应对 95% 的日常 SQL 开发需求!如果需要特定数据库(如 PostgreSQL 的高级特性)或复杂查询示例,欢迎继续提问。

分类: SQL
文章已创建 3707

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部