Oracle Day05 集合与数据处理
1.集合
--集合操作: 并集、交集、差。
select deptno,job,sum(sal) from emp group by deptno,job
union
select deptno,to_char(null),sum(sal) from emp group by deptno
union
select to_number(null),to_char(null),sum(sal) from emp;
select deptno,job,sum(sal)
from emp
group by rollup(deptno,job);
上述两种表达结果相同。
-- 集合操作需要注意的事项:
1). 集合的所有列应该数量相同,类型相同。
2). 集合操作的结果以第一条sql语句的表头为表头。
3).集合操作尽量少用。
2.数据处理
SQL 的类型:
1). DML : 数据操作语言 insert/update/delete/select
2). DDL : 数据定义语言 create/alter/drop/truncate
3). DCL : 数据控制语言 grant(授权) revoke(移除授权)
-- insert 向表里面添加一行记录
(1)出入一行里的某些数据
insert into emp(empno,job,sal) values(2016,'SAL',8000);
(2)按照表的顺序插入一行里的所有的数据
insert into emp values(2015,'zhangsan','MANAGER',2016,'18-3月-16',5000,3000,20);
-- 自定义日期的格式
alter session set NLS_DATE_FORMAT = 'yyyy-mm-dd';
-- create 创建一个表
-- 用模板快速的创建一个表
create table testemp as select * from emp where 1= 2;
-- 快速的插入数据
insert into testemp select * from emp; -- 批量操作的时候不要加关键字
-- 创建一个没有模板的表
create table testemp1(
id number(5),
name varchar(20),
weight number(5,2)
);
-- varchar 和varchar2 都可以用来表示字符串,但是在oracle中推荐用varchar2。varchar是每一个字段固定占N个字节,不管内容是否足够N个长度;varchar2 会根据内容自己调整他的长度。
--delete 删除数据
delete from emp where empno=2016 or empno=2015;
rollback:回滚,如果你删除错误以后可以用rollback来回滚数据。
可以创建一个回滚的节点:savepoint a;
然后再回滚:rollback to a;
-- dml 可以闪回,ddl不能。
-- 格式化表 truncate
truncate table testemp;
delete 和truncate 删除数据有什么差别?
(1). delete 是逐行删除,truncate是先删除表,在重新创建一个新表
(2). delete 能够闪回(flashback),而truncate不能闪回
(3). delete 不会释放内存空间,而truncate会
(4). delete 会产生碎片,而truncate不会
(5). delete 是DML语句,truncate是一个DDL语句
(6).delete 不会真正的将数据删除,它将所有的数据移到一个叫undo表空间里面。
-- drop 操作
drop table testemp; 删除表 testemp
-- 事物: 一连串的DML,形成的一个原子操作
事物什么时候开启:
(1). 显示的开启: start transaction
(2). 隐式开启: 执行的第一个DML语句
事物什么时候关闭:
(1). 显示关闭: commit,rollback;
(2). 隐式关闭
>> 正常关闭: 执行了一个DDL操作的时候
>> 非正常关闭: 断电断网....
--导入一个脚本里的sql语句
格式: @d:/testdelete.sql;
-- 打开sql执行的时间
set timing on
-- 关闭oracle的回调显示
set feedback off;
-- update 操作
-- 从emp表更新名字为KING的工资为20000
update emp set sal=10000 where ename='KING';
--alter 修改表
-- 在emp中追加一个列 photo,数据类型为varchar2(20)。
alter table emp add photo varchar2(20);
-- 修改photo的字符串长度为50
alter table emp modify photo varchar2(50);
-- 修改photo这个列的列名为photos
alter table testemp10 rename column photo to photos;
-- 删除photos列
alter table emp drop column photos;
-- 修改emp 表名称
rename emp to testemp;
-- 删除testemp;
drop table testemp;
Oracle Day05 集合与数据处理的更多相关文章
- Oracle的集合运算符
Oracle的集合运算符有并集union.union all,交集intersect,差集minus 先建表myemp,进行集合运算的测试 create table myemp as select * ...
- 【oracle】-集合运算:UNION,UNION ALL...
在Oracle中提供了三种类型的集合操作: 并(UNION).交(INTERSECT).差(MINUS) UNION:求并,重复记录只显示一次. UNION ALL:求并集,显示所有记录信息. INT ...
- 5.创建表,使用alter进行表信息的增删改,Oracle回收站,集合运算
1 Oracle基于用户的管理方案 2 DDL语句可以管理数据库的对象有:视图 索引 序列 同义词 约束 3 创建一个表,有2个条件(1 有权限:2有表空间) Oracle给你提 ...
- oracle之集合操作函数---minus、union、intersect
集合操作符专门用于合并多条select语句的结果,包括:UNION,UNION ALL,INTERSECT,MINUS.当使用集合操作函数时,需保证数据集的字段数据类型和数目一致. 使用集合操作符需要 ...
- Oracle day05 索引_数据去重
索引 自动:当在表上定义一个primary key或者unique 约束条件时,oracle数据库自动创建一个对应的唯一索引. 手动:用户可以创建索引以加速查询 在一列或者多列上创建索引: creat ...
- Oracle day05 建表_约束
表的创建 标准的建表语法 : CREATE TABLE [schema.] table (column datatype [DEFAULT expr], ... ); 使用子查询创建表的语法 CREA ...
- day05 集合
今日进度(数据类型) 集合 内存相关 深浅拷贝 1.集合表示 1.无序 2.不重复 3.hash查找 #问题:v={}表示? set: v1=set()#空集合 v1={1,2,3,4,5} dict ...
- 修改oracle字符集合
SQL> conn /as sysdbaSQL> shutdown immediate;SQL> startup mountSQL> ALTER SYSTEM ENABLE R ...
- 【转载】Jsp页面传Json数据到服务端,转对象或集合进行数据处理
需求:1.将页面数据带到服务端并转成对象,2.将页面的集合数据带到服务端转List实现:用ajax请求传递数据,数据格式为json JS方法: testJsonMethod = function(){ ...
随机推荐
- Dubbo服务的搭建与使用
官方地址Dubbo.io Dubbo 主要功能 高并发的负载均衡,多系统的兼容合并(理解不深,不瞎掰了) Dubbo 主要组成有四部分 Zookeeper(服务注册中心) Consumer(服务消费方 ...
- openstack 装逼之路~openstack各组件关系
先来张图
- Linux下nginx生成日志自动切割
1.编辑切割日志的 shell 程序,目录自定 #vi /data/nginx/cut_nginx_log.sh 输入代码: #!/bin/bash # This script run at 00:0 ...
- [妙味JS基础]第九课:定时器管理、函数封装
知识点总结 函数封装 回调函数 实例:抖动函数 获取当前的位置 通过数组来实现,一正一负,直到恢复成0为止. 当前位置与数组中各值相加
- 利用H5新特性判断文件大小
HTML代码部分: 思路:下面代码中我利用css的z-index属性将input="file”标签隐藏在了id=btnSelect元素下面,通过触发a标签的点击后,弹出文件选择框.下面的ma ...
- 【NOIP2007提高组】字符串展开
[题外话]这道题纯粹考验耐心,某些经常调程序调到摔键盘的人可以尝试 [题外话2]除了考耐心以外完全没有什么难点 [题外话3]也许会稍微恶心一点? [题外话4]其实我是在别人军训的时候滚来更博客的简直2 ...
- 【LeetCode】456. 132 Pattern
Given a sequence of n integers a1, a2, ..., an, a 132 pattern is a subsequence ai, aj, ak such that ...
- F#中的自定义隐式转换
我们知道隐式变换在可控情况下会使代码变得简洁.熟悉C#的都知道C#中可以自定义隐式变换,例如 public class A { private int data; public static impl ...
- GROUP_CONCAT()多条数据.拼接字符串 最大长度1024
mysql cmd show variables like "group_concat_max_len"; concat 合并多条数据 成一个逗号分隔的字符串 查找mysql的配 ...
- 二、WCF应用的通信过程
注:本文为学习摘抄,原文地址:http://www.cnblogs.com/iamlilinfeng/archive/2012/09/26/2703759.html 一.概述 WCF能够建立一个跨平台 ...