如何学习Oracle

今如何学习Oracle天给大家带来的是怎么学Oracle,其实Oracle并不算太难,只要掌握技巧。好了,废话不多说,咱来看看博主怎么说吧!

我主要从六个方面来学习:

  1. 基本入门
  2. 数据管理
  3. 内置函数
  4. 使用pl/sql
  5. 游标
  6. 触发器

基本入门

学习的开始当然是认识软件啦,我下的是PLSQLDeveloper,如下图:

0b2c3f5018954dd0a4b6a593f63ecf7b.jpg

 打开之后需要进行登录,有不同的身份,当然也对应着不同的权限。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6I-y5LuUeW8=,size_20,color_FFFFFF,t_70,g_se,x_16

 这是内置用户,我们可以进行登录从而进行下一步的学习。那有人会问了,难道基本除了了解软件没有别的了吗?当然不行(▼皿▼#)第一天这么简单咋行嘞,我们还得学会下面的内容:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6I-y5LuUeW8=,size_20,color_FFFFFF,t_70,g_se,x_16

代码如下:

--创建表空间:
create tablespace pf_spc
datafile 'D:\A_Oracle课程\oracle\pf.dbf'--存储在自己下载的oracle
size 20m --初始大小

--将表空间分配给用户
create user pf
identified by "pf123"
default tablespace pf_spc

--登录(登录是要授权的)
--代码授权:connect(连接权限)  resource(资源权限)
grant connect,resource to pf
--收回权限:
revoke resource from 用户名

--界面版
--代码版
alter user pf account unlock--解锁
alter user pf account lock--锁住


 数据管理

数据管理顾名思义就是对数据进行管理,也就是增、删、改、查,如果学过sql,那你会发现其实与sql的增删改查语句差不多,咱话也不多说,直接上代码直观的感受一下。

--数据类型

varchar2(255) --字符串
number --数字
date --日期

char(200) --长度不可变
varchar2(200) --长度可变
long --超大文本

number(5,2)  111.00  --数字类型


select * from dept;

-- 所有的查询必须的有from
select 'abc' from dual;-- 伪表
select a.*,rownum from dept a;-- 伪列


--新建表空间
--新建用户
--授权用户
--撤权用户

--新建表
create table student(
    stu_id number primary key,
  stu_name varchar2(200) not null,
  stu_sex char(3) not null,
  stu_birthday date
);

--插入数据
insert into student values(1,'小明','男',to_date('2020/1/1','yyyy/mm/dd'))
insert into student values(2,'小黑','男',to_date('2020-1-1','yyyy-mm-dd'))
--日期不能直接使用字符串  需要用to_date进行转换 格式要一致

--插入数据(union)
insert into student 
select 5,'小绿','男',to_date('2020/1/1','yyyy/mm/dd') from dual
union --联合
select 6,'小白','男',to_date('2020/1/1','yyyy/mm/dd') from dual;

--修改数据
UPDATE STUDENT SET STU_NAME='AA' WHERE STU_ID=6;

COMMIT;--提交

--删除数据
DELETE FROM STUDENT;

ROLLBACK;--回滚 事务

--删除表
DROP TABLE STUDENT;

--删除表中的数据

--复制表
CREATE TABLE STU_BAK
AS
SELECT * FROM STUDENT;

SELECT * FROM STU_BAK01;

--复制表(只复制结构)
CREATE TABLE STU_BAK01
AS
SELECT * FROM STUDENT WHERE 2=4;


--查看emp表
SELECT * FROM EMP;

--给emp表取别名
SELECT A.ENAME FROM EMP A;

--只查看emp表的员工名字

--给ename列取中文别名
SELECT A.ENAME AS 名字 FROM EMP A;
SELECT A.ENAME 名字 FROM EMP A;

--查看emp表中员工的职业信息
SELECT DISTINCT JOB FROM EMP;

--查询emp表中职业为CLERK的员工信息
SELECT * FROM EMP WHERE JOB ='CLERK';

--查询emp表中职业为CLERK或SALESMAN的员工信息
SELECT * FROM EMP WHERE JOB='CLERK' OR JOB='SALESMAN'
 
--查询emp表中名字带S的员工信息
SELECT * FROM EMP WHERE ENAME LIKE '%S%'

--查询emp表中名字以S开头的员工信息
SELECT * FROM EMP WHERE ENAME LIKE 'S%'

--查询emp表中名字以S开头且名字为五个字的员工信息
SELECT * FROM EMP WHERE ENAME LIKE 'S____'

--查询emp表中职业为CLERK且工资大于1000的员工信息
SELECT * FROM EMP WHERE JOB='CLERK' AND SAL>1000

--查询emp表中每个员的收益(薪水+奖金)
-- ISNULL() SQLSERVER
-- NVL() ORACLE
SELECT SAL+NVL(COMM,0) FROM EMP

--将emp表中的员工名字和职业连接起来(查询成1列)
-- || 连接               
SELECT ENAME||'-'||JOB 职业信息 FROM EMP

--查看emp表中没有奖金的人
SELECT * FROM EMP WHERE COMM IS NULL

--查看emp表中有奖金的人
SELECT * FROM EMP WHERE COMM IS NOT NULL

--按照emp表中的工资升序排列数据
SELECT * FROM EMP ORDER BY SAL ASC

--按照emp表中的工资降序排列数据
SELECT * FROM EMP ORDER BY SAL DESC

--按照emp表中的 部门降序 工资升序 排列数据 
SELECT * FROM EMP ORDER BY DEPTNO DESC,SAL ASC

--求工资最高的人
SELECT B.*,ROWNUM FROM  (
       SELECT A.*,ROWNUM C  FROM EMP A ORDER BY SAL DESC
) B WHERE ROWNUM=1

--求工资排列中(升序)的前三人
SELECT B.*,ROWNUM FROM  (
       SELECT * FROM EMP A ORDER BY SAL DESC
) B WHERE ROWNUM<4

-- ROWNUM可以用于小于 
-- 还可以用于等于  但是等于只能为1


--求工资排列中(升序)的前三到六人
-- 伪列不好使用,将它变成实列

SELECT * FROM (
  SELECT B.*,ROWNUM C FROM  (
         SELECT A.*  FROM EMP A ORDER BY SAL DESC
  ) B
) D WHERE C BETWEEN 4 AND 6

认真看完上面的的题目并跟着思考一遍,是否觉得有对Oracle的数据管理有更深的认识了呢?让我们继续往下了解吧!


内置函数

Oracle 提供一系列用于执行特定操作的函数

SQL 函数带有一个或多个参数并返回一个值

以下是SQL函数的分类:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6I-y5LuUeW8=,size_20,color_FFFFFF,t_70,g_se,x_16

 日期函数对日期值进行运算,并生成日期数据类型或数值类型的结果

日期函数包括:

  • ADD_MONTHS
  • MONTHS_BETWEEN
  • LAST_DAY
  • ROUND
  • NEXT_DAY
  • TRUNC
  • EXTRACT

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6I-y5LuUeW8=,size_20,color_FFFFFF,t_70,g_se,x_16

 以下是一些其它的字符函数

  • CHR和ASCII
  • LPAD和RPAD
  • TRIM
  • LENGTH
  • DECODE

SQL> SELECT LENGTH('frances') FROM dual;

SQL> SELECT vencode, 

     DECODE(venname,'frances','Francis') name 

     FROM vendor_master WHERE vencode='v001';

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值