ORACLE 入门

这篇博客介绍了Oracle数据库的基础知识,包括如何登陆、数据类型、表的创建与查询,深入讲解了函数、表的备份与恢复(逻辑与物理备份的区别),数据字典、表空间、约束、索引、触发器和PL/SQL的使用。最后,还涵盖了问题解决的查询示例。
摘要由CSDN通过智能技术生成

1.登陆

Oracle安装会自动的生成sys用户和system用户

(1)、sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install

(2)、system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是manager

(3)、一般讲,对数据库维护,使用system用户登录就可以拉

注意:也就是说syssystem这两个用户最大的区别是在于有没有create database的权限。

sys用户以sqlplus  /as sysdba方式登录时,采用的是操作系统验证的方式,所以用户名、密码输入与不输入是一样的

查询当前登录用户:

显示当前用户:

切换用户

conn 用户名/密码@网络服务名 [as sysdba/sysoper] 特权用户连接是需要带上

disc/disconn/disconnect该命令用来断开与当前数据库的连接

解锁用户

SQL> Alter user acc01 account lock;  // 加锁

SQL> Alter user acc01 account unlock;  // 解锁

创建用户

create user username identified by password

 

用户权限授权、角色管理

权限分类:

1.系统权限:DBA( 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构)、RESOURCE(只可以创建实体,不可以创建数据库结构)、CONNECT(只可以登录Oracle,不可以创建实体,不可以创建数据库结构)

=====系统权限补充=========

Oracle提供了100多种系统权限,常用的有:

create session 连接数据库 
create table 建表
create view 建视图 
create public synonym 建同义词
create procedure 建过程、函数、包 
create trigger 建触发器
create cluster 建簇

显示所有系统权限:可以查询数据字典视图system_privilege_map

select * from system_privilege_map order by name;

==========================

2.实体权限(对象权限):用户可以直接访问自己方案的对象,但是如果要访问别的方案的对象,则必须具有对象的权限,比如smith用户要访问scott.emp表(scott:方案 ,emp:表

select, update, insert, alter, index, delete, reference(引用),execute(执行),all  //all包括所有权限

显示用户或者角色所具有的对象权限

可以查询数据字典视图dba_tab_privs

SQL> select distinct privilege from dba_tab_privs;
SQL> select grantor, owner, table_name, privilege from

 dba_tab_privs where grantee = 'BLAKE';

------------------------------------------------------------------------------------------------------

角色管理:

1.创建角色

验证的方式:create role 角色名 not identified;

不验证的方式:create role 角色名 identified by 密码;

2.角色赋予权限:

方法1:(1.登录权限2.使用表空间权限3-6:增删改查权限)

方法2:使用数据库本身的角色

注意:系统权限的unlimited tablespace和对象权限的with grant option选项是不能授予角色的。

普通开发者拥有connect角色(create session登录)、resource角色(create cluster聚簇 procedure过程 sequence序列 table表 trigger触发器 type 类型 及删改查功能 不包含创建视图权限)就可以了。

3.授予角色给用户(要有grant any role 权限)  grant role1 to user1;

4.删除角色(要有drop any role权限)

SQL> drop role 角色名;

5.显示角色信息

显示所有角色:select * from dba_roles;

显示角色具有的系统权限:select * from role_sys_privs;

显示角色具有的对象权限:select distinct privilege from dba_tab_privs;

显示用户具有的角色及默认角色:select granted_role, default_role from dba_role_privs where grantee = ‘用户名’;

---------------------------------------------------------------------------------------------------

3.查看

查看用户角色 select * from user_role_privs; 使用dba_role_privs不行是为什么呢(sys用户可以用,是因为user开头的返回当前用户对应方案的所有表,dba开头的显示所有方案拥有的数据库表但是用户必须是dba角色,如7.1数据字典所述)?

查看当前用户的权限 select * from session_privs;

------------------------------------------------------------------------------------------------------

4.权限传递与回收

1、with admin option用于系统权限授权,with grant option用于对象授权。

2、with admin option:,此用户可把此系统权限授予其他用户或角色,但收回这个用户的系统权限时,这个用户已经授予其他用户或角色的此系统权限不会因传播无效(不可以级联回收),如授予A系统权限create session with admin option,然后A又把create session权限授予B,但管理员收回A的create session权限时,B依然拥有create session的权限,但管理员可以显式收回B create session的权限,即直接revoke create session from B.

 

with grant option:被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with grant option授权的用户对象权限时,权限会因传播而失效(级联回收),如grant select on table with grant option to A,A用户把此权限授予B,但管理员收回A的权限时,B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。

 

用户其他命令

1.修改用户密码  passw 或 (password 用户名) 或

                alter user 用户名 identified by 新密码

2.删除用户 drop user 用户名 [cascade 参数用户将用户跟表一同删除]

2.显示当前用户名  show user

3.断开数据库链接  exit

4.清空屏幕 clear screen

Plsql连接数据库

D:\software\oracle\app\oracle\product\11.2.0\server\network\ADMIN中tnsnames.ora文件中配置链接地址,再由plsql登录窗口进行访问

profile

用户口令管理

     

 

2.数据类型

数据类型

字符串类型的数据可依编码方式分成数据库字符集(CHAR/VARCHAR2/CLOB/LONG)和国际字符集(NCHAR/NVARCHAR2/NCLOB)两种。

字符串类型

CHAR

定长,默认长为1,最多存储2000字节信息,

例:CHAR(12 BYTE)  CHAR(12 CHAR)

byte:字节数据类型,有符号型,占一个字节 -128~127

char:字符数据类型,无符号型,占两个字节0~65535,一个unicode字符,可表示中文字符

VARCHAR2

变长字符串,不使用空格填充,最多存储4000字节信息

NCHAR

包含unicode格式数据的定长字符串,最多存储2000字节

NVARCHAR2

包含unicode格式数据的变长字符串,最多存储4000字节

数字类型

NUMBER(P,S)

P:有效数字位数,最多不超过38个字

S:小数的位数

INTEGER

等同于NUMBER(38,0) 整数,若有小数会被四舍五入

浮点数

BINARY_FLOAT:32位 单精度

BINARY_DOUBLE:64位 双精度

FLOAT(N)

N指示位的精度

日期类型

DATE

占7个字节  存储:世纪、年、月、日期、小时、分钟和秒

TIMESTAMP

占7或12字节   可以包含小数秒

TIMESTAMP WITH TIME ZONE    TIMESTAMP WITH LOCAL TIME ZONE

INTERVAL YEAR TO MOTH    INTERVAL DAY TO SECOND

LOB类型:

存储大型化和非结构化数据如文本、图像、视频等

CLOB

单字节和多字节数据

NCLOB

存储unicode类型数据

BLOB

存储非结构化的二进制数据大对象,一般是图像、声音、视频等文件

BFILE

二进制文件,存储在数据库外的系统文件,只读的

RAW&LONG RAW

LONG

可以存储多达2G的字符数据,建议使用CLOB代替LONG.

一个表中只有一列可以为LONG型,该列不能定义为主键或唯一约束,不能建立索引,不能出现在where子句。。。

LONG RAW

能存储2GB 的原始二进制数据(不用进行字符集转换的数据)

RAW

用于存储二进制或字符类型数据,变长二进制数据类型,这说明采用这种数据类型存储的数据不会发生字符集转换。这种类型最多可以存储2,000字节的信息

ROWID&UROWID

唯一物理记录

 

3.表

创建表

create table student (

   xh number(4), --学号

   xm varchar2(20), --姓名

   sex char(2), --性别

   birthday date, --出生日期

   sal number(7,2) --奖学金

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值