SQLPlus
由于SQLPlus修改数据不容易,所以一般会使用记事本程序的方式进行编辑,直接在命令窗口中输入“ed 文件名”,如图1
图 1
如果文件不存在,会弹出图1的窗口,点击“是”,就创建一个xxx.sql文件,然后打开;如果该文件存在,则弹出该sql文件,可以进行编辑,编辑后,就可以通过@文件名方式执行命令。除了可以通过sqlplus建立文件外,还可以通过@查找磁盘上的文件,比如在D盘有一个文件mySQL.sql ,那么要运行该文件就是用
SQL>@D:mySQL
即可。如果文件名的后缀为sql的话,可以不输入后缀名,如上,如果后缀名不为sql,则需要输入后缀名。因为默认找到的后缀名就是“*.sql”.比如在E盘的sql目录下有个mySQL.sql文件,现在需要执行它,则使用以下命令,如图2
图 2
如果在同一目录下有两个名字一样但是后缀名不一样的文件,比如
E:\sql\mySQL.txt和E:\sql\mySQL.sql
输入的命令:
@E:sql\mySQL
系统会运行mySQL.sql文件。如果想执行mySQL.txt,则需要加后缀名,@ E:\sql\mySQL.txt.
如图3所示:
图 3
我们也可以使用其他用户连接,例如之前了解过的sys或system系统管理员和普通管理员,
conn 用户名/密码 [AS SYSDBA|SYSOPER]
如果连接系统管理员,则在连接的最后必须加上 AS SYSDBA,以系统管理员的身份登录。
conn sys/super_manager as sysdba
现在我们再来查询下之前emp表,
select * from emp;
查询的结果如图4所示:
图 4
提示表或视图不存在,这是因为emp表是在scott用户之下的,而系统管理员这个用户没有这个emp的表,所以在不同用户下想访问emp表,需要加上用户名,例如:
scott.emp;
不过要注意,如果当前用户是scott ,想访问sys系统管理员的系统表,则不能访问,例如:
select * from sys.dba_users
运行这句查询语句,就会报如上面找不到的该视图的或表的错误,如果当期用户是普通管理员,system,那么就可以访问系统表。当然,也需要加上sys.
很多时候,我们自己可能忘记了当前用户是哪个,那么,就可以使用
查询当前用户
show user;
图 5
查询当前用户的所有表
Select * from tab;
普通管理员的用户表共有173;而系统管理员(sys)的表共有4347个,而scott的表共有4个,如果图6 所示:
图6
查看表结构,例如:可以使用desc 表名称的形式查看表的结构:
desc 名称;
图7
输入“/”表示继续执行上一条命令。
图8