------------------------ -------------------
2003-03-17 19:15:59.688 2003-03-17 19:15:59
如果只想获得1/100秒(hsecs),还可以利用dbms_utility.get_time
[Q]如果存在就更新,不存在就插入可以用一个语句实现吗
[A]9i已经支持了,是Merge,但是只支持select子查询,
如果是单条数据记录,可以写作select …… from dual的子查询。
语法为:
MERGE INTO table
USING data_source
ON (condition)
WHEN MATCHED THEN update_clause
WHEN NOT MATCHED THEN insert_clause;
如
MERGE INTO course c
USING (SELECT course_name, period,
course_hours
FROM course_updates) cu
ON (c.course_name = cu.course_name
AND c.period = cu.period)
WHEN MATCHED THEN
UPDATE
SET c.course_hours = cu.course_hours
WHEN NOT MATCHED THEN
INSERT (c.course_name, c.period,
c.course_hours)
VALUES (cu.course_name, cu.period,
cu.course_hours);
[Q]怎么实现左联,右联与外联
[A]在9i以前可以这么写:
左联:
select a.id,a.name,b.address from a,b
where a.id=b.id(+)
右联:
select a.id,a.name,b.address from a,b
where a.id(+)=b.id
外联
SELECT a.id,a.name,b.address
FROM a,b
WHERE a.id = b.id(+)
UNION
SELECT b.id,'' name,b.address
FROM b
WHERE NOT EXISTS (
SELECT * FROM a
WHERE a.id = b.id);
在9i以上,已经开始支持SQL99标准,所以,以上语句可以写成:
默认内部联结:
select a.id,a.name,b.address,c.subject
from (a inner join b on a.id=b.id)
inner join c on b.name = c.name
where other_clause
左联
select a.id,a.name,b.address
from a left outer join b on a.id=b.id
where other_clause
右联
select a.id,a.name,b.address
from a right outer join b on a.id=b.id
where other_clause
外联
select a.id,a.name,b.address
from a full outer join b on a.id=b.id
where other_clause
or
select a.id,a.name,b.address
from a full outer join b using (id)
where other_clause
分享到:
相关推荐
sql2000官方个人版.、企业版、开发版 四合一
SQLQuery4.sql
SQLJDBC和SQLJDBC4是Microsoft为Java应用程序提供的用于连接SQL Server数据库的驱动程序。这两个版本都是JDBC(Java Database Connectivity)驱动,允许Java开发者在应用程序中与SQL Server进行交互。下面将详细介绍...
sql 语句学习 sql sql sqlsql 语句学习 sql sql sql
SQL Prompt4破解 智能提示,格式化 使用说在文件包中
SQL Server驱动包`sqljdbc4.jar`是微软官方提供的Java数据库连接器(JDBC),用于在Java应用程序中与Microsoft SQL Server进行通信。JDBC是Java编程语言中的一个标准API,它使得开发人员能够以标准化的方式访问各种...
SQL 基础 SQL 首页 SQL 简介 SQL 语法 SQL select SQL distinct SQL where SQL AND & OR SQL Order By SQL insert SQL update SQL delete SQL 高级 SQL Top SQL Like SQL 通配符 SQL In SQL Between ...
"sqljdbc4-4.0.jar"就是微软官方为Java开发者提供的一款用于连接SQL Server的JDBC驱动包,它允许Java应用程序通过JDBC API与SQL Server进行通信。 首先,我们来理解一下"sqljdbc4-4.0.jar"的含义。"sqljdbc"代表这...
4. 优化SQL代码:根据分析结果,修改SQL语句,例如使用更高效的索引、优化查询结构或调整事务设置。 5. 测试和验证:在修改后,重新运行查询并监控其性能,确保优化效果符合预期。 在实际操作中,配合日志分析和...
本文将详细介绍这两个重要的驱动文件——sqljdbc.jar和sqljdbc4.jar,以及如何利用它们来建立和管理数据库连接。 首先,sqljdbc.jar和sqljdbc4.jar都是由微软官方提供的JDBC驱动程序,适用于不同版本的Java运行环境...
4. **历史记录与报告**:记录SQL语句的执行历史,生成性能报告,便于跟踪优化效果和长期性能趋势。 5. **模拟测试**:在不影响生产环境的前提下,通过模拟不同负载条件来测试SQL优化的效果。 6. **自动化优化**:...
• 适用于包含 sqljdbc.jar、sqljdbc4.jar、sqljdbc41.jar 和 sqljdbc42.jar 的 SQL Server 的 Microsoft JDBC Driver 6.0 • 适用于包含 sqljdbc.jar、sqljdbc4.jar、sqljdbc41.jar 和 sqljdbc42.jar 的 SQL ...
SQL Server 2005 SP4(Service Pack 4)是微软针对其关系型数据库管理系统SQL Server 2005发布的一个重要更新。这个服务包包含了大量的修复程序、安全更新和性能优化,旨在提高SQL Server 2005的稳定性和安全性。SP4...
`sqljdbc4-4.0.jar`是微软为SQL Server提供的一个特定版本的JDBC驱动,用于在Java应用程序中连接到SQL Server数据库。 标题中的"sqljdbc4-4.0.zip"是一个压缩包,包含了`sqljdbc4-4.0.jar`文件,这个文件是Java开发...
##通过sqlcmd执行sql文件 由于sql文件过大,超过了100M,再数据库的窗口执行,结果超出内存了,对于特别大的sql文件可以使用sqlcmd进行执行 ###1.打开cmd窗口 运行–cmd–进入到sql文件所在的文件夹。 如果是win7可...
4. **智能分析**:内置的静态代码分析工具能够检查SQL脚本中的潜在问题,如性能瓶颈、未使用的变量、不安全的动态SQL等,提前发现并解决潜在问题。 5. **集成开发环境(IDE)支持**:SQL Prompt 9可以与Visual ...
《SQLJDBC4.jar包详解:连接SQL SERVER数据库的关键组件》 在Java编程环境中,数据库的访问是不可或缺的一部分。对于Microsoft SQL Server数据库的连接,一个关键的组件就是`sqljdbc4.jar`包。这个小巧但功能强大的...
4. 性能优化:Oracle可能有更佳的性能调优策略,如索引类型、分区策略等,迁移后可能需要进一步优化。 5. 数据迁移:除了结构迁移,还要考虑数据的迁移。大容量数据的迁移可能需要分批进行,以减少对业务的影响。 ...
4. **性能分析**:内置的性能分析器可以帮助我们快速识别慢查询,提供优化建议,帮助我们写出更高效的SQL语句,从而提升数据库的运行效率。 5. **模板与片段**:预定义的SQL模板和自定义代码片段,让我们能够快速...
SQLPrompt for SQLServer2016 智能提示插件 SQL2016 提示 SQLPrompt最新版本 绿色版 SQL Prompt 是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动...