重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、如果有一定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL,但可以看动它们,你就可以跳到2。否则请先看一下数据库基础和SQL语言,不需要很深,更不需要去记忆那些复杂的SQL命令,这些可以留在以后边应用边学习、记忆。
成都创新互联公司公司2013年成立,先为宣州等服务建站,宣州等地企业,进行企业商务咨询服务。为宣州企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
2、要想学好ORACLE,首先要学习ORACLE的体系结构,现在你不需要深入理解它们,但要分清几个关键的概念: instance database, memory structure , process those files ,such as data file, control file, init parameter file etc以及database , tablespace , data file和tablespace, segmnet, extent block它们之间的关系。 当然还要分清undo tablespace redo log file等,对于很多初学者来说,能够对这些概念有个较为清晰的认识并不是一件容易的事,而这些并非Oracle的全部。
3、第2条是有关ORACLE的一些基本概念,下面要学习的是一些简单的的实际操作,就是如何去管理ORACLE数据库,当然不是管理全部的ORACLE。在此过程中你将对SQL和ORACLE体系结构有个更深入的了解。
4、到了这一步你基本上算是初步掌握了ORACLE,下面将要根据你的方向来具体学习其它的ORACLE知识了。如果你是开发人员,则需要更多地去学习PL/SQL以及DEVELOPER,而这将是一门新的课程。如果你是一名DBA,请继续。
5、现在你可以根据自己的实际情况,进行有选择的学习,也就是说下面的内容没有特别顺序要求。可以选择深入学习ORACLE的管理、备份与恢复、性能调整、网络等。当然在学习这些知识的过程中,如果有实际的工作更好,这样你可以在实际中成长,学会TROUBLE SHOOTING。
6、当然在学习的过程中,你可以在网站或论坛中与他人进行交流,可以看别人的一些经验文章,也可以自己写一些心得体会。技术进步的本身就是经验的积累和提炼过程,希望大家共同成长,欢迎大家相互交流。
oracle的体系太庞大了,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,分享下自己的学习经验。
一、定位
oracle分两大块,一块是开发,一块是管理。
开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。有点类似于程序员,需要有较强的逻辑思维和创造能力,个人觉得会比较辛苦,是青春饭J;
管理则需要对oracle数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会down掉整个数据库,相对前者来说,后者更看重经验。
二:学习
可以先直接挑本ORACLE入门看,类似ORACLE10G入门,ORACLE基础的书,不求完全懂,能看一点是一点,学习ORACLE是一个长期的过程,你在懂了一些后,再去看别的书,你会找到很多相同点,那时候就会有恍然大悟的感觉,一点点看就OK了。
多看网上视频教程、多上机实践练习相结合。
报培训班学习,可快速入门,主要是能获得很多实践经验。CUUG很不错你可以了解下,CUUG官网上也有很多oracle资源,还有免费的网络授课。
SQL语句分类:
1, select查询语句
2, DML(数据操作语言):insert update delete merge
3, DDL (数据定义语言):alter drop truncate create
4, DCL (数据控制语言):revoke grant
5, 事务控制语句:rollback savepoint commit
空值(null)
1, null:表示未定义的,未知的,空值不等于零或空格;
2, 空值: 在算数表达式中的应用,
包括空值的任何算术表达式都等于空
包括空值的连接表达式等于空字符串连接,也就是原来的字符串
使用列别名的方法:
第一种:列名 类别名
第二种:列名 as 列别名
以下三种情况在列别名两侧需要加双引号(“”)
1:列别名中包含空格
2:列别名中要求区分大小写
3:列别名中包含有特殊字符
采用双竖线“||“做链接运算符
Select distict department_id,
From employees;
区别于
Select distict department_id,job_id
From employees;
Distinct会遍历并取属性值唯一的最多的一中属性;
使用比较运算符:
字符与日期类型加单引号;
字符类型大小写敏感
日期类型格式敏感默认:dd-mm-rr 例子:01-1月-1999非01-01月-1999非01-01-1999
使用like运算符
%可以替代任意长度的字符包含零个长度
—可以代替一个字符
使用escape查找特殊符号字符。Eg:
Select employee_id,last_name,job_id,salary
From employees
Where job_id like ‘fl\_%’ESCAPE’\’;
空值排序,升序排列中排在最后,降序排列排在最开始
Nullif
比较两个值,若相等,返回空值,不等返回第一个数。
Nvl2(1,2,3)
若第一个值为空返回第三个值
不等返回第二个值
Coalesce
返回第一个不为空的参数。
1.
SELECT months_between(SYSDATE,'01-1月-00') FROM dual;
SELECT trunc(months_between(SYSDATE,'01-1月-00')) FROM dual;
SELECT round(months_between(SYSDATE,'01-1月-00')) FROM dual
SELECT round((SYSDATE-to_date('01-1月-00'))/7) FROM dual
2.
SELECT last_name
FROM employees
WHERE substr(last_name,3,1)='a'
SELECT last_name
FROM employees
WHERE instr(last_name,'a')=3
3.
SELECT TRIM('h' FROM 'hello')
FROM dual
SELECT TRIM(' Hello')
FROM dual
SELECT TRIM('b'FROM'bllb')
FROM dual
SELECT TRIM('hello ')
FROM dual
4.
SELECT salary,to_char(salary,'999,999.99')||'RMB'
FROM employees;
5.
SELECT last_name,nvl(to_char(manager_id),'No Manager')
FROM employees;
6.
SELECT to_char(hire_date,'mm/yyyy')
FROM employees
7.
SELECT last_name,salary,
(CASE
WHEN salary1000 THEN 0
WHEN salary=1000 AND salary2000 THEN salary*0.1
WHEN salary=2000 AND salary3000 THEN salary*0.15
ELSE salary*0.2
END)Tax
FROM employees
SELECT last_name,salary,
decode( trunc(salary/1000),
0,0,
1,salary*0.1,
2,salary*0.15,
salary*0.2)Tax
FROM employees
ORDER BY Tax
首先应该是学习oracle作什么用。以后工作做其他开发时会用到oracle的话,只需要学习SQL语句就可以了。SQL各数据库的一些函数可能不相同,到时查一下文档就可以。
如果是想以后做ORACLE数据库管理或ORACLE开发,那就需要学习的非常深了。数据库原理,操作系统等等都得学的。最好考一些ORACLE的认证等