当前位置: 首页 > article >正文

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

目录

MySQL 语法总结

数据库操作

表操作

数据操作

查询语句

索引操作

约束

事务控制

视图操作

存储过程和函数

触发器

用户和权限管理

数据库操作

  • 创建数据库

CREATE DATABASE database_name; 
  • 选择数据库

USE database_name; 
  • 删除数据库

DROP DATABASE database_name; 

表操作

  • 创建表

CREATE TABLE table_name ( column1 datatype constraints, column2 datatype constraints, ... PRIMARY KEY (column_name) ); 
  • 修改表结构

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; 
  • 删除表

DROP TABLE table_name; 

数据操作

  • 插入数据

INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...); 
  • 更新数据

UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; 
  • 删除数据

DELETE FROM table_name WHERE condition; 

查询语句

  • 基本查询

SELECT column1, column2, ... FROM table_name WHERE condition ORDER BY column_name [ASC|DESC] LIMIT number; 
  • 聚合函数

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; 
  • 分组查询

SELECT column_name, COUNT(*) 
FROM table_name 
GROUP BY column_name HAVING condition; 
  • 连接查询

内连接 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; 
  • 子查询

SELECT column_name FROM table_name WHERE column_name IN (SELECT column_name FROM another_table); 

索引操作

  • 创建索引

CREATE INDEX index_name ON table_name (column_name); 
  • 创建唯一索引

CREATE UNIQUE INDEX index_name ON table_name (column_name); 
  • 删除索引

DROP INDEX index_name ON table_name; 

约束

  • 主键约束

CREATE TABLE table_name ( id INT PRIMARY KEY, ... ); 
  • 外键约束

CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) ); 
  • 非空约束

CREATE TABLE table_name ( column_name datatype NOT NULL, ... ); 
  • 唯一约束

CREATE TABLE table_name ( column_name datatype UNIQUE, ... ); 
  • 默认值

CREATE TABLE table_name ( column_name datatype DEFAULT default_value, ... ); 

事务控制

  • 开始事务

START TRANSACTION; 
  • 提交事务

COMMIT; 
  • 回滚事务

ROLLBACK; 

视图操作

  • 创建视图

CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition; 
  • 使用视图

SELECT * FROM view_name; 
  • 删除视图

DROP VIEW view_name; 

存储过程和函数

  • 创建存储过程

DELIMITER // CREATE PROCEDURE procedure_name(IN param1 datatype, OUT param2 datatype) BEGIN -- SQL语句 END // DELIMITER ; 
  • 调用存储过程

CALL procedure_name(param1, @param2); 
  • 创建函数

DELIMITER // CREATE FUNCTION function_name(param1 datatype) RETURNS datatype BEGIN -- SQL语句 RETURN value; END // DELIMITER ; 
  • 调用函数

SELECT function_name(param1); 

触发器

  • 创建触发器

DELIMITER // CREATE TRIGGER trigger_name BEFORE/AFTER INSERT/UPDATE/DELETE ON table_name FOR EACH ROW BEGIN -- 触发器逻辑 END // DELIMITER ; 
  • 删除触发器

DROP TRIGGER trigger_name; 

用户和权限管理

  • 创建用户

CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 
  • 授予权限

GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host'; GRANT SELECT, INSERT ON database_name.table_name TO 'username'@'host'; 
  • 撤销权限

REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'host'; 
  • 删除用户

DROP USER 'username'@'host'; 
  • 刷新权限

FLUSH PRIVILEGES; 

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

http://www.lryc.cn/news/2380203.html

相关文章:

  • Linux动静态库制作与原理
  • 确保高质量的音视频通话,如何最大化利用视频带宽
  • ffmpeg 把一个视频复制3次
  • GPT/Claude3国内免费镜像站更新 亲测可用
  • AI自动化工作流:开启当下智能生产力的价值
  • stm32——EXTI外部中断
  • Python:操作Excel按行写入
  • Redis进阶知识
  • Python机器学习笔记(二十三 模型评估与改进-网格搜索)
  • 12.vue整合springboot首页显示数据库表-实现按钮:【添加修改删除查询】
  • bisheng系列(一)- 本地部署(Docker)
  • 如何用Python批量解压ZIP文件?快速解决方案
  • DriveGenVLM:基于视觉-语言模型的自动驾驶真实世界视频生成
  • JavaScript 中的五种继承方式进行深入对比
  • 企业标准信息公共服务平台已开放标准通编辑器访问入口
  • [Linux]安装吧!我的软件包管理器!
  • Spring Boot 与 RabbitMQ 的深度集成实践(三)
  • 进阶-数据结构部分:1、数据结构入门
  • React 19中useContext不需要Provider了。
  • Json schema校验json字符串(networknt/json-schema-validator库)
  • 交易所开发:构建功能完备的金融基础设施全流程指南
  • Windows_Vs2022 C#语言开发环境构建
  • Axure疑难杂症:统计分析页面引入Echarts示例动态效果
  • 展锐Android14及更新版本split_build编译方法
  • 青少年ctf平台应急响应-应急响应2
  • k8s监控方案实践补充(二):使用kube-state-metrics获取资源状态指标
  • WEB安全--SQL注入--Oracle注入
  • 基于SpringBoot的小型民营加油站管理系统
  • 每日一道leetcode(新学数据结构版)
  • 深入掌握MyBatis:连接池、动态SQL、多表查询与缓存