Oracle基础教程

简介: Oracle Database,又名 Oracle RDBMS,简称 Oracle。Oracle 数据库系统是美国 Oracle 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(client/server)或B/S体系结构的数据库之一,比如 SilverStream 就是基于数据库的一种中间件。Oracle 数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系型数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能,但它的所有知识,只要在一种机型上学习了 Oracle 知识,便能在各

Oracle基础教程

创建表空间

CREATE tablespace helloOracle2 datafile 'E:\OracleTest\OracleTest.dbf' SIZE 5m autoextend ON next 5m

创建表空间

CREATE USER litch IDENTIFIED BY 123456 DEFAULT tablespace helloOracle2

赋予权限

GRANT dba to LITCH;

创建表

--字符型 char,varchar2,LONG
--数值型 number(5)最大为99999,number(5,2)最大为999.99
--日期型 DATE ,timestamp
--二进制型 clob (存字符4个G),blob(存声音图形视频4个G)
create table helloworld(
id number primary key,
name VARCHAR2(20),
address NUMBER,
phone NUMBER,
time DATE
)

插入一条数据

insert into HELLOWORLD (ID,Time) values (123,SYSDATE);

更新一条数据

update helloworld set id = 12 where id =123

删除数据(可回滚)

delete from helloworld where id =12

添加字段

alter table helloworld add(sex VARCHAR2(5))

修改列名

alter table helloworld rename COLUMN sex to hobby

修改表的属性

alter table helloworld modify (hobby VARCHAR2(10))

修改字段长度

alter table helloworld modify (hobby VARCHAR2(30))

修改表名

alter table helloworld rename to test

删表(不可回滚)

truncate table helloworld

显示用户

select user from dual

修改用户密码

alter user LITCH identified by 123456

赋予修改、查询,删除,更新表的权限

grant all on LITCH.HELLOWORLD to LITCH

收回权限

revoke all on LITCH.HELLOWORLD from LITCH

将从其它表中选择数据并将其插入另一个表中

insert into test(id,time) select id from helloworld 

把一个表的数据插入多表(无条件)

insert all 
into test(address) values ('上窑村')
into test2(address) values ('武江')
select id,address from helloworld

把一个表的数据插入多表(有条件)

insert all 
    when id =222 then 
    into helloworld values (id,address,name,hobby,time,phone)
    when id =111 then
    into test2 values (id,address,name,hobby,time,phone)
    select id,address,name,hobby,time,phone from test

复制表结构创建表(连带数据)

create table test2 as select * from test 

复制表结构创建表(不带数据)

create table test3 as select * from test2 where 1=2

insert插入结果集

insert into test select * from test2

update操作

update test set address=1233333 where id = 111

删除A表id为1的值,同时删除B表外键ID=1的值,只需要在建表时设置外键删除关联即可

CREATE TABLE order_items 
(
    id NUMBER(12), 
    FOREIGN KEY(id) 
    ON DELETE CASCADE
);

查询消重

select DISTINCT address from test

查询空值

select * from test where hobby is NULL

查询非空值

select * from test where hobby  is not null

in使用

select * from test where address in('北京','上海')
select * from test where address not in ('广东')

删除某列的所有数据

update TEST set ADDRESS=null

between用法

select * from test where id BETWEEN 111 and 132

union用法

select id from test UNION All select id from HELLOWORLD

内连接

select TEST.ADDRESS from test JOIN TEST2 on TEST.ID=TEST2.ID

外连接(左连接、右连接)

select TEST.ADDRESS from test LEFT JOIN TEST2 on TEST.ID =TEST2.ID;
select TEST.ADDRESS from test right JOIN TEST2 on TEST.ID =TEST2.ID;

查询前面3条数据,类似于limit,但是oracle没有limit语法

SELECT * FROM TEST where ROWNUM<4

子查询的子查询

select id,name from test where id in (select id from test2 where id in (select id from test3 where id = 222))

排序

select id from test ORDER BY id asc --desc

分组

select name from test GROUP BY test.NAME

having

select name from test GROUP BY name having name ='123123'

新增列

alter table test add test VARCHAR2(20)

删除列

alter table test drop COLUMN test

索引

CREATE INDEX user_index ON TEST (id);

存储过程1

create or replace procedure myDemo1
as
begin
  dbms_output.put_line('hello word, my name is stored procedure');
end;

调用存储过程

DECLARE
begin
myDemo1;
end;
call myDemo1();

存储过程2(变量声明,赋值)

create or replace PROCEDURE myDemo2
as name varchar2(10);
age int;
begin
    name:='小明';
    age:=18;
    dbms_output.put_line('name='||name||',age='||age);
    end;

存储过程2(带有参数的存储过程)

create or replace PROCEDURE myDemo3(name in varchar2,age in int)
as 
begin 
dbms_output.put_line('name='||name||',age='||age);
end;
begin 
myDemo3('小明',12);
end;

增删改查存储过程

create or REPLACE procedure myDemo4(ID in NUMBER,NAME in VARCHAR2,ADDRESS in VARCHAR2,PHONE in NUMBER,HOBBY in VARCHAR2)
as 
begin
insert into test(ID,NAME,ADDRESS,PHONE,HOBBY)values(ID,NAME,ADDRESS,PHONE,HOBBY);
commit;
end;
begin
myDemo4(6666,'存储过程','韶关','13222222','研究技术');
end;

调用存储过程

call myDemo4(7777,'存储过程调用','韶关','13222222','研究技术')

分页查询

select id,address,rownum from TEST where ROWNUM<6;

每页显示m条数据,查询第n页数据

(  select * from (select rownum r,e. * from 要分页的表 e where rownum<=m*n) t where r>m*n-m ;)
select * from(select ROWNUM r ,t.* from (select * from TEST ORDER BY ID) t where ROWNUM<=4*2)where r>4*2-4
相关文章
|
8月前
|
Oracle 关系型数据库 数据库
|
Oracle 关系型数据库 数据库
百度搜索:蓝易云【docker部署并配置oracle12c的cdb和pdb教程!】
以上是使用Docker部署和配置Oracle 12c CDB和PDB的简要教程。请注意,这只是一个概述,并且可能需要根据你的实际情况进行适当的调整和配置。建议参考Oracle官方文档和相关资源,以获得更详细和全面的指导。
150 2
|
3月前
|
Oracle 关系型数据库 网络安全
Oracle 19c 安装教程学习
Oracle 19c 安装教程学习
133 2
|
8月前
|
SQL Oracle 安全
Oracle11g更改数据库名(详细教程)
Oracle11g更改数据库名(详细教程)
386 1
|
5月前
|
Oracle 网络协议 安全
Oracle 11g DataGuard搭建保姆级教程
Oracle 11g DataGuard搭建保姆级教程
338 4
|
5月前
|
SQL Oracle 关系型数据库
Oracle 11g 打PSU补丁教程
Oracle 11g 打PSU补丁教程
188 2
|
6月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
497 3
|
7月前
|
SQL Oracle 关系型数据库
Oracle数据库基础教程:从安装到基本操作的全面介绍
Oracle数据库基础教程:从安装到基本操作的全面介绍
279 10
|
7月前
|
Oracle 关系型数据库 Java
Oracle数据库教程*
Oracle数据库教程*
|
6月前
|
Oracle 关系型数据库 Java
Oracle数据库教程
Oracle数据库教程

推荐镜像

更多