Oracle 作业

(1)问题1:实名登入sys用户,如何修改sys用户自己的密码?请用两种方法
 SQL> alter user SYS identified by tiger; //第一种
 
 用户已更改。
 
 SQL> alter user scott identified by tiger;
 
 用户已更改。
 
 SQL> passw scott //第二种
 更改 scott 的口令
 新口令:
 重新键入新口令:
 口令已更改
 SQL>

注:SYS用户尝试使用passw命令更改用户密码报错,原因未知。

(2)问题2:若没有解锁SCOTT用户,尝试使用scott/tiger,会有什么现象,如何解决?
 SQL> conn scott
 输入口令:
 ERROR:
 ORA-28000: the account is locked
 
 
 警告: 您不再连接到 ORACLE。
解决方法:
 sqlplus "/ as sysdba" 
 SQL>Alter user scott account unlock;

注:不能用刚才连接过scoott窗口执行该命令,需重新个窗口。

 

(3)问题3:SCOTT用户登录成功后,完成如下操作:

A)先显示当前所连接的用户是谁,再断开连接

 shell>sqlplus
 
 SQL*Plus: Release 11.2.0.1.0 Production on 星期四 4月 2 17:47:19 2020
 
 Copyright (c) 1982, 2010, Oracle. All rights reserved.
 
 请输入用户名: scott
 输入口令:
 
 连接到:
 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
 With the Partitioning, OLAP, Data Mining and Real Application Testing options
 
 SQL> show user;
 USER 为 "SCOTT"
 SQL> quit

B)切换到sys用户

 shell>sqlplus sys as sysdba
 
 SQL*Plus: Release 11.2.0.1.0 Production on 星期四 4月 2 17:57:54 2020
 
 Copyright (c) 1982, 2010, Oracle. All rights reserved.
 
 输入口令:
 
 连接到:
 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
 With the Partitioning, OLAP, Data Mining and Real Application Testing options
 
 SQL>

C)使用下面的SQL语句查询全局数据库名称,

 SQL> select instance_name from v$instance;
 
 INSTANCE_NAME
 ----------------
 orcl

 

(4)问题4:再次登入SCOTT用户,请用edit命令打开缓冲区并输入语句:select * from dept

请问如何运行缓冲区中的语句? 答:run

 SQL> select * from dept;
 
    DEPTNO DNAME         LOC
 ---------- -------------- -------------
         10 ACCOUNTING     NEW YORK
         20 RESEARCH       DALLAS
         30 SALES         CHICAGO
         40 OPERATIONS     BOSTON
 
 SQL> edit
 已写入 file afiedt.buf
 
   1* select * from dept
 SQL> run
   1* select * from dept
 
    DEPTNO DNAME         LOC
 ---------- -------------- -------------
         10 ACCOUNTING     NEW YORK
         20 RESEARCH       DALLAS
         30 SALES         CHICAGO
         40 OPERATIONS     BOSTON

(5)问题5:(此题不允许用edit命令)在sql*plus中输入下面的语句(红色字体):

 SQL>Select * 
     2 from emp
     3 where deptno=10;

说明:这里的2表示第2行,3表示第3行。

1585822111993

 

  • 用什么命令可以知道SQL缓冲区中当前行是哪一行?

     SQL>  list
       1  Select *
       2  from emp
       3  where deptno=10;
  • 用什么命令将第一行中的*改为empno,ename,deptno,修改后并运行该缓冲区的SQL语句。

     SQL> 1
       1* Select *
     SQL> change /*/empno,ename,deptno
       1* Select empno,ename,deptno
  • 将SQL缓冲区中的第3行语句(即 where deptno=10)删除,并运行该缓冲区的SQL语句

     SQL> del 3
     SQL> list
       1  Select empno,ename,deptno
       2* from emp
  • 在SQL缓冲区最后加一句 order by deptno desc,并运行该缓冲区的SQL语句

      SQL> append  order by deptno desc
        2* from emp order by deptno desc
      SQL> list
        1  Select empno,ename,deptno
        2* from emp order by deptno desc

(6)问题6:在SQL*PLUS中用什么命令可以先在D:\SQL目录下创建一个文件名为EXP.SQL的脚本文件,再在文件中敲入内容为:Select empno,ename from emp where job='CLERK'

请问创建好该脚本文件后如何运行?

 SQL> start "D:\SQL\EXP.SQL";
 
      EMPNO ENAME
 ---------- ----------
       7369 SMITH
       7876 ADAMS
       7900 JAMES
       7934 MILLER
 

(7)问题7:在SQL*PLUS中先查看缓冲区中的内容,再使用命令可以将缓冲区中的语句存入脚本文件D:\SQL\TEST.SQL中。

SQL> list
  1  Select empno,ename from emp where job='CLERK'
  2*
SQL> save D:\SQL\TEST.SQL
已创建 file D:\SQL\TEST.SQL

(8)问题8:在SQL*PLUS中使用什么命令先打开脚本文件D:\SQL\TEST.SQL,并将文件里的内容改为:select * from emp

请问如何再将改后文件里的语句先导入到缓冲区中,然后再运行该缓冲区的内容。

SQL> ed D:\SQL\TEST.SQL  #之后手动编辑

SQL>SQL>  clear buff;
buffer 已清除
SQL> get D:\SQL\TEST.SQL
  1* select * from emp
  2
SQL> run
  1* select * from emp

 

猜你喜欢

转载自www.cnblogs.com/hlikex/p/12622398.html