【MySQL成神之路】MySQL常用语法总结

目录

[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的基本语法总结,涵盖了数据库、表、数据操作、查询、索引、约束、事务、视图、存储过程、函数、触发器以及用户权限管理等各个方面。

相关推荐
lsc_blog1 小时前
年终自评别贴提交记录,把技术产出讲成变化
数据库·面试·职场和发展·跳槽·求职招聘
FungLeo4 小时前
成为全栈·基础补充·数据库迁移与事务:数据结构怎样安全演进
mysql·postgresql·sqlite·数据一致性·数据库事务·数据库迁移·成为全栈
Zan9 小时前
SQLite + SQLx 实战:为什么已经发布的数据库迁移文件,绝对不能再修改?
数据库·后端·面试
这个DBA有点耶10 小时前
数据同步的三个工程底线:DDL同步、断点续传、一致性校验——开源CDC的边界与KFS的路径
数据库·dba·代码规范
aiks_yuan11 小时前
MySQL GROUP BY 很慢怎么优化:加了索引反而从 1 秒变 7 秒,Using temporary 该不该消(MySQL 8.2 实测 400 万行)
mysql
SelectDB11 小时前
列式存储为什么适合分析类负载?原理、限制与日志场景应用
数据库
数据库小学妹12 小时前
MySQL大字段治理:行溢出机制、覆盖索引与拆表
数据库·mysql·性能优化
爱吃奥利奥_wen12 小时前
SQL Server 基础语法详解:从建库建表到约束与增删改查
服务器·数据库·oracle
这个DBA有点耶13 小时前
MySQL 8.0不可见索引:删索引怕出事,不删又拖慢写入——中间态怎么用?
数据库·mysql·代码规范