SQL数据操作和查询
1、Oracle中可以把查询的结果根据结果集中的表结构和数据形成一张新表。
CREATE TABLE 表名 AS SELECT语句,例如:
CREATE TABLE INFOS1 AS SELECT * FROM INFOS;
使用上面命令创建的新表中,不存在任何约束,并且把查询的数据一起插入到新表中。如果只复制表结构,只需使查询的条件不成立(比如where 1=2),就不会查询从出任何数据,从而复制一个表结构。
2、INSERT 向表中插入一个结果集
INSERT INTO INFOS2 SELECT * FROM INFOS;
在这种语法下,要求结果集中每一列的数据类型必须与表中的每一列的数据类型一致,结果集中的列的数量与表中的列的数量一致
3、TRUNCATE
在数据库操作中, TRUNCATE命令(是一个DDL命令)可以把表中的所有数据一次性全部删除,语法是:
TRUNCATE TABLE 表名
TRUNCATE和DELETE都能把表中的数据全部删除,他们的区别是:
①. TRUNCATE是DDL命令,删除的数据不能恢复;DELETE命令是DML命令,删除后的数据可以通过日志文件恢复。
②. 如果一个表中数据记录很多,TRUNCATE相对DELETE速度快。
由于TRUNCATE命令比较危险,因此在实际开发中,TRUNCATE命令慎用。
4、算数运算
Oracle中的算术运算符,没有C#中的算术运算符丰富,只有+、-、*、/四个,其中除号(/)的结果是浮点数。求余运算只能借助函数:MOD(x,y):返回x除以y的余数。
5、字符串连接操作符(||)
SELECT (ENAME || 'is a ' || JOB) AS "Employee Details" FROM EMP WHERE SAL>2000;
6、消除重复行
在Oracle查询中结果中,可能出现若干行相同的情况,那么可以使用DISTINCT消除重复行。具体的用法如示例:
SELECT DISTINCT 列名 FROM 表名;
7、连接查询
在SQL Server中已经学习过内联接(inner join)、外联接(outer join),外联接又分为左外联接(left outer join)和右外联接(right outer join)。Oracle中对两个表或者若干表之间的外联接用(+)表示。
① 内联接:
SELECT e.ENAME,e.JOB,e.SAL,d.DNAME FROM emp e,dept d WHERE e.deptno=d.deptno AND e.SAL>2000;
SELECT e.ENAME,e.JOB,e.SAL,d.DNAME FROM EMP e INNER JOIN DEPT d ON e.DEPTNO=d.DEPTNO WHERE e.SAL>2000
② 外联接
(+):是Oracle专用的联接符,在条件中出现在左边指右外联接,出现在右边指左外联接。如:
SELECT e.ENAME,e.JOB,e.SAL,d.DNAME FROM EMP e ,DEPT d WHERE e.DEPTNO(+)=d.DEPTNO
SELECT e.ENAME,e.JOB,e.SAL,d.DNAME FROM EMP e RIGHT OUTER JOIN DEPT d ON e.DEPTNO=d.DEPTNO
最新文章
- xcode8 关闭控制台打印不用信息
- flume与kafka整合
- 【 D3.js 入门系列 --- 4 】 如何使用scale(比例)
- js定时器调用参数的方法
- Redis集群环境的部署记录
- ASP.NET-FineUI开发实践-3
- 在SPItemEventReceiver中使用BeforeProperties和AfterProperties
- Kendo UI开发教程(6): Kendo DataSource 概述
- Extjs的GridPanel分页前后台完整代码实例
- JavaScript简单重写构造器的原型
- Ubuntu 18.04 安装部署Net Core、Nginx全过程
- 通配符的匹配很全面, 但无法找到元素 'xxxxxxxx'
- hdu 2364 Escape【模拟优先队列】【bfs】
- Eclipse Neon安装指导
- 【转帖】(一)unity4.6Ugui中文教程文档-------概要
- 成功解决JSP和Servlet的中文乱码问题
- SqlAlchemy 中操作数据库时session和scoped_session的区别(源码分析)
- bzoj4518: [Sdoi2016]征途(DP+决策单调性分治优化)
- Win10易升是什么?如何彻底关闭Windows10易升?
- DHCP(二)
热门文章
- 谱多流形聚类SMMC
- Oracle On 、Where、Having 区别
- Tomcat 内存溢出对应解决方式
- 【分布式协调器】Paxos的工程实现-Cocklebur状态转移
- Python __init__.py 作用详解
- 创业这三年¥.NET之尴尬处境
- 使用Spring Sleuth和Zipkin跟踪微服务
- 高端大气上档次Ergotron Neo-Flex+MBP Retina的组合~
- [POJ3696]The Luckiest number(数论)
- C#实现每隔一段时间执行代码(多线程)