码迷,mamicode.com
首页 > 数据库 > 详细

oracle基础

时间:2015-06-14 21:23:44      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

create table emp(
empno number(4),
ename varchar2(10),
job varchar2(9),
mgr number(4),
hiredate date,
sal  number(7,2),
comm number(7,2),
deptno number(2)
)
select * from emp
drop table emp
insert into emp values(7369,‘SMITH‘,‘CLERK‘,7902,‘17-12月-80‘,800,null,20)
insert into emp values(7499,‘JONES‘,‘MANAGER‘,7839,‘02-4月-81‘,2975,NULL,30)
insert into emp values(7788,‘SCOTT‘,‘ANALYST‘,7566,‘19-4月-87‘,3000,NULL,20)
insert into emp values(7839,‘KING‘,‘PRESIDNET‘,NULL,‘17-11月-81‘,5000,NULL,30)
insert into emp values(7521,‘WARD‘,‘SALESMAN‘,7698,‘22-2月-81‘,1250,500,30)
delete from emp where job=‘salesman‘
/*查询如果为空,按照0运算*/
select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0) from emp
/*查询奖金为null的员工*/
select * from emp where comm is null
/*别名sa*/
select empno as "员工号",ename "姓名",sal 月薪,sal*12,comm,sal*12+nvl(comm,0)
from emp
/*去重操作*/
select distinct deptno from emp
/*连接符*/
select ‘hello‘ ||‘world‘ 字符串 from dual
select ‘你‘||‘好‘ 问候 from dual
/*寻找名字为king的员工*/
select * from emp where ename=‘KING‘
/*查询所有*/
select *from emp
/*查询入职日期是*/
select * from emp where hiredate =‘17-12月-80‘
/*查询薪水在1000~2000的员工*/
select * from emp where sal between 800 and 1600
/*查询名字s打头的*/
select * from emp where ename like ‘S%‘
/*查询名字是四个子的*/
select * from emp where ename like ‘____‘
/*查询名字中包含下划线的*/
select * from emp where ename like ‘%\_%‘
/*对工资进行升序*/
select * from emp order by sal*12 asc
select sal*12 from emp order by 1 desc
/*大小写转换*/
select lower(‘GAGAGA‘)转小写,upper(‘agagagaga‘)转大写,initcap(‘hellworld ‘) 首字母大写 from dual 
/*截取字母*/
select substr(‘hellowrld‘,2)子串 from dual 
/*查找位置*/
select instr(‘hellowrld‘,‘w‘) 位置 from dual
/*日期函数*/ 
select to_char(sysdate,‘yyyy-mm-dd‘) from dual
/*多行函数*/
select sum(sal) from emp
/*人数*/
select count(*) from emp
/*group by */
select deptno ,avg(sal)
from emp 
group by deptno
/*having */

select deptno from emp group by deptno 
having avg(sal) >2000

  新问题:oracle 如何插入海量数据?

  

-- 我的思路是:
 
-- Step 1: 将1T左右的文本数据分解成 100 个文本文件,并按顺序命名
--         例如:tb001.txt、tb002.txt、tb003.txt、...、tb100.txt,
--         并存放到5个(或更多)不同的磁盘中(这样并行导入的时候磁盘瓶颈相对较小)!
 
-- Step 2: 在数据库中创建 5个(或更多)表空间,创建 100个名为 tb001、tb002、tb003、...、tb100的表,且平均分配到这5个表空间(其表的字段结构跟将要导入的目标表的字段结构一样)
 
-- Step 3:用数据字典生成导入语句(控制文件及要导入的口令:
-- 每个控制文件类似如下(共100个,所以:得用数据字典生成):
 
load data
infile "tb001.txt"
append into table tb001
fields terminated by ‘,‘
(col1,
col2,
col3,
...,
colN
)
 
-- 导入口令类似如下(共100条口令,可以加个并行 执行的参数或同时执行多个口令):
sqlldr userName/password control=tb001.ctl log=D:\your_path\tb001.log bad=D:\your_path\tb001.bad errors=1000
 
-- 最后:100个表的数据插入目标表(可以先将目标表的并行度加大,希望目标表是分区表更好,且先合理安排各分区表的数据文件的位置,以尽量避免IO瓶颈)
 
insert into target_table select * from tb001;
insert into target_table select * from tb002;
...
insert into target_table select * from tb100;

  数据的完整性?

    数据库完整性(Database Integrity)是指数据库中数据的正确性和相容性。数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。
 什么是数据库的回滚?
    rollback命令
  

oracle基础

标签:

原文地址:http://www.cnblogs.com/FiyKt/p/4575682.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!