SQL子查询语句简单示例

发表于:2017-5-08 11:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:代码信条    来源:51Testing软件测试网采编

  SQL 中的 SELECT 命令不仅能够直接用来查询数据库中的数据,还能够嵌入到 WHERE 中作为子查询语句,或者将查询结果插入到另一个表中。
  将子查询用于 WHERE 子句
  子查询能够与 SELECT、INSERT、UPDATE 和 DELETE 语句一起使用。
  下面以 SELECT 语句作为示例:
SELECT id, name
FROM table1
WHERE id in (
SELECT id
FROM table2);
  在上面所给的例子中,我们将子查询的结果作为一个集合,使用 in 成员测试运算来筛选出同时存在于 table1 和 table2 中的 id 。
  注意:WHERE 子句中的子查询必须使用括号包围起来。待比较的数据应该与子查询的结果具有相同的列数。
  子查询的结果为单条记录,则可以使用 =、<、>、>=、<=、IN、BETWEEN 等运算符。例如:
SELECT id, name FROM table1
WHERE id = (
SELECT id
FROM table2
WHERE name = "xxx");
  或者多列:
SELECT id, name FROM table1
WHERE (name, age) = (
SELECT name, age
FROM table2
WHERE id = 3);
  当查询结果为多条记录时,只能使用 in 成员测试运算。
  例如:
SELECT email
FROM table1
WHERE id in (
SELECT id
FROM table2);
  将子查询结果插入表中
  我们可以将一个表的查询结果作为数据插入到另一个表中,例如:
INSERT INTO newtable
SELECT * FROM oldtable
WHERE id > 100;
  还可以选择特定的列:
INSERT INTO newtable (id, name)
SELECT id, name FROM oldtable
WHERE id < 50;
  我们注意到,这里的子查询语句不需要使用括号包围。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号