oralce笔记 - 修改版 - 图文

2020-05-05 15:57

Oracle笔记 韩顺平主讲

oracle数据库的概念和其它数据库的区别

oracle一个实例就相当于一个数据库。启动oracle就是启动一个oracle服务也就是启动一个oracle实例,也就是启动单个数据库,启动后就只能看到一个实例(一个数据库)。如果需要多个数据库,那么就需要再次安装oracle,就会有多个oracle服务,就要启动多个oracle服务,就能看到多个oracle实例也就多个oracle数据库。安装oracle说白了就是安装一个oracle服务(安装一个oracle实例)。用管理员用户登录只能看到一个数据库。 安装oracle实例就自动默认了三个用户sys、system、scott。用这三个用户登录都只能看到一个数据库实例。这个数据库实例里有很多表、视图、触发器、存储过程等等,这些东西在oracle数据库里称为数据对象。oracle通过权限控制来实现不同用户登录后,看到的数据对象(表、视图等等)是不同的,也就是不同用户拥有的权限是不同的。 sys是超级用户,拥有最高的权限。system是管理员用户,权限比sys低一些。scott是普通用户。

而sqlserver数据库启动后,就启动了多个数据库,用系统管理员用户登录就可以看到多个数据库。启动数据库就是启动所有的数据库。

这就是oracle数据库和一般数据库的区别,有点绕口,需要仔细分析。 除。

oracle最好的第三方软件

pl/sql developer

sql/plus常用命令

一 连接命令conn:

conn 用户名/密码@网络服务名 如果当特权用户身份连接时,必须带上as sysdba或as sysoper。sysdba代表超级用户,sysoper代表管理员用户。 应用一:切换用户 当你已经登录了,如果想用另外一个用户登录,可以先退出再登录,这样很麻烦,我们可以:conn system/manager,这样就可以以system用户登录。如果用conn连接时用户名或密码输入错了,这样就报错了,需要重新登录oracle。 二 修改密码: 如果要修改别人的密码,必须用sys或system登录。 登录后,输入passw命令,提示输入旧密码,输入后提示输入新密码,再次提示输入新密码,然后提示修改成功。 三 显示当前用户名:show user 四 退出命令:exit 五 运行sql脚本 @ d:\\a.sql或者start d:\\a.sql 注意:@和start后面要空格。 六 将sqlplus屏幕上的内容输出到指定文件中: spool d:\\b.sql 并再次输入spool off。 七 设置显示行的宽带,默认是80个字符

show linesize 当然也可以设置90个字符或其他:set linesize 90 八 设置每页显示的记录数

韩顺平主讲

set pagesize 8 每页显示8条记录。这个功能是为了打印报表时设置的,因为报表都是有固定的显示格式。 oracle用户管理 一 创建用户

创建用户必须用管理员或超级用户来创建,普通用户是无法创建用户的。 create user xiaoming identified by m123

创建用户名是xiaoming,密码:m123。create user是关键字,identified by也是关键字。 二 修改密码

password 用户名,就会提示更改用户名的密码。(修改别人的密码需要是超级用户和管理员用户),可以修改自己的密码。 三 删除用户

用户不能删除自身用户,必须是超级用户和管理员用户才能删除用户。

drop user 用户名,如果用户创建了表则需要加参数:drop user 用户名 cascade 四 用户管理综合案例

创建的新用户是没有任何权限的,甚至连登陆到数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限的命令是:grant,回收权限使用的命令:revoke。 设置权限必须是超级用户和管理员用户。 grant connect to xiaoming 为xiaoming用户设置权限。 注意:connect准确来讲不是权限,而是角色。

oracle事先定义了一些权限的东西,大概有一百四十多种权限。比如政府官员的级别就事先定义好了:县长、市长、省长。

权限又分为两种:系统权限和对象权限。系统权限:是用户对数据库访问的相关权限。对象权限:用户对其他用户数据对象访问的权限。

数据对象说白了就是用户创建的表、视图、触发器、存储过程等等都称为数据对象。 角色:它类似于批量授权,oracle默认创建一个connect角色,把一个新建用户所需要的一些级基本权限(从系统权限里挑出一部分)放到connect角色里,这个角色代表了一部分权限。connect包含了七种权限。

角色又分两种:预定义角色和自定义角色。预定义角色是按照oracle时就定义好了,比如connect角色就是预定义角色。自定义角色就是后来灵活定义的角色(也就是灵活定义一部分权限的集合)。

韩顺平主讲

注意:create session权限就是登陆数据库的权限。

oracle的权限不是直接赋给用户,而是先将权限赋给角色,再将角色授予用户,这样呢用户就可以拥有一系列的权限。

oracle有个预定义角色dba,千万不要随便把dba角色授予给普通用户,如果授予了,那么普通用户就拥有了超级用户的权限(DBA的权限)。

resource角色,它的权限是可以在这个用户的表空间创建表。dba角色包含了connect和resource等一系列的角色的权限。

xiaoming用户可以去查询scott用户的emp表吗?是可以的,但是需要对象权限。什么是对象权限呢?对象权限:当前用户对其他用户的数据对象操作的权限。比如当前用户查看别的用户创建的表、视图、触发器、存储过程等等的权限。

对象权限常有:select、insert、update、delete、all(所有权限)、create index等等。

对象权限的应用:(超级用户、管理员、创建表的用户,只有这三个用户才可以授权对象权限)

grant select on emp to xiaoming 将emp表读的权限授予给xiaoming用户。

比如上面是scott用户授权给xiaoming,那么再用xiaoming登录后需要用以下查询:

select * from scott.emp; 注意:在表名前一定要加上scott,这表示查询scott用户的emp表。这又引出了一个概念:方案。这个scott从oracle数据库术语上讲是方案。

如果用xiaoming用户登录,直接select * from emp;查询是查不到的,这样只能查询xiaoming用户自己创建的表emp。

oracle管理机制和其它数据库是不一样的,oracle是以用户为单位来组织的,每个用户都可以在自己的表空间创建自己的表。

韩顺平主讲

收回权限:revoke select on emp from xiaoming 收回xiaoming对emp表的查询权限。注意:收回权限也是只能是超级用户、管理员用户、创建表的用户。 五 对权限的维护

场景案例:希望xiaoming用户可以去查询scott用户的emp表,还希望xiaoming用户可以把这个权限继续给别人。

如果是对象权限:用scott用户或sys或system用户登录,然后对xiaoming进行授权并继续给别人:grant select on emp to xiaoming with grant option; 比如再创建一个新用户xiaohong,并先对xiaohong授予connect角色,让它能登录到数据库。因为上面我们已经对xiaoming用户进行了权限继续传递,所以我们可以在xiaoming用户登录,然后对xiaohong进行授权(授予角色)。

grant select on scott.emp to xiaoming 注意:表前面要加上scott用户,因为这个表是scott用户创建的,这个还是方案的概念。

当然了,如果登录scott用户对xiaohong授权,就可以不用写scott了。

如果是系统权限:grant connect to xiaoming with admin option;如果sys或system用户给某个用户授角色时加了with admin option,那就是让权限继续从xiaoming用户继续传递,也就是说用xiaoming用户登录后,也可以对其它用户进行权限的授予(角色授予)。

注意:如果scott用户授予一个角色给xiaoming,而xiaoming又传递给了xiaohong,那么当scott用户将xiaoming的角色权限收回了,那么xiaohong还有传递过来的角色权限吗?经过实际测试,xiaohong用户的角色权限也被收回了。 oracle表的管理

表名和列名的命名规则:字母开头、长度不能超过30字符、不能使用oracle关键字、可以用$、#、a-z、A-Z字符。 数据类型字符型

char:定长,最大2000个字符。定长的意思是:比如我们定义一个字段类型char(10),表示10个字符,存入数据后,如果你实际的数据小于10个字符,那么数据库里也会按10个字符来存储,在数据库里后面补空格。当然如果存入的数据大于定义的10个字符,则存储就会报错。char的缺点是浪费空间,但是优点是查询数据效率很高。

注意:如果一个字段的长度是固定的,或只有几种长度,而且经常要查询这个字段,那么就建议定义成char,这样查询速度特别快。比如身份证号码只有15和18位两种,而且公安系统总是需要以身份证号码字段查询,就需要定义char,提供查询效率。

varchar2:最大4000字符,可变长,可以节省空间,但查询效率低。比如我们定义了varchar2(20),而实际存储的数据更长或更短,varchar2类型的字段都会自动变长或变短,它的数据长度就是实际数据的长度。 clob(character large objiect):字符型大对象,最大4G。 数据类型数字型

number:表示范围-10的38方到10的38次方。 number(5,2):表示一个小数有5位有效数,2位小数,范围:-999.99-999.99 number(5):表示一个5位整数,范围:-99999-99999

数据类型日期类型

date:包含年月日时分秒

韩顺平主讲

timestamp:这是oracle9i对date数据类型的扩展,时间差。精度比date高一些。

数据类型图片视频音频

blob:二进制数据,可以存放图片、声音,最大4G。

在实际项目中,一般不会将视频等放在数据库里,而是存放她们的路径而已。

oracle创建表

create table student( xh number(4), xm varchar2(20), sex char(2), birthday date, sal number(7,2) );

create table classes( classId number(2), cname varchar2(40) );

表空间概念

oracle数据库可以在磁盘上创建很多表空间,而我们创建的数据库表必须放在表空间里,我们还可以指定将表放在哪个表空间里。表空间就好像是一个文件夹,用来存放数据库表的。表空间也是为了管理表的。 oracle表的修改

一 增加字段:为student表增加一个classId字段,类型是number alter table student add (classId number(2)); 二 修改字段的长度

alter table student modify (xm varchar2(30)); 三 修改字段的类型(注意:里面不能有数据)

alter table student modify (xm char(30)); 四 删除一个字段:删除sal字段

alter table student drop column sal; 五 修改表的名字:将student表改为stu rename student to stu; 六 删除表

drop table student;

oracle表添加数据

一 所有字段都插入数据 insert into student values (?A001?, ?张三?, ?男?,?01-5月-05?,10 ); 注意:oracle默认日期格式是?DD-MON-YY?,dd是天,mon是月份,yy是两位的年。月份必须加上汉字月。但是我们修改日期的格式:

alter session set nls_date_format = ‘yyyy-mm-dd’; 这就是中国人习惯的日期的格式。

韩顺平主讲


oralce笔记 - 修改版 - 图文.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:小初高学习八年级数学下册 7.1 普查与抽样调查限时作业1(无答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: