数据库表:
er图:
SQL的子查询(上):
A、SQL Server子查询
子查询是嵌套在另一个语句(如:[SELECT],[INSERT],[UPDATE]或[DELETE])中的查询。
以下语句显示如何在 SELECT 语句的[WHERE]子句中使用子查询来查找位于纽约( New York )的客户的销 售订单:
一、SQL SELECT 语句
本文段讲解 SELECT 和 SELECT * 语句。
SQL SELECT 语句
SELECT 语句用于从表中选取数据。
结果被存储在一个结果表中(称为结果集)。
SQL SELECT 语法:
SELECT 列名称 FROM 表名称
以及:
SELECT * FROM 表名称
注释:SQL 语句对大小写不敏感。SELECT 等效于 select。
SQL SELECT 实例
如需获取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表),请使用类似这样的 SELECT 语句:
SELECT LastName,FirstName FROM Persons
"Persons" 表:
结果:
SQL SELECT * 实例
现在我们希望从 "Persons" 表中选取所有的列。
请使用符号 * 取代列的名称,就像这样:
SELECT * FROM Persons
提示:星号(*)是选取所有列的快捷方式。
结果:
在结果集(result-set)中导航
由 SQL 查询程序获得的结果被存放在一个结果集中。大多数数据库软件系统都允许使用编程函数在结果集中进行导航,比如:Move-To-First-Record、Get-Record-Content、Move-To-Next-Record 等等。
二、SQL INSERT INTO 语句
INSERT INTO 语句
INSERT INTO 语句用于向表格中插入新的行。
语法
INSERT INTO 表名称 VALUES (值1, 值2,....)
我们也可以指定所要插入数据的列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
插入新的行
"Persons" 表:
SQL 语句:
结果:
在指定的列中插入数据
"Persons" 表:
SQL 语句:
结果:
三、SQL UPDATE 语句
Update 语句
Update 语句用于修改表中的数据。
语法:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
Person:
更新某一行中的一个列
我们为 lastname 是 "Wilson" 的人添加 firstname:
结果:
更新某一行中的若干列
我们会修改地址(address),并添加城市名称(city):
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'
WHERE LastName = 'Wilson'
结果:
四、SQL DELETE 语句
DELETE 语句
DELETE 语句用于删除表中的行。
语法:
DELETE FROM 表名称 WHERE 列名称 = 值
Person:
删除某行
"Fred Wilson" 会被删除:
DELETE FROM Person WHERE LastName = 'Wilson'
结果:
删除所有行
可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的:
DELETE FROM table_name
或者:
B、SQL Server嵌套子查询
子查询可以嵌套在另一个子查询中。
SQL Server最多支持 32 个嵌套级别。
请考虑以下示例:
首先,SQL Server执行以下子查询以获取品牌名称为 '上海永久' 和 '凤凰' 的品牌标识号列表:
第二步,SQL Server计算属于这些品牌的所有产品的平均价格。
第三步,SQL Server查找价格高于 '上海永久' 和 '凤凰' 品牌的所有产品的平均定价的产品。
C、SQL Server相关子查询
相关子查询是使用外部查询的值的[子查询]。 换句话说,它取决于外部查询的值。 由于这种依赖性,相 关子查询不能作为简单子查询独立执行。
此外,对外部查询评估的每一行重复执行一次相关子查询。 相关子查询也称为重复子查询。
以下示例查找价格等于其类别的最高价格的产品。
以上就是我最近新学习到的新的知识内容,现在分享给你们,希望可以帮助到你们。