数据库学习杂记一

如果当时没有对口令做任何的设置的话,那么scott用户默认是会被锁定的,其他用户的密码默认为oracleadmin,而scott用户是主要使用的用户,所以下面可以按照如下步骤输入命令解决:

1、   通过运行输入:sqlplusw;

2、   在用户名上输入:“/nolog”

 

 

3、   以超级管理员的身份登录:CONN sys/change_on_install AS SYSDBA

         · 如果没改密码的话那么就是oracleadmin,即:CONN sys/oracleadmin AS SYSDBA

4、   输入解锁命令:ALTER USER scott ACCOUNT UNLOCK ;

5、   可以重新登陆sqlplusw:有可能登陆之后要求用户重新输入密码,就输入“tiger”即可。

 

 

在一个数据库之中肯定会存在多个用户,而实际上不同的表属于不同的用户,如果现在希望查询出一个用户有多少张数据表,则可以输入如下的指令:

SELECT * FROM tab ;

         这个用户下现在有四张数据表,那么这四张表的功能随后介绍。

         既然一张表会有多个数据列,那么可以通过DESC指令查询一张表中的所有数据列:

DESC emp ;

         由于有多个用户,那么现在如果要想确定当前的用户是那一位,则可以使用下下面的指令:

SHOW USER ;

         但是在这里必须强调一点,SQLPLUSW虽然是作为程序的主要工具窗口,但是在此窗口中实际上并不方便于进行代码的编辑,因为在这个工具之中,所有的方向键实际上控制的只是屏幕的移动,并不能控制输入光标的移动,所以为了降低代码编写的不方便,所以针对于不同的操作系统,oracle提供了一个ed命令,使用此命令可以直接执行本机的记事本程序,例如:windows中使用的是notepad,而linux之中使用的是vi,输入“ed a”。

 

         此时会出现一个提示,询问是否要创建一个“a.sql”的文件,选择“是”,之后就可以打开记事本工具。

         但是一旦现在使用ed指令在sqlplusw中打开记事本程序的话,原本的sqlplusw窗口将进入到一种阻塞状态,因为这个时候要一直等待文本编辑完成之后才可以,所以现在在文本中直接输入要操作的语句,而后可以使用“@a”指令执行刚才所编辑完的命令。

         除了这种直接通过sqlplusw调用之外,在oracle中也可以直接在硬盘上编写一个文本文件,作为程序的执行语句,例如,现在在“d:\test.txt”文件,将语句输入完成之后,下面就可以直接在命令行中输入:“@d:\test.txt”,当然,如果说现在文件的后缀是“*.sql”的话,那么可以不用输入后缀:“@d:\test”、“@d:test”。

         那么既然说在oracle数据库之中有许多不同的用户,那么就可以使用如下的语法进行用户的连接操作:

CONN 用户名/密码 [AS SYSDBA] ;

         以后只要是固定的语句,全部大写,如果那些语句是需要根据情况更改的,全部使用小写,可选的操作都使用[]表示。

         如果现在使用的是普通用户那么可以不写AS SYSDBA,如果是数据库管理员,例如:SYS,就必须编写。

 

范例:使用sys用户登录

CONN sys/change_on_install AS SYSDBA ;

         很明显执行此语句之后,当前连接的用户就是sys,现在如果再次发出以下的查询指令:

SELECT * FROM emp ;

         但是这个时候出现一个提示“ORA-00942: 表或视图不存在”,意思是:找不到emp表,对于所有的表,肯定是分别属于不同的用户的,所以一张数据表的完整名称应该是“用户名.表名称”,例如,如果现在使用的是scott用户登录,那么查询emp表就是查询scott.emp,由于是一个用户的,可以不写用户名,而如果是不同的用户,就必须写上表的完整名称:

SELECT * FROM scott.emp ;

         另外,需要提醒的是,对于“用户名.表名称”,中的用户名也可以称为模式名,即:“模式名.表名称”。

         如果说现在要是连接回scott用户的话呢就不用再写之前的“AS SYSDBA”了。

CONN scott/tiger

CONN scott

         考虑到工具使用的方便性,所以在sqlplusw之中,也可以使用HOST指令调用本机操作系统所提供的方法。

 

范例:使用sys用户登录

CONN sys/change_on_install AS SYSDBA ;

         很明显执行此语句之后,当前连接的用户就是sys,现在如果再次发出以下的查询指令:

SELECT * FROM emp ;

         但是这个时候出现一个提示“ORA-00942: 表或视图不存在”,意思是:找不到emp表,对于所有的表,肯定是分别属于不同的用户的,所以一张数据表的完整名称应该是“用户名.表名称”,例如,如果现在使用的是scott用户登录,那么查询emp表就是查询scott.emp,由于是一个用户的,可以不写用户名,而如果是不同的用户,就必须写上表的完整名称:

SELECT * FROM scott.emp ;

         另外,需要提醒的是,对于“用户名.表名称”,中的用户名也可以称为模式名,即:“模式名.表名称”。

         如果说现在要是连接回scott用户的话呢就不用再写之前的“AS SYSDBA”了。

CONN scott/tiger

CONN scott

         考虑到工具使用的方便性,所以在sqlplusw之中,也可以使用HOST指令调用本机操作系统所提供的方法。

扫盲:DOS的copy命令

         希望将d:\test.sql复制为d:\hello.sql,可以采用如下语法:

COPY 源文件路径 拷贝的目标文件路径;

范例:实现拷贝

copy d:\test.sql d:\hello.sql

范例:在sqlplusw之中使用此命令的时候必须在前面加上“HOST”前缀

HOST COPY d:\test.sql d:\hello.sql

         除了以上的一些基本的操作命令之外,下面还有一特别的命令需要提醒一下,关于数据库的实例关闭与重新启动。

         如果要使用这些命令必须由超级管理员SYS完成。

1、   使用sys用户登录

CONN sys/change_on_install AS SYSDBA ;

2、   立刻停止数据库实例:

SHUTDOWN IMMEDIATE

         一旦数据库的实例关闭之后,那么最麻烦的问题是无法直接在进行登录操作了,那么这个时候如果必须要使用sqlplusw登录的话,那么就必须在用户名上输入“/nolog”。

ORA-01034: ORACLE not available

ORA-27101: shared memory realm does not exist

         这两个错误信息只要以后看见,就按照下面的方式操作;

                         采用/nolog登录

 

3、   继续使用sys以超级管理员的身份登录;

4、   使用STARTUP命令开启数据库的实例服务;

 

 

1、   Oracle数据库中的四个主要用户:

                   ·超级管理员:sys / change_on_install

                   ·普通管理员:system / manager

                   ·普通用户:scott / tiger

                   · 海量数据用户(大数据用户):sh / sh;

2、   Oracle数据库的卸载问题;

3、   对于sqlplus操作的若干命令需要熟练;

4、   数据库的监听服务为以后程序操作的主要使用服务,关于问题的解决要清楚,用的时候会改;

5、   一定要记住scott表中的四张表的作用及彼此的关系。

 

posted on 2013-07-23 07:12  pony1223  阅读(363)  评论(0编辑  收藏  举报

导航