SQL 第6天:高级查询、连接与数据库操作

SQL 第6天:高级查询、连接与数据库操作

💡 原文英文,约700词,阅读约需3分钟。
📝

内容提要

子查询是在另一个查询中使用的查询,适用于SELECT、WHERE和HAVING子句。连接则是基于公共列合并多个表的行,通常效率更高。UNION、INTERSECT和EXCEPT用于合并或比较查询结果。SQL命令分为DDL、DML、DQL、TCL和DCL,基本操作包括创建和修改表结构及管理主键。

🎯

关键要点

  • 子查询是在另一个查询中使用的查询,适用于SELECT、WHERE和HAVING子句。
  • 连接是基于公共列合并多个表的行,通常效率更高。
  • 使用连接时可以高效地从多个表中获取数据。
  • 使用子查询时可以进行动态过滤的嵌套查询。
  • IN用于检查多个值,=用于检查单个值。
  • 交叉连接会组合两个表的所有行(笛卡尔积)。
  • 自连接是一个表与自身连接。
  • 子查询可以在SELECT和FROM子句中使用。
  • UNION用于合并两个查询的结果并去除重复项。
  • INTERSECT返回两个查询之间的公共记录。
  • EXCEPT返回一个查询中存在而另一个查询中不存在的记录。
  • CHAR是固定长度,VARCHAR是可变长度的字符串。
  • DDL定义数据库结构,DML修改数据,DQL检索数据,TCL管理事务,DCL管理权限。
  • 基本SQL操作包括创建数据库和表、修改表结构、添加列等。
  • 主键必须唯一且不能为NULL,一个表只能有一个主键。
  • DROP永久删除表结构和数据,DELETE删除特定行但保留表,TRUNCATE删除所有行但保留表结构。

延伸问答

什么是子查询,它的用途是什么?

子查询是在另一个查询中使用的查询,适用于SELECT、WHERE和HAVING子句,用于动态过滤结果。

连接和子查询有什么区别?

连接基于公共列合并多个表的行,通常效率更高,而子查询用于嵌套查询,适合动态过滤。

UNION、INTERSECT和EXCEPT的区别是什么?

UNION合并两个查询的结果并去除重复项,INTERSECT返回两个查询的公共记录,EXCEPT返回一个查询中存在而另一个查询中不存在的记录。

如何在SQL中创建和修改表结构?

使用CREATE命令创建表,使用ALTER命令修改表结构,如添加列或更改列类型。

什么是主键,它的规则是什么?

主键是唯一且不能为NULL的字段,一个表只能有一个主键。

DROP、DELETE和TRUNCATE的区别是什么?

DROP永久删除表结构和数据,DELETE删除特定行但保留表,TRUNCATE删除所有行但保留表结构。

➡️

继续阅读