oracle笔记

发布 2021-05-11 22:15:28 阅读 7241

database笔记(oracle)

注意,在使用oracle的sqlplus的时候,一定要保证oracle的oracleservicexxx(oracleserviceorcl)启动,还有就是orackeoradb10g_home1tnslistener启动。我们在开发阶段,习惯将oracle的服务的启动方式由自动改为手动,以提高计算机的启动速度。注意,如果是手动启动,一定要在使用oracle之前,去到“服务“下手动启动oracle的服务和监听。

1)通过“开始“——运行“中输入:sqlplus

oracle的命令行窗口。

在上窗口中输入用户名和密码即可登录。

注意,在我们输入口令时,口令不会回显。一旦连接成功,我们就可以使用oracle的一系列命令了。

如何在sqlplus窗口下清屏: host cls

修改列的宽度:set linesize 800;

修给每页显示的记录数: set pagesize 50;

2)oracle的第二种命令行窗口。

注意。用户名:要访问的数据库服务中所存在的用户。

口令:该用户的密码。

主机字符串:就是oracleservice的名称,默认是当前系统中的服务,可以不写。

在该窗口中常用的操作:

清屏操作 : 按 shift + delete 弹出窗口图一窗口,按“确定”即可清屏。

图一。 如何调用之前的命令:输入 “ed” ,会弹出一个记事本缓存文件(如图二)。

我们可以在记事本缓存文件中对之前的命令进行修改。修改后保存并关闭。会弹出如图三窗口中内容。

要想执行修改后的命令,可以直接在光标处输入“/”回车即可执行之前命令。如图四。

图二。图三。

图四。3)第三种启动oracle的命令语句执行的窗口。

可以使用浏览器打开isqlplus窗口。打开浏览器,在地址栏中输入url:http:

//ip:端口号/isqlplus 即可登录到oracle的isqlplus窗口。如图五所示。

url 的解释:

http 协议。

ip 就是要访问的服务器的地址,比如访问本机,可使用localhost,或者是127.0.0.1

端口号要访问的服务器上的应用程序,每个程序都会监听一个端口号。比如oracle的浏览器命令行窗口程序监听的就是5560端口。

图五。在图五中的窗口下输入用户名和密码和对应的oracleservice的名称。即可登录到该用户的控制台。如图六。

图六。在工作区中就可以输入各种sql语句。点击“执行”按钮即可执行sql语句。

比如查看当前用户(scott)下的表。输入的sql是:select * from tab; 如图七所示。

在该用户下存在四个样例表。

图七。命令是:conn 用户名/密码 [as 角色名称]

example : 从当前system用户切换到sys用户。

system用户连接。

从system用户切换到sys用户,且sys用户是以dba的身份连接的。

命令:alter user 要解锁的用户 account unlock;

exmple : 为scott用户解锁 , alter user scott account unlock;

注意:在执行解锁命令时,当前用户一定要有足够的权限。没有权限则会报错,则无法对用户解锁。如图八。

图八。注意:“scott”用户的密码默认是“tiger”。

命令是:password

为当前用户scott修改密码。密码依然不会回显。

命令:create user 要创建的用户的名称 identified by 密码。

example :创建一个用户名是“whz”,密码是“whz”的用户。

注意:要想创建用户(user),当前用户一定要有足够的权限(比如 create user 权限)。

命令:grant 权限 to 用户。

example : 为用户whz 授予连接权限(也就是会话权限:create session)

grant create session to whz;

当前用户要想为指定用户授权,当前用户必须要有足够权限才可以。说明scott用户没有为用户授权的权限。

我们使用dba为用户whz授权成功。

授权成功之后,用户whz就可以连接数据库了。

命令:revoke 权限 from 用户。

example :**用户whz的会话权限。

注意:当前用户要想撤销指定用户的权限,则当前用户也要具备足够的权限。

用户whz的会话权限被撤销之后,则该用户无法连接数据库了。

命令:create table 表名称(column_name type length, column_name2 type length);

example : 在用户whz模式下创建一个表(表明demo,有列name和age)。

报了权限不足的错误。说明一个用户即使可以连接到数据库,如果没有创建表的权限,则无法创建表。我们可以为whz用户授予创建表的权限。

注意:用户whz随然被授予了create table 权限,但是依然无法建表。为什么呢?

因为在oracle数据库中,表都要存在指定的表空间中。所以一个用户即使有了create table 权限,依然无法建表。还有授予资源访问权限(resource权限)。

命令:drop user 用户名 [cascade]

example : 删除用户whz

发现报错了。注意,如果当前要删除的用户下有对象(表、视图等),则无法直接删除,在删除时,要加关键字“cascade”。意思是,在删除用户时,会将该用户关联的对象一并删除。

我们想创建一个demo的表,表中有两列,分别是自增长的列id和姓名列name。我们知道在mysql数据库中的ddl语句是:可以使用auto_increment创建自增长。

发现在oracle中不可以使用auto_increment类型。我们要想在oracle中使用类似于mysql中的auto_increment,可以借助序列(sequence)。

1)创建序列。

命令:create sequence 序列名称 [start with 整型的值] [increment by 整型的值] [nocache]

start with value : 表示该序列从指定的value值开始递增。默认是1。

increment by value : 表示当前序列的步进值,即每次的递增量。默认是1。

nocache : 使用该项进行序列的创建,不会缓存序列值。

example :为demo表创建一个序列“sq_demo”

序列有两列伪列,分别是:表示当前序列值的“currval”和表示下一个序列值的“nextval”。我们也可以通过select语句查看当前序列的值和序列的下一个值。

注意:一个序列一旦创建成功,只有先调用nextval,才可以调用currval查看当前序列的值。否则报错。

要想使demo表的id列的值自增。就可以使用sq_demo序列。

2)删除序列。

命令是: drop sequence 序列名称;

3)修改序列。

命令:alter sequence sq_demo 序列项。

意思是:将序列sq_demo的步进值改为了2。.

可以这样理解:视图就是某些表的查询结果的集合。也就是说可以将复杂的sql语句的组合作为一个视图信息进行保存。以后再想获取类似信息时,就可以通过查询该视图获取。

注意:用户要想创建视图,必须要有创建视图的权限(create view)。

命令是: create view 视图名称 as 子查询(查询的结果集);

example : 创建一个视图,保存tb_user表中的id和username列的值。

如果以后想查看tb_user表的id和username信息,就可以通过查询vw_user视图获取。

2)删除视图。

命令是:drop view 视图名称;

3)修改“视图中”的数据。

注意,视图本身是没有数据的。它是靠自查询语句从它对应的表中获取数据。当我们在修改一个视图时,其实修改的是视图对应的表的数据。

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...