Oracle笔记

发布 2021-05-11 22:34:28 阅读 6176

第四讲:sqlplus的常用管理命令,oracle的常用命令,表空间。

为什么刚刚创建的用户无法正常登陆。

这是因为oracle刚创建的用户是没有任何权限的,要求管路员给用户分配相应的权限才能登陆。比如我们给 shunping create session

如何给用户分配权限:grant create session to xioaming;

oracle 对数据库的权限分配分得很小。

oracle管理用户的原理:管理员有权分配权限、**权限与分配角色、**角色。

系统权限是和数据库管理相关的权限:如:create session , create table, create index, create view, create sequence, create trriger(触发器)

对象权限是和用户操作数据对象相关的权限,如对数据库的增删改查的操作(update,insert,delete,select)。

预定义角色:把常用的权限集中起来,形成角色。

用户创建的基本语法:create 权限/角色 to 用户名;

create user to xiaohong;

赋予权限:grant connect to xiaohong;

grant resource to xiaohong;

**权限:revoke connect from xiaohong;

revoke resource from xiaohong;

删除用户:drop user 用户名 [cascade];

当我们删除一个用户的时候,如果这个用户自己已经创建过数据对象,那么我们在删除该用户的时候需要加入[cascade]这个选项,表示把这个用户删除的同时,把该用户创建的数据对象一并删除。

方案(schema)的概念:

所以不同用户可以创建相同名字的表,因为分在不同的方案里。

小技巧:如果希望看到某个用户的方案究竟有什么数据对象,我们可以用pl\sql 登录;

方案这个概念的实际应用:

要求:请完成一个功能,让小红这个用户可以查询scott 的emp 表。

步骤:1、先用scott 登录:conn scott/tiger;

2、赋予权限:grant select[update |delete |insert| all ] on emp to xiaohong;

xiaohong 查询 scott 的 emp表时,需要。

select * from

如创建两个用户,tea,stu 现在要把scott的权限赋予tea,之后tea将自己的权限赋给stu

实现:conn scott/tiger;

grant all on to tea with grant option;

//其中with grant option 表示得到权限的用户,可以把权限继续分配。

/with admin option 表示将系统权限继续分配下去。

grant select on to stu;

/with grant option 表示得到权限的用户可以把权限继续分配下去。

/with admin option 系统权限可以继续分配下去。

使用profile文件对口令进行管理。

1)账户锁定:限制用户密码的输入洗漱。

需求:允许某个用户最多尝试登陆3次,如果3次没有成功,则所定两天,两天后才能重新登陆。

基本语法:sql>create profile 文件名 limit failed_login_attempts 3 password_lock_time 2;

sql> alter user 用户名 profile 文件名;

2)给账户解锁。

sql>alter user 用户名 account unlock;(正规的解锁方法)

3)终止口令。

为了让用户定时更改密码可以使用终止口令的指令来完成,同样这个命令也需要dba身份来操作,还有oracle可以限制用户的新密码跟旧密码不同。

如:sql>create profile 文件名limit password_life_time 10 password_grace_time 2;

sql>alter user 用户名 profile 文件名;

口令历史:概述:如果希望用户在修改密码的时候,不能再用以前使用过的密码,可以使用口令历史,这样oracle就会将口令修改的信息存放到数据字典中,这样当用户修改密码是,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。

例子:1)建立profile

sql>create profile password_history limit password_life_time 10 password_grace_time 2 passeord_reuse_time 1;

passeord_reuse_time //指定楼龄可以重用时间即10天后就需要修改。

2)分配给某个用户密码。

sql>alter user tea profile myprofile;

删除用户。概述:当不需要某个profile文件时候,可以删除该文件(这时用户就不受约束了)

sql>drop profile 文件名;

数据库的启动流程。

window 操作系统可以在控制台(dos控制台下运行)

1) lsnrctl start (启动监听)

2) oradim—startup-sid 数据库实例名。

unix操作系统/linux系统。

1) lsnstl start (启动监听)

2) sqlplus sys/change_on _install as sysdba (以sysdba身份登录,在oracle10g之后可以这样写)

sqlplus /nolog

conn sys/change_on_install as sysdba

3) startup

在cmd 窗口下输入systeminfo 可以打印出window操作系统的一些基本信息。

oracle数据类型讲解。

1)char(size) 存放字符串 ,最大2000个字符,是定长。

举例说明:name char(32) 最多只能放置32个字符,不够补空格,如果超过则报错。

数据类型有定长与变长之分。

select name,dump(name) from emp; 这个语句可以查询相应行的存放数据的情况。可以查看数定长的数据类型的存储情况。

如果知道数据的长度,应当使用char,因为这样存储速度会快很多。

如果数据的长度是不定的应该使用varchar

clob 字符型大对象,变长,最大8tb

bolb 二进制数据/或者存放**声音,变长,最大8tb,说明,我们子啊实际开发中很少把文件存放在数据库中,实际上我们一般讲记录文件通过io/网络来操作。

如果我们的要求对文件安全性比较高,可以将文件存放在数据库中。

number数据类型:

1、可以存放整数,也可以存放小数。

number是一个变长的数据类型。

如果有明确的要求保留到第几位则明确指定,如果没有则直接使用number

date时间类型,用于表示年/月/时。时/分/秒。

添加的时候要使用默认的格式日/月/年(美国人格式),如果我们希望使用自己喜欢的格式添加但是需要借助oracle的函数。

date与timestamp 的区别,timestamp当你在更新数据的时候,时间会自动更新。

查看表结构的语句:desc students;

其中删除一列不带括号,删除多列要带括号。

oracle的增删改查。

字符和日期型数据应该包含在单引号中。

oracle中‘’=null 两种空的处理是一样的或者对应列值直接不写也是默认为null值。

如果给表的每一列都加值得话可以不带列名。

insert into 表明 values (列值···

表的更新。更新一列的所有值,按一定的规律更新。

update students set fellowship=fellowship*1.1;

在使用更新,修改语句的时候千万要注意对应的列值是否操作正确,,否则可能整个数据表都会出现错误,导致严重的后果。

表的复杂查询 max,min,**g,sum,count后面可以带表达式。

max 与 min

sql> select max(sal) from emp;

max(sal)

sql> select min(sal) from emp;

min(sal)

sql> select max(sal*13+nvl(comm,0)*13) 年工资 from emp;年工资。

sql> select max(sal),min(sal) from emp;

max(sal) min(sal)

sql> select **g(sal),sum(sal) from emp;

**g(sal) sum(sal)

**g(sal)不会把null的进行统计,因此我们要注意如果我们希望为空的值也要考虑,则我们可以用第二条语句。

sql> select **g(comm) from emp;

oracle笔记

1 查看表的结构 desc tabledescription 2 set timing on 打开操作表的时间记录。3 消除重复行 distinct 4 大小写不区分的是列名,而不是里面的数据。1 可以对某一列直接进行加减乘除。两列相加。2 如果有一列为null,所得结果也为空。使用nvl函数处理n...

Oracle笔记

第1页1.oracle 的使用 1.1.sqlplus 的命令 初始化表的位置 set nls lang american 设置编码才可以使用下面脚本 cd oracle home rdbms cd demo 我们目前使用的是oralce 9i 9201 版本 select from v versi...

oracle笔记

clear 清屏。col title for a20 设置title的字符最多有20个。oracle介绍。rdbsrdb 基本的存储结构是,二维表。表头。行。列。字段。sql的分类 dsl 关键字 select dml 操作 insert delete update ddl 定义 create dr...