centos oracle 修改监听服务名_【干货8】Oracle知识总结

684b5bd03fd388fa31b68176d2076557.png
(如果我分享的干货内容对你有帮助,可以通过赞或者评论的方式告诉我,我会持续分享;或者留言你想要的IT方面的支持,我将分享大家感兴趣的IT类技术干货)

一、Oracle基础入门

数据库管理系统软件

网络数据库管理系统:

(RDBMS:关系型数据库管理系统:以表为单位来存储数据)

MySQL,SQLServer,Oracle

DB2,Informix,Sybase.......

管理,操作数据库中的数据都是通过sql(结构化查询语言)来实现的

Oracle使用(如何进Oracle11g里面的数据库)

Oracle11g:是一个Oracle数据库系统(Oracle数据库服务器)

1.在Oracle11g的系统下可以创建多个数据库

2.在安装Oracle11g的时候会自动创建一个数据库(orcl)

(如果在Oracle11g中有数据库那么需要使用相对的帐户/密码才能

进入数据库)

sys,system--->manager

oracle11g安装完成后会存在一些内置的帐户;

内置的帐户: 1.普通用户:scott--->tiger

2.管理员:sys,system

当然我们也可以创建用户

3.安装好后就会存在orcl数据库,如何进入到orcl数据库

-->需提供orcl的帐户和密码

在什么地方输入帐户和密码??

--->在数据库终端(数据库客户端工具中输入)

哪些是数据库客户端工具?

--->系统自带的客户端工具(sqlplus.exe)

--->第三方的客户端工具

(PL/SQLDeveloper,自已写的程序)

注意:

在使用oracle数据库客户端工具进入数据库之前 需要启动数据库服务及监听器(监听程序)

1>启动服务

services.msc->进入操作系统的服务面板

-->启动对应的oracle数据库服务(

在oracle中每创建一个数据库就会生成一个对应的服务;

数据库的服务名称:oracleservice+数据库名称 )

net start|stop oracleserviceservice

2>启动监听器

lsnrctl start|stop

二.Oracle数据库的结构

1>逻辑结构

数据库-->表空间-->数据段-->数据区间-->数据块

2>物理结构

数据文件(dbf):存储数据的

日志文件(log):记录数据库操作的日志信息

控制文件(ctl):记录物理文件的信息(位置,大小,创建时间)

三.如何创建自定义的用户(要使用管理员来创建)

1>创建用户

create user 用户名 identified by 密码

[default tablespace 表空间的名称]

分析:1>创建用户时,用户使用的表空间应存在,如果不存在则要先创建

表空间;

2>表空间也有内置的,也可以创建表空间

3>如果创建用户时没有指定表空间,那么该用户默认使用user表空间

eg:

javasmart/manager--->newtablespace(c:/.../javasmart.dbf)

如果用javasmart进入orcl数据库后所存储的数据在javasmart.dbf中

当新建一个新用户后,当前这个新用户还不能连接数据库;还需要管理员授权后方可连接数据库

grant connect to 新用户;

当然授权后也可以撤消权限

revoke connect from 用户

sqlplus / as sysdba

2>更改用户的表空间及密码

alter user 用户名 identified by 密码

[default tablespace 表空间的名称]

3>删除用户

drop user 用户名 [cascade]

分析:如果加上cascade表示级联删除;

4>用户锁定与解锁

锁定:alter user 用户名 account lock;

解锁:alter user 用户名 account unlock;

5>创建表空间

create tablespace 表空间的名称 datafile 数据文件 size 大小(M)

6>删除表空间

drop tablespace 表空间名称 [including datfiles and contents]

7>修改表空间

alter tablespace 表空间名称 datafile 数据文件 size 大小(m)

8.>数据库的删除

universal installer

9.>新建数据库

dbca | DataBase Configuration Assiant

第二章(cksoft-->ckedu(c:apporcloradatackedu.dbf)

数据库对象:数据库中数据的集合

对象的类型:表,视图,过程,索引,序列,同义词 ..............

数据库中表是基本的对象

一.sql语句的分类

1.DDL(数据定义语言)

作用:创建,修改,删除数据库中的对象

create/alter/drop/truncate table

2.DML(数据操纵语言)->对表的数据进行操作

select/update/delete/insert

3.DCL(数据控制语言)-->对用户进行授权与权限回收操作的

grant..to/revoke..from

数据库的权限:1>系统权限 2.对象权限

4.TCL(事务控制语言)

commit/rollback

commit:提交事务

(将缓冲区的数据写入数据文件中)

rollback:撤消(回滚)事务(撤消之前的操作;

commit后的操作是不能撤消的;

DDL语句是无法撤消的;

要想数据文件中存放数据,需要在文件中创建表

create table 表名(每个字段命名及确定每个字段的类型)

在创建表时,表的设计如何做到合理?在表设计时应遵循三大范式;

第一范式(1NF)

要求表的每个字段是不可再分的

第二范式(2NF)

要求表中的每一行数据需要提供一个惟一的标识;

因此表设计时需要设计一个数据不能重复的字段;

这个字段称之为"主键字段"

第三范式(3NF)--->消除传递依赖

一个表在引用另外一个表的主键字段后,不能将另外一个表的

非主键字段设计到该表中

Oracle的数据类型:

字符型: char(),varchar2(),

数值型: number

日期型: date(),timestamp

大对象型: cblob(大型文本数据),blob(二进制数据:图片,视频,音频)

表结构的操作

查看表结构 : desc 表名

1>添加字段

alter table 表名 add 字段名 类型;

2>修改字段的名称

alter table 表名 rename column 字段 to 新的字段名称

3>修改字段的类型

alter table 表名 modify 字段 新的数据类型

4>删除字段

alter table 表名 drop column 字段

5>更改表名称

rename 表名 to 新表名

6>删除表

drop table 表名

向表中添加数据 insert

insert into 表名[(字段名,字段名)] values(提供各个字段的数据)

查看表中的数据 select

select * from 表名 [where|order by|group by]

模糊查找: select ..from 表名 where 字段 like ...

修改数据 update

update 表名 set 字段=值,字段=值,,.... [where ]

删除数据: delete

delete from 表名 [where];

(where可以用在select,update,delete语句中,其功能是

用于筛选,where后面需要指定筛选的条件,筛选的条件可以

有多个)

删除表中的所有数据:

1>delete from 表名

2>truncate table 表名;

3>drop table 表名

三种方式的区别:

1>delete是DML,truncate table是DDL

2>delete删除后可回滚;truncate table不可以回滚

3>delete删除数据后,并不释放数据的存储空间;

truncate table删除数据后,会释放数据的存储空间;

如果要删除表中的所有数据truncate table的性能及效率高

于delete.

4>drop是删除表 所以对应的会删除表中所有的数据

DML执行增删改后需执行commit操作

第二章

约束

函数

子查询,

连接查询

伪列(rownum,rowid)

1.约束

主键:(某一个字段的值不能重复)

1>建立表时在主键字段的类型后加:primary key

2>通过修改表结构来创建主键约束

惟一:(不能重复;主键其实就是惟一约束)

check约束:(eg:年龄0-120)

alter table stuinfo add constraint checkage check (age>0 and age<=120);

alter table stuinfo add constraint checksex check (sex='男' or sex='女');

外键:(如果一个表中的字段引用另外一个表的主键,该字段称为外键

1.外键的数据类型与主键类型一致

2.外键字段的值在主键中出现过 )

alter table 表名 add constraint 约束名 约束条件;

2.函数:

聚合:sum,max,min,avg,count

(聚合函数不能做为where条件及条件的值)

日期:sysdate()

字符:instr(), substr()

转换: to_char,to_number,to_date,nvl() , decode(字段,值1,结果1,[值2,结果2]..,default);

数学:

其他:

补充:(分组,分组后的筛选,in,exists)

3.子查询:(一个dml语句中又包含查询语句)

子查询可以出现在where后,或者是from后面

4.连接查询(多表查询)

同时从多个表中查询

select * from dept,emp

1>内连接(等值连接)

2>左外连接:左边的表是主表;会显示主表中的所有记录和

从表中符合连接条件的记录

3>右外连接:右边的表是主表;会显示主表中的所有记录和

从表中符合连接条件的记录

5.rownum,rowid(伪列)

13 4 1: 1-4 2:5-8

rownum:行号,rownum是从1开始的,依次递增

作用:实现数据的分页

select * from (select rownum rn,emp.* from emp where

rownum<=当前页*每页的记录数) e

where e.rn>(当前页-1)*每页的记录数

rowid:表中每行记录的存储地址,rowid不可能重复的

作用: 可以删除重复的数据

delete Test where rowid not in(select min(rowid) from Test group by id) delete Test ts where rowid not in (select min(rowid) from Test where ts.id=id and ts.name=name )

第三章 数据库对象 同义词,序列,索引,视图

1.同义词

在oracle中数据库中的表以用户为单元组织管管理,也就是说默认情况下,一个用户无法访问另外一个用户创建 的表;如果需访问,需指定表的所属者; 管理员所属的对象默认是不向普通用户开放的

概念:就是给用户所属的对象起一个别名

语义:create [public] synonym 同义词名称 for 用户名.对象名

drop [public] synonym 同义词名称

2.序列

产生一系列数据

语法:create sequence 序列名称

[start with n]:指定序列的起始值

[increment by n]:指定序列每次增长的值

[minvalue n]:设置序列循环时的起始值

[maxvalue n]:指定序列的最大值

[cycle]:设置序列可以循环

[cache n]:设置缓存的数据大小(默认是20)

创建序列时如果没有指定任何参数,序列是从1开始,

每次增长1,没有最大值的限制

minvalue:用于设置序列循环的初始值,

如没有指定循环从1开始;minvalue的值不能大于

start with的值

1>序列的两个属性

currval:获取序列的当前值

(序列在首次使用时,不能使用currval属性,因为序列还未初始化;因此首次需通过nextval属性让序列初始化)

nextval:获取序列产生的下一个数据

3.索引

建立索引的作用:可以提高查询数据的速度,提升性能

原理: 为什么建立索引可以提高查询速度?

如果没有建立索引的情况下,会进行全表扫描,假设一张表有1000w

一旦建立索引后,就会生成一个索引页的存储结构,在数据库索引页的结构是树的结构

使用场景:

1>表的数据量比较大(1w)

2>通常对经常用做查询条件的字段建立索引

3>索引字段不是越多越好

使用索引应注意的问题

1>索引字段不是越多越好

2>如果一个增删改操作多,查询操作少,这样的表最好不要建索引

3>索引会减缓表的增删改的速度

4>建立索引后,索引不一定会生效

1>使用!= ,like

2>使用or时,前后条件字段都建立索引,索引生效

3>避免在索引字段进行计算

4>对于组合索引,同时查询通常会生效,如果不同时查询使用索引左边

的字段查询此时索引会生效

5>如果一个字段有大量的重复数据,针该字段建立索引没有太大的意义

如何建立索引:

索引字段并非越多越好,对于经常用做查询条件的字段

对于有大量重复数据的字段,创建索引是不合理的

建立索引

语法:

create index empnameIndex on 表名(字段名)

索引的分类:

普通索引:create index 索引名称 on 表名(字段名)

位图索引:create bitmap index 索引名称 on 表名(字段名)

惟一索引:create unique index 索引名称 on 表名(字段名)

主键就是一个特殊的惟一索引

组合索引:create index 索引名称 on 表名(字段1,字段2)

场景:如果经常使用多个字段同时查询

基于函数的索引:create index 索引名称 on 表名 函数

索引的不足:

减缓了数据的增,删,改的效率

4.视图

作用:通过视图可以简化数据查询操作

语法: create view 视图名 as select ..........

注意:视图对象并不存储数据; 通过查询视图得到的数据,仍然是从表中查询出来的

数据字典表:通过数据字典表可以查询数据库中各种对象的信息

user_

表示当前用户自已创建的该数据库对象

all_

表示当前用户自已创建的该数据库对象和有权限使用的数据库对象

dba_ (只有管理员才有权限)

所有的该数据库对象

user_tables,user_synonyms,user_views,

user_sequences,user_indexes

user_tablespaces

user_objects:存储数据中所能的数据库对象信息

第四章 PL/SQL程序设计

引言:使用PL/SQL其目的是为了解决复杂的数据操作;因为PL/SQL可以

将多条sql语句做为一个整体来执行,同时在执行这些语句的过程中

可以加入控制结构

如何使用PL/SQL??

PLSQL三部分组成:

[1.定义部分]

2.执行部分

(执行部分可以的内容有 :

1>.控制结构,变量的赋值

2>.sql语句:

默认只能执行insert,update,delete,select into

以及TCL;如果想在pl/sql执行部分执行DDL,DCL,select查询

应该将DDL,DCL,select查询当做动态sql来执行.

执行动态sql语句:

execute immediate '要执行的语句';

[3.异常处理部分]

如何使用变量

声明: 变量名 数据类型;

赋值: 1>变量名:=值;

2>通过select into 变量

(select into赋值时,select查询的结果应是单行的)

(数据类型:%type,%rowtype,cursor(游标)

%type: 声明变量时,让该变量和表的字段类型保持一致

%rowtype:该变量用于存储表中的一行数据

cursor:是一个查询结果集;如果需要使用一个变量存储结果集的数据

可以声明一个游标类型的变量

游标使用:

1>声明游标 declare cursor 变量 is select......

2>打开游标 open 游标变量

3>循环从游标中取数据 fetch 游标变量 into 中间变量

4>关闭游标 close 游标变量

循环游标:如果按照上述的步骤使用游标有点麻烦;使用循环游标可以简化步骤

控制结构:

条件:if ..case when .....end case

循环:

1>基本循环 loop ....end loop

2>while循环 while loop ....... end loop;

3>for循环 for loop ......... end loop;

第五章: 子程序与程序包

命名块: 有名称的PL/SQL代码块;将会以对象的形式存在数据库中;

在oracle中命名块有子程序和程序包这两种

子程序分为两种:1>过程(存储过程) 2.函数

1.过程

语法:

过程的参数可以有多个,其参数的模式可以是三种之一:

in :表示该参数是输入参数;默认是in

out :表示该参数是输出参数

in out:表示该参数即可以是输入参数也可以是输出参数

执行:

1>excute|exec 过程名;

2>匿名块

2.函数

语法:创建自定义的函数,必须指定该函数的返回类型

调用

1>select 语句中

2>匿名块

3.程序包:

管理子程序的对象,也就是说一个包中可以有若干个子程序

一个程序包由两部分组成:1>包规范 2>包体

因此在创建程序包时应分别创建包规范和包体

包规范:指程序包有那些子程序

包体:是包规范中的子程序的实现

调用:和上面一样,只是要在调用加上包名

程序包分为:内置包和自定义的包。

4.数据迁移

3-1>数据导出

exp 用户名/密码 file=**.dmp owner=用户名

3-2>数据导入

imp 用户名/密码 file=***.dmp full=y

5.调优

分析sql语句的执行计划

1.sqlplus 中

set autotrace on

set timing on

2.pl/sql developer

F5

6.Oracle和MySQL的区别

6.1.Oracle是大型数据库而Mysql是中小型数据库

6.2. Oracle支持大并发,大访问量,是OLTP最好的工具。
6.3. 安装所用的空间差别也是很大的,Mysql占用空间较小,Oracle占用空间较大,且使用 的时候Oracle占用特别大的内存空间和其他机器性能。

6.4Oracle和MySQL一些操作上的区别

1.自动增长的数据类型处理

2.单引号的处理

3.分页的sql语句处理

4.长字符串的处理

5.日期字段的处理

6.空字符的处理

7.字符串的模糊比较

7.MySQL vs Oracle操作上的区别

1.支持字段上使用auto_increment

2.支持批量添加

3>没有提供rowid,rownum

4>使用limit关键字完成分页

select * from dept limit 0,2

0:起始行的索引

2:每页显示的数量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值