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

SQL 语法

好的,下面是对 SQL 语法的简洁总结,涵盖了常见的 SQL 操作和基本语法结构。

创建一个表 (CREATE TABLE)

首先,我们需要创建一个表 users,如果还没有的话:
CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(100), age INT );
这条语句创建了一个名为 users 的表,包含三个字段:id(整数类型,主键)、name(最大长度为 100 的字符串)和 age(整数类型)。

1. SELECT 语句

用于从数据库表中查询数据。
语法:
SELECT column1, column2, ... FROM table_name WHERE condition ORDER BY column1 [ASC|DESC] LIMIT number;
  • SELECT:指定要查询的列。
  • FROM:指定查询的数据来源表。
  • WHERE:条件过滤,只返回满足条件的记录。
  • ORDER BY:排序,ASC 为升序,DESC 为降序。
  • LIMIT:限制返回的记录数。
示例:
SELECT name, age FROM users WHERE age > 20 ORDER BY age DESC LIMIT 5;
解释:
  • SELECT name, age:查询 users 表中的 name 和 age 列。
  • FROM users:数据来自 users 表。
  • WHERE age > 20:条件是只查询 age 大于 20 的用户。
  • ORDER BY age DESC:按照 age 列的降序排列查询结果,年龄大的排在前面。
  • LIMIT 5:限制查询结果最多返回 5 条记录。
意思:从 users 表中查询所有 age 大于 20 的用户的名字和年龄,并按年龄降序排列,最多返回前 5 条记录。

2. INSERT INTO 语句

用于向表中插入数据。
语法:
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
  • INSERT INTO:指定要插入数据的表。
  • VALUES:指定插入的值。
示例:
INSERT INTO users (name, age) VALUES ('Alice', 30);
解释:
  • INSERT INTO users:向 users 表插入数据。
  • (name, age):插入数据的列名,分别是 name 和 age。
  • VALUES ('Alice', 30):插入的具体值,name 为 'Alice',age 为 30。
意思:向 users 表插入一条新记录,其中 name 是 'Alice',age 是 30。

3. UPDATE 语句

用于更新表中现有的记录。
语法:
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
  • UPDATE:指定要更新的表。
  • SET:指定更新的列和新值。
  • WHERE:限定更新的记录。
示例:
UPDATE users SET age = 31 WHERE name = 'Alice';
解释:
  • UPDATE users:更新 users 表的数据。
  • SET age = 31:将 age 列的值更新为 31。
  • WHERE name = 'Alice':只更新 name 为 'Alice' 的用户的记录。
意思:将 users 表中名字为 'Alice' 的用户的年龄更新为 31。

4. DELETE 语句

用于删除表中的记录。
语法:
DELETE FROM table_name WHERE condition;
  • DELETE FROM:指定要删除记录的表。
  • WHERE:限定删除的记录。
示例:
DELETE FROM users WHERE age < 18;
解释:
  • DELETE FROM users:从 users 表中删除数据。
  • WHERE age < 18:只删除 age 小于 18 的记录。
意思:删除 users 表中所有年龄小于 18 的用户记录。

5. JOIN 语句

用于连接多个表,通过某个公共列来组合数据。
语法:
SELECT column1, column2, ... FROM table1 JOIN table2 ON table1.column_name = table2.column_name;
  • JOIN:指定要连接的表。
  • ON:指定连接条件。
示例:
SELECT users.name, orders.order_date FROM users INNER JOIN orders ON users.id = orders.user_id;
解释:
  • SELECT users.name, orders.order_date:查询 users 表中的 name 列和 orders 表中的 order_date 列。
  • FROM users:数据来自 users 表。
  • INNER JOIN orders:将 users 表与 orders 表进行内连接。
  • ON users.id = orders.user_id:连接条件是 users 表的 id 列与 orders 表的 user_id 列匹配。
意思:查询所有用户的姓名和他们的订单日期,连接条件是 users.id 和 orders.user_id 相等(即用户与他们的订单进行匹配)。

6. GROUP BY 语句

用于对查询结果进行分组,通常配合聚合函数使用(如 COUNT、SUM)。
语法:
SELECT column1, COUNT(*) FROM table_name GROUP BY column1;
  • GROUP BY:根据指定的列对数据进行分组。
示例:
SELECT age, COUNT(*) FROM users GROUP BY age;
解释:
  • SELECT age, COUNT(*):查询 age 列,并计算每个年龄段的用户数。
  • FROM users:数据来自 users 表。
  • GROUP BY age:按 age 列对数据进行分组。
意思:统计 users 表中每个年龄段的用户数量。例如,输出类似:20岁有 5 个用户,25岁有 8 个用户等。

7. ORDER BY 语句

用于对查询结果进行排序。
语法:
SELECT column1, column2, ... FROM table_name ORDER BY column1 [ASC|DESC];
  • ORDER BY:指定排序的列,ASC 升序,DESC 降序。
示例:
SELECT name, age FROM users ORDER BY age DESC;
解释:
  • SELECT name, age:查询 users 表中的 name 和 age 列。
  • FROM users:数据来自 users 表。
  • ORDER BY age DESC:按 age 列进行排序,DESC 表示降序(从大到小)。
意思:查询 users 表中的 name 和 age,并按年龄降序排列,年龄较大的用户排在前面。

8. LIMIT 语句

用于限制查询结果返回的记录数量。
语法:
SELECT column1, column2, ... FROM table_name LIMIT number;
  • LIMIT:限制查询结果返回的记录数。
示例:
SELECT name, age FROM users LIMIT 5;
解释:
  • SELECT name, age:查询 users 表中的 name 和 age 列。
  • FROM users:数据来自 users 表。
  • LIMIT 5:限制查询结果返回 5 条记录。
意思:查询 users 表中的前 5 条记录,返回 name 和 age。

总结:

每个 SQL 语句示例都对应一个具体的操作或查询,它们的目的是:
  • SELECT:查询数据。
  • INSERT INTO:插入数据。
  • UPDATE:更新数据。
  • DELETE:删除数据。
  • JOIN:连接表。
  • GROUP BY:分组数据。
  • ORDER BY:排序数据。
  • LIMIT:限制结果的行数。
这些操作可以灵活组合,满足各种数据库管理和数据分析的需求。
SQL 语句的基本结构通常由:
  • 动词(Verb):表示操作类型(如 SELECT、INSERT、UPDATE、DELETE)。
  • 主语(Subject):指定要操作的表和列。
  • 谓语(Predicate):用于定义操作条件、排序和限制等。
SQL 是一种功能强大的查询语言,用于操作数据库中的数据。通过灵活使用各种 SQL 语句,你可以高效地管理和分析数据库中的数据。
http://www.xdnf.cn/news/1598.html

相关文章:

  • https nginx 负载均衡配置
  • VisionTransformer改进(3):Triplet Attention模块增强
  • 协作开发攻略:Git全面使用指南 — 引言
  • 042-Windows抓屏-DXGI
  • 第三章:Transport Mechanisms
  • 单 例 模 式
  • 【前端】CSS 基础
  • 多维时序 | LightGBM多变量时序预测(Matlab完整源码和数据,适合基础小白研究)
  • CAS(Compare And Swap)
  • Ubuntu服务器上如何监控Oracle数据库
  • 电子削铅笔刀顺序图详解:从UML设计到PlantUML实现
  • 几种查看PyTorch、cuda 和 Python 版本方法
  • 关于Qt对Html/CSS的支持
  • 全链路数据仓建设指南:从构建流程到应用场景
  • Vue+Flask豆瓣LSTM影评+推荐算法大数据可视化平台深度学习系统源码
  • 文件上传--WAF绕过干货
  • 【网络入侵检测】基于Suricata源码分析NFQ IPS模式实现
  • Python torchvision.transforms 下常用图像处理方法
  • maven工程中引入外部jar
  • 数据分析之技术干货业务价值​​ powerquery 分组排序后取TOP
  • 《AI大模型应知应会100篇》 第36篇:RAG技术入门:检索增强生成原理及实现
  • 【hadoop】HBase分布式数据库安装部署
  • PyTorch生成式人工智能实战(2)——PyTorch基础
  • 13、性能优化:魔法的流畅之道——React 19 memo/lazy
  • Websocket自动发送消息客户端工具
  • LeetCode每日一题4.24
  • 硬核解析!电动汽车能耗预测与续驶里程的关键技术研究
  • 多模态大模型 Qwen2.5-VL 的学习之旅
  • 立錡科技优化 HDD、LPDDR、SoC 供电的高性能降压转换器
  • 6 种AI实用的方法,快速修复模糊照片