目录
[MySQL 语法总结](#MySQL 语法总结)
数据库操作
- 创建数据库:
sql
CREATE DATABASE database_name;
- 选择数据库:
sql
USE database_name;
- 删除数据库:
sql
DROP DATABASE database_name;
表操作
- 创建表:
sql
CREATE TABLE table_name ( column1 datatype constraints, column2 datatype constraints, ... PRIMARY KEY (column_name) );
- 修改表结构:
sql
ALTER TABLE table_name ADD column_name datatype; ALTER TABLE table_name MODIFY COLUMN column_name new_datatype; ALTER TABLE table_name DROP COLUMN column_name;
- 删除表:
sql
DROP TABLE table_name;
数据操作
- 插入数据:
sql
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
- 更新数据:
sql
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
- 删除数据:
sql
DELETE FROM table_name WHERE condition;
查询语句
- 基本查询:
sql
SELECT column1, column2, ... FROM table_name WHERE condition ORDER BY column_name [ASC|DESC] LIMIT number;
- 聚合函数:
sql
SELECT COUNT(*) FROM table_name; SELECT SUM(column_name) FROM table_name; SELECT AVG(column_name) FROM table_name; SELECT MAX(column_name) FROM table_name; SELECT MIN(column_name) FROM table_name;
- 分组查询:
sql
SELECT column_name, COUNT(*)
FROM table_name
GROUP BY column_name HAVING condition;
- 连接查询:
sql
内连接 SELECT a.column1, b.column2 FROM table1 a INNER JOIN table2 b ON a.key = b.key;
左连接 SELECT a.column1, b.column2 FROM table1 a LEFT JOIN table2 b ON a.key = b.key;
右连接 SELECT a.column1, b.column2 FROM table1 a RIGHT JOIN table2 b ON a.key = b.key;
- 子查询:
sql
SELECT column_name FROM table_name WHERE column_name IN (SELECT column_name FROM another_table);
索引操作
- 创建索引:
sql
CREATE INDEX index_name ON table_name (column_name);
- 创建唯一索引:
sql
CREATE UNIQUE INDEX index_name ON table_name (column_name);
- 删除索引:
sql
DROP INDEX index_name ON table_name;
约束
- 主键约束:
sql
CREATE TABLE table_name ( id INT PRIMARY KEY, ... );
- 外键约束:
sql
CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) );
- 非空约束:
sql
CREATE TABLE table_name ( column_name datatype NOT NULL, ... );
- 唯一约束:
sql
CREATE TABLE table_name ( column_name datatype UNIQUE, ... );
- 默认值:
sql
CREATE TABLE table_name ( column_name datatype DEFAULT default_value, ... );
事务控制
- 开始事务:
sql
START TRANSACTION;
- 提交事务:
sql
COMMIT;
- 回滚事务:
sql
ROLLBACK;
视图操作
- 创建视图:
sql
CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;
- 使用视图:
sql
SELECT * FROM view_name;
- 删除视图:
sql
DROP VIEW view_name;
存储过程和函数
- 创建存储过程:
sql
DELIMITER // CREATE PROCEDURE procedure_name(IN param1 datatype, OUT param2 datatype) BEGIN -- SQL语句 END // DELIMITER ;
- 调用存储过程:
sql
CALL procedure_name(param1, @param2);
- 创建函数:
sql
DELIMITER // CREATE FUNCTION function_name(param1 datatype) RETURNS datatype BEGIN -- SQL语句 RETURN value; END // DELIMITER ;
- 调用函数:
sql
SELECT function_name(param1);
触发器
- 创建触发器:
sql
DELIMITER // CREATE TRIGGER trigger_name BEFORE/AFTER INSERT/UPDATE/DELETE ON table_name FOR EACH ROW BEGIN -- 触发器逻辑 END // DELIMITER ;
- 删除触发器:
sql
DROP TRIGGER trigger_name;
用户和权限管理
- 创建用户:
sql
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
- 授予权限:
sql
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host'; GRANT SELECT, INSERT ON database_name.table_name TO 'username'@'host';
- 撤销权限:
sql
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'host';
- 删除用户:
sql
DROP USER 'username'@'host';
- 刷新权限:
sql
FLUSH PRIVILEGES;
以上是MySQL的基本语法总结,涵盖了数据库、表、数据操作、查询、索引、约束、事务、视图、存储过程、函数、触发器以及用户权限管理等各个方面。