SQL子查询怎么使用
导读:本文共2272.5字符,通常情况下阅读需要8分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: SQL子查询或称为内部查询、嵌套查询,指的是在 SQLite 查询中的 WHERE 子句中嵌入查询语句,一个 SELECT 语句的查询结果能够作为另一个语句的输入值。SELECT 语句中的子查询使用子查询通常与 SELECT 语句一起使用。基本语法如下:SELECTcolumn_name[,column_name]FROMtable1[,table2]WHE... ...
目录
(为您整理了一些要点),点击可以直达。SQL子查询或称为内部查询、嵌套查询,指的是在 SQLite 查询中的 WHERE 子句中嵌入查询语句,一个 SELECT 语句的查询结果能够作为另一个语句的输入值。
SELECT 语句中的子查询使用
子查询通常与 SELECT 语句一起使用。基本语法如下:
SELECTcolumn_name[,column_name]FROMtable1[,table2]WHEREcolumn_nameOPERATOR(SELECTcolumn_name[,column_name]FROMtable1[,table2][WHERE])
实例
假设 COMPANY 表有以下记录:
IDNAMEAGEADDRESSSALARY--------------------------------------------------1Paul32California20000.02Allen25Texas15000.03Teddy23Norway20000.04Mark25Rich-Mond65000.05David27Texas85000.06Kim22South-Hall45000.07James24Houston10000.0
现在,让我们检查 SELECT 语句中的子查询使用:
sqlite>SELECT*FROMCOMPANYWHEREIDIN(SELECTIDFROMCOMPANYWHERESALARY>45000);
这将产生以下结果:
IDNAMEAGEADDRESSSALARY--------------------------------------------------4Mark25Rich-Mond65000.05David27Texas85000.0
INSERT 语句中的子查询使用
子查询也可以与 INSERT 语句一起使用。INSERT 语句使用子查询返回的数据插入到另一个表中。在子查询中所选择的数据可以用任何字符、日期或数字函数修改。
基本语法如下:
INSERTINTOtable_name[(column1[,column2])]SELECT[*|column1[,column2]FROMtable1[,table2][WHEREVALUEOPERATOR]
实例
假设 COMPANY_BKP 的结构与 COMPANY 表相似,且可使用相同的 CREATE TABLE 进行创建,只是表名改为 COMPANY_BKP。现在把整个 COMPANY 表复制到 COMPANY_BKP,语法如下:
sqlite>INSERTINTOCOMPANY_BKPSELECT*FROMCOMPANYWHEREIDIN(SELECTIDFROMCOMPANY);
UPDATE 语句中的子查询使用
子查询可以与 UPDATE 语句结合使用。当通过 UPDATE 语句使用子查询时,表中单个或多个列被更新。
基本语法如下:
UPDATEtableSETcolumn_name=new_value[WHEREOPERATOR[VALUE](SELECTCOLUMN_NAMEFROMTABLE_NAME)[WHERE)]
实例
假设,我们有 COMPANY_BKP 表,是 COMPANY 表的备份。
下面的实例把 COMPANY 表中所有 AGE 大于或等于 27 的客户的 SALARY 更新为原来的 0.50 倍:
sqlite>UPDATECOMPANYSETSALARY=SALARY*0.50WHEREAGEIN(SELECTAGEFROMCOMPANY_BKPWHEREAGE>=27);
这将影响两行,最后 COMPANY 表中的记录如下:
IDNAMEAGEADDRESSSALARY--------------------------------------------------1Paul32California10000.02Allen25Texas15000.03Teddy23Norway20000.04Mark25Rich-Mond65000.05David27Texas42500.06Kim22South-Hall45000.07James24Houston10000.0
DELETE 语句中的子查询使用
子查询可以与 DELETE 语句结合使用,就像上面提到的其他语句一样。
基本语法如下:
DELETEFROMTABLE_NAME[WHEREOPERATOR[VALUE](SELECTCOLUMN_NAMEFROMTABLE_NAME)[WHERE)]
实例
假设,我们有 COMPANY_BKP 表,是 COMPANY 表的备份。
下面的实例删除 COMPANY 表中所有 AGE 大于或等于 27 的客户记录:
sqlite>DELETEFROMCOMPANYWHEREAGEIN(SELECTAGEFROMCOMPANY_BKPWHEREAGE>27);
这将影响两行,最后 COMPANY 表中的记录如下:
IDNAMEAGEADDRESSSALARY--------------------------------------------------2Allen25Texas15000.03Teddy23Norway20000.04Mark25Rich-Mond65000.05David27Texas42500.06Kim22South-Hall45000.07James24Houston10000.0
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
SQL子查询怎么使用的详细内容,希望对您有所帮助,信息来源于网络。