`

sql 最小化表查询次(col1,col2) = (select col1,col2 from t)

 
阅读更多
最小化表查询次数                                                                                                            
-->在含有子查询的SQL语句中,要特别注意减少对表的查询                                                                             
-->低效:                                                           
SELECT *                                                                                      
FROM   employees                                                                                   
WHERE  department_id = (SELECT department_id                                                       
                        FROM   departments                                                     
                        WHERE  department_name = 'Marketing')                                   
       AND manager_id = (SELECT manager_id                                                       
                         FROM   departments                                                     
                         WHERE  department_name = 'Marketing');                                  
-->高效:                                                                
SELECT *                                                                                    
FROM   employees                                                                             
WHERE  ( department_id, manager_id ) = (SELECT department_id, manager_id                                  
                                        FROM   departments                                                   
                                        WHERE  department_name = 'Marketing')                   
                                                                                    
-->类似更新多列的情形                
-->低效:                     
UPDATE employees                                                                                  
SET    job_id = ( SELECT MAX( job_id ) FROM jobs ), salary = ( SELECT AVG( min_salary ) FROM jobs )           
WHERE  department_id = 10;                                                                    
                                                                                        
-->高效:                  
UPDATE employees           
SET    ( job_id, salary ) = ( SELECT MAX( job_id ), AVG( min_salary ) FROM jobs )       
WHERE  department_id = 10;              
            




分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    SQL2000_SQL2005_SQL2008语句大全word完整版

    +CAST((SELECT col2FROM tbWHERE col1=a.col1AND col2NOT IN(MAX(a.col2),MIN(a.col2)))as varchar) ELSE '' END +CASE WHEN COUNT(*)>=2 THEN ','+CAST(MAX(col2)as varchar) ELSE '' END FROM tb a GROUP ...

    T-SQL高级查询

    select * from student where id > 2 and sex = 1; --or 或者 select * from student where id = 2 or sex = 1; --between ... and ... 相当于并且 select * from student where id between 2 and 5; select * ...

    SQL之SELECT FROM

    SQL即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及...此文档是SQL查询语言的基础命令,SELECT FROM的例子。可以轻松学会sql的查询命令。

    经典SQL语句大全

    set @sql=’select top’+str(@end-@start+1)+’+from T where rid not in(select top’+str(@str-1)+’Rid from T where Rid>-1)’ exec sp_executesql @sql 注意:在top后不能直接跟一个变量,所以在实际应用中...

    经典sql语句大全(基础篇、提升篇、技巧篇)

    CREATE TABLE 语句用于创建一个新的表,tabname 为要创建的表名称,col1、col2 等为表的列名,type1、type2 等为列的数据类型。 5. 删除新表:DROP TABLE tabname DROP TABLE 语句用于删除一个已经存在的表,...

    数据库SQL查询语句练习题.doc

    结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统; sql 语句就是对数据库进行操作的一种语言。 常见语句 ...

    sql.rar_exec select_select_sql select from exec_普通sql大全

    Exec sp_executesql N select * from tableName -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为变量时,必须用动态SQL eg: declare @fname varchar(20) set @fname = FiledName Select @...

    SQL操作全集(非常适合初学者)

    B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。...

    SQL 基础--SELECT 查询

    一、SQL 结构化查询语言 包括DDL(数据定义语言)、DCL(数据控制语言)、 DQL(数据查询语言)、DML(数据操纵语言) 二、SQL的特点 SQL 语句不区分大小写 SQL 语句能输入一行或多行 关键字不能整行缩写或...

    数据库作业7:SQL练习4 – SELECT(连接查询、嵌套查询)

    数据查询2—连接查询:同时涉及两个以上的表的查询 连接条件:用来连接两个表的条件 [.] [.] 连接字段:连接条件中的列名称(注意:连接字段类型必须是可比的,但名字不必相同) 连接查询—(1)等值与非等值连接查询:...

    sql语句学习 多表连接查询

    自己学习的笔记--查询计算机系CS男学生学号、姓名和考试成绩 SELECT A.Sno,A.Sname,B.degree FROM student A,sc B WHERE A.Sdept = 'CS' AND A.Ssex = '男' AND A.Sno = B.sno SELECT A.Sno,A.Sname,B.degree FROM ...

    经典全面的SQL语句大全

    Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)  20、说明:列出数据库里所有的表名 select name from sysobjects where type='U' 21、说明:列出表里的所有的 ...

    java笔记\Oracle里sql不能用limit的处理

    SELECT t_col1,t_col2 FROM t_table_name WHERE rownum <= 10; ``` 如果我们想要查询第11-20条记录,我们可以使用以下SQL语句: ```sql SELECT t_col1,t_col2 FROM t_table_name WHERE rownum > 10 and rownum...

    SQL语法教材.pdf

    SELECT 语法基本架构 =============================== SELECT 字段 1, 字段 2, … 字段 n FROM 表格 1, 表格 2, … 表格 n WHERE 条件 GROUP BY 字段 1, 字段 2, … 字段 n ORDER BY 字段 1, 字段 2, … 字段 n ==...

    SQL语句优化过程策略,帮助您优化Oracle查询语句

    SELECT /*+ORDERED*/ A.COL1,B.COL2,C.COL3 FROM TABLE1 A,TABLE2 B,TABLE3 C WHERE A.COL1=B.COL1 AND B.COL1=C.COL1; 22. /*+USE_NL(TABLE)*/ 将指定表与嵌套的连接的行源进行连接,并把指定表作为内部表. 例如:...

    超实用sql语句

    set @sql=’select top’+str(@end-@start+1)+’+from T where rid not in(select top’+str(@str-1)+’Rid from T where Rid>-1)’ exec sp_executesql @sql 注意:在top后不能直接跟一个变量,所以在实际应用中...

    SQL常见命令及使用方法

    SQL 基本语句使用方法 sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 like '%...sql="select * from 数据表 where 字段名 between 值1 and 值2

    经典Sql语句 数据库

    B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、 增加一个列:Alter table tabname add columnname col type 删除一个列:Alter table ...

    T-SQL表的维护 select TOP的用法

    T-SQL表操作的基础 T-SQL表的维护 select TOP的用法

    SQL中SET和SELECT赋值的区别

    SELECT @VAR1='Y',@VAR2='N' -- 而SET要达到同样的效果,需要: SET @VAR1='Y' SET @VAR2='N' /* 说到这个,SQL内置的变量:@@ERROR 和 @@ROWCOUNT必须要在一句SQL语句中捕获。如果用set分两句来获取它们,将获取...

Global site tag (gtag.js) - Google Analytics