今天早上老师在课堂上介绍了一些简语句标准格式,围绕“用活SQL”的主题介绍了SQL语句效率比较、Oracle数据库环境、操作系统和网络的优化等其他知识。
开始,老师以“SELECT DISTINCT”和“SELECT DISTINCT FROM 表名”与SELECT COUNT结合查询法人表中“国营”、“三资”、“集体”、“私营”企业的数量为例,让我们看到了两种相差不大的语句执行效率的不同。对其内容进行分析可以看到,SELECT DISTINCT在表中进行了一次以上的查询(如本题将进行4次查询),而SELECT DISTINCT FROM 表名只进行了一次查询。因此后者更快。
SELECT DISTINCT (SELECT COUNT(*) FROM LegalEntityT WHERE ENATURE='国营' ), (SELECT COUNT(*) FROM LegalEntityT WHERE ENATURE='三资' ), (SELECT COUNT(*) FROM LegalEntityT WHERE ENATURE='集体' ), (SELECT COUNT(*) FROM LegalEntityT WHERE ENATURE='私营' ) (FROM LegalEntityT)
子查询可以出现在WHERE、FROM和其他子句中,这些查询语句的标准格式都是固定的,在此不赘述。老师特别提到的是,子查询的结果存在于在内存中生成的一个临时表;在IN和EXISTS的执行效率时,我们发现当表中的内容足够多时,才可以发现EXISTS的效率比IN更高,否则二者差别不大。在网上查找了一下,其原理的解释为:IN是把外表和内表作hash连接,而EXISTS是对外表作loop循环,每次loop循环再对内表进行查询。而且在演示中可以看出来,同样的表单,只用IN或EXISTS的执行效率也不同,因为它会受到系统里其他因素的影响。
Select * From LegalEntityT Where Eno in (Select Eno From loant where lamount>1000)
Select * From LegalEntityT Where Exists( Select Eno From loant where loant.Eno= LegalEntityT.Eno and lamount>1000)
在case表达式的妙用中,老师让我们比较了一下两种能实现相同目的case when then end的不同表达式:
select count(case enature when '国营' then ' 国营 ' end) as '国营', count(case enature when '私营' then ' 私营 ' end) as '私营', count(case enature when '集体' then ' 集体 ' end) as '集体', count(case enature when '三资' then ' 三资 ' end) as '三资' from dbo.LegalEntity
select count(case enature when '国营' then '1' end) as '国营', count(case enature when '私营' then '2' end) as '私营', count(case enature when '集体' then '3' end) as '集体', count(case enature when '三资' then '4' end) as '三资' from dbo.LegalEntity
其中第二种代码比较少见,数字替换为了他条件表达式。如果有多个CASE WHEN表达式符合条件,将只返回第一个符合条件的子句,其余子句将被忽略。
在与数据库设计的部分,根据以前所学内容,我们比较熟悉的是概念设计、关系设计,而对与数据库底层实现相关的物理设计比较陌生。它由数据库的存储结构、存取方式、存取路径、存放位置和系统配置决定。
最后贴一个今天打开SQL Sever 2014 Management Studio的错误解决方式:
错误如下:
与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)“
解决参考资料:http://www.jb51.net/article/59352.htm
相关推荐
第5章 关系数据库语言——T-SQL(2006_研)
【数据库基础——SQL语言全面学习】 数据库是存储和管理数据的核心工具,而SQL(Structured Query Language)是用于操作和查询这些数据库的语言。SQL语言的全面学习对于任何IT专业人士,特别是那些涉及数据处理和...
"图书订购"数据库还可以用于学习数据库的备份和恢复策略。了解如何创建完整备份、差异备份和事务日志备份,以及如何在必要时使用这些备份进行恢复,是数据库管理员的基本技能。 7. **安全性与权限**: 探索SQL ...
图书管理系统数据库设计——SQL.doc
ch07创建SQL Server数据库01——创建数据库
在构建软件数字安全带系列课程的第四部分,我们聚焦于数据库防护,特别是深入探讨了SQL注入攻击这一严重威胁。SQL注入攻击是网络安全领域中的一个重要课题,它利用了应用程序对用户输入数据处理不当的漏洞,从而可能...
数据库程序设计——SQL Server 2000数据库程序设计【学生用光盘(2)】.part1 ; 数据库程序设计——SQL Server 2000数据库程序设计【学生用光盘(2)】.part2 ; 数据库程序设计——SQL Server 2000数据库程序设计...
数据库程序设计——SQL Server 2000数据库程序设计【学生用光盘(2)】.part1 ; 数据库程序设计——SQL Server 2000数据库程序设计【学生用光盘(2)】.part2 ; 数据库程序设计——SQL Server 2000数据库程序设计...
数据库程序设计——SQL Server 2000数据库程序设计【学生用光盘(2)】.part1 ; 数据库程序设计——SQL Server 2000数据库程序设计【学生用光盘(2)】.part2 ; 数据库程序设计——SQL Server 2000数据库程序设计...
数据库程序设计——SQL Server 2000数据库程序设计【学生用光盘(1)】.part1 ; 数据库程序设计——SQL Server 2000数据库程序设计【学生用光盘(1)】.part2 ; 数据库程序设计——SQL Server 2000数据库程序设计...
数据库程序设计——SQL Server 2000数据库程序设计【学生用光盘(1)】.part1 ; 数据库程序设计——SQL Server 2000数据库程序设计【学生用光盘(1)】.part2 ; 数据库程序设计——SQL Server 2000数据库程序设计...
数据库程序设计——SQL Server 2000数据库程序设计【学生用光盘(1)】.part1 ; 数据库程序设计——SQL Server 2000数据库程序设计【学生用光盘(1)】.part2 ; 数据库程序设计——SQL Server 2000数据库程序设计...
《数据库原理与应用——SQL Server 2000》是一本深入探讨数据库理论与实践的教材,特别关注了Microsoft SQL Server 2000这一版本。在这个电子教案中,我们将会学习到关于数据库设计、创建、管理和优化的全方位知识。...
总的来说,《数据库技术及应用——SQL Server 2005》电子教案将带领学习者全面探索SQL Server 2005的世界,从基础操作到高级技术,从理论知识到实践技能,旨在培养出能够熟练运用SQL Server 2005解决实际问题的专业...
"Oracle 数据库系统——管理与应用"的学习资源,如"中国IT认证实验室学习下载频道.txt"和"Oracle 数据库系统——管理与应用"文档,应能提供详细教程、实战案例和最佳实践,帮助读者全面掌握Oracle数据库的精髓,无论...
《数据库应用技术——SQL Server 2000简明教程》是一份全面介绍SQL Server 2000的教育资源,适合初学者和有一定基础的学习者深入理解数据库管理和开发。SQL Server 2000是微软公司推出的一款关系型数据库管理系统...
数据库应用基础——SQL 在信息技术领域,SQL(Structured Query Language,结构化查询语言)是用于管理和处理关系数据库的标准编程语言。SQL Server是一款由Microsoft公司开发的数据库管理系统,它提供了全面的数据...
JAVA之连接MySQL数据库——测试数据库newtest.sql JAVA之连接MySQL数据库——测试数据库newtest.sql JAVA之连接MySQL数据库——测试数据库newtest.sql
《数据库应用技术——SQL Server 2005篇(第2版)》是一部全面解析SQL Server 2005的教程,旨在帮助学习者掌握这一强大的关系型数据库管理系统。SQL Server 2005作为微软公司开发的重要产品,广泛应用于企业级数据存储...