Skip to content

基础语法

SQL 分类

SQL 语句按照功能分为以下几类:

分类说明关键字
DDL数据定义语言CREATE, ALTER, DROP, TRUNCATE
DML数据操作语言INSERT, UPDATE, DELETE, SELECT
DCL数据控制语言GRANT, REVOKE
TCL事务控制语言COMMIT, ROLLBACK, SAVEPOINT

数据库操作

创建数据库

sql
CREATE DATABASE db_name;
CREATE DATABASE db_name CHARACTER SET utf8mb4;
CREATE DATABASE IF NOT EXISTS db_name;

查看数据库

sql
SHOW DATABASES;
SHOW CREATE DATABASE db_name;

修改数据库

sql
ALTER DATABASE db_name CHARACTER SET utf8mb4;

删除数据库

sql
DROP DATABASE db_name;
DROP DATABASE IF EXISTS db_name;

表操作

创建表

sql
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    age INT DEFAULT 0,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

查看表结构

sql
DESC users;
DESCRIBE users;
SHOW COLUMNS FROM users;
SHOW CREATE TABLE users;

修改表

sql
ALTER TABLE users ADD COLUMN phone VARCHAR(20);
ALTER TABLE users MODIFY COLUMN username VARCHAR(100);
ALTER TABLE users CHANGE COLUMN username user_name VARCHAR(100);
ALTER TABLE users DROP COLUMN phone;
ALTER TABLE users RENAME TO user_info;

删除表

sql
DROP TABLE users;
DROP TABLE IF EXISTS users;
TRUNCATE TABLE users;

数据操作 (DML)

INSERT 插入数据

sql
INSERT INTO users (username, email, age) VALUES ('张三', 'zhangsan@example.com', 25);

INSERT INTO users (username, email) VALUES
    ('李四', 'lisi@example.com'),
    ('王五', 'wangwu@example.com');

UPDATE 更新数据

sql
UPDATE users SET age = 26 WHERE username = '张三';
UPDATE users SET age = age + 1, email = 'new@example.com' WHERE id = 1;

DELETE 删除数据

sql
DELETE FROM users WHERE id = 1;
DELETE FROM users WHERE age < 18;
DELETE FROM users;

SELECT 查询

基本查询

sql
SELECT * FROM users;
SELECT username, email FROM users;
SELECT DISTINCT age FROM users;

WHERE 条件

sql
SELECT * FROM users WHERE age = 25;
SELECT * FROM users WHERE age > 20 AND age < 30;
SELECT * FROM users WHERE age IN (20, 25, 30);
SELECT * FROM users WHERE username LIKE '张%';
SELECT * FROM users WHERE email IS NOT NULL;

ORDER BY 排序

sql
SELECT * FROM users ORDER BY age;
SELECT * FROM users ORDER BY age DESC;
SELECT * FROM users ORDER BY age DESC, username ASC;

LIMIT 分页

sql
SELECT * FROM users LIMIT 10;
SELECT * FROM users LIMIT 0, 10;
SELECT * FROM users LIMIT 10 OFFSET 0;

聚合函数

sql
SELECT COUNT(*) FROM users;
SELECT AVG(age) FROM users;
SELECT MAX(age), MIN(age) FROM users;
SELECT SUM(age) FROM users;

GROUP BY 分组

sql
SELECT age, COUNT(*) FROM users GROUP BY age;
SELECT age, COUNT(*) as count FROM users GROUP BY age HAVING count > 5;

运算符

比较运算符

运算符说明
=等于
!=, <>不等于
>, <大于、小于
>=, <=大于等于、小于等于
BETWEEN...AND在范围内
IN在列表中
LIKE模糊匹配
IS NULL为空

逻辑运算符

运算符说明
AND
OR
NOT

模糊匹配

通配符说明
%任意多个字符
_单个字符
sql
SELECT * FROM users WHERE username LIKE '张%';
SELECT * FROM users WHERE username LIKE '_三';

下一步学习