1.DDL语句
DDL用于定义和修改数据库结构,包括创建、修改和删除表、索引等。
1
2
|
CREATE DATABASE my_database;
CREATE TABLE my_table (id INT PRIMARY KEY, name VARCHAR(255));
|
1
|
ALTER TABLE my_table ADD COLUMN age INT;
|
1
2
|
DROP DATABASE my_database;
DROP TABLE my_table;
|
- TRUNCATE: 清空表中的所有数据,但保留表结构。
1
|
TRUNCATE TABLE my_table;
|
- DML (Data Manipulation Language)
DML用于插入、更新和删除表中的数据。
1
|
INSERT INTO my_table (id, name) VALUES (1, 'John Doe');
|
1
|
UPDATE my_table SET name = 'Jane Doe' WHERE id = 1;
|
1
|
DELETE FROM my_table WHERE id = 1;
|
- DCL (Data Control Language)
DCL用于控制对数据库的访问权限。
1
|
GRANT ALL PRIVILEGES ON my_database.* TO 'user'@'host';
|
1
|
REVOKE ALL PRIVILEGES ON my_database.* FROM 'user'@'host';
|
- TCL (Transaction Control Language)
TCL用于管理事务,确保数据的一致性和完整性。
1
|
SAVEPOINT savepoint_name;
|
- RELEASE SAVEPOINT: 释放保存点。
1
|
RELEASE SAVEPOINT savepoint_name;
|
- DQL (Data Query Language)
DQL用于查询数据库中的数据。
1
2
|
SELECT * FROM my_table;
SELECT name FROM my_table WHERE id = 1;
|
1
|
SELECT a.id, b.name FROM table_a a JOIN table_b b ON a.id = b.id;
|
6.Other Common SQL Clauses and Functions
其他常见的SQL子句和函数:
1
|
SELECT * FROM my_table WHERE id > 10;
|
1
|
SELECT * FROM my_table ORDER BY name ASC;
|
1
|
SELECT name, COUNT(*) as count FROM my_table GROUP BY name;
|
1
|
SELECT name, COUNT(*) as count FROM my_table GROUP BY name HAVING count > 1;
|
1
|
SELECT * FROM my_table LIMIT 10;
|
1
|
SELECT id FROM table1 UNION SELECT id FROM table2;
|
7.注意事项
在编写MySQL查询时,SQL语句的子句和函数的顺序通常遵循一定的规则。
- SELECT: 指定要选择的列。
- FROM: 指定数据来源的表。
- JOIN: 如果有多个表进行连接,使用 JOIN 子句。
- WHERE: 过滤记录的条件。
- GROUP BY: 对结果集进行分组。
- HAVING: 对分组后的结果进行过滤。
- ORDER BY: 对结果集进行排序。
- LIMIT: 限制返回的记录数。
- OFFSET: 跳过指定数量的记录(通常与 LIMIT 一起使用)。
1
2
3
4
5
6
7
8
|
SELECT column1, column2, aggregate_function(column3)
FROM table1
JOIN table2 ON table1.common_column = table2.common_column
WHERE condition
GROUP BY column1, column2
HAVING aggregate_condition
ORDER BY column1 ASC, column2 DESC
LIMIT 10 OFFSET 5;
|