以下是一些sqlpus命令
remark 注释行set headsep 标题分隔符ttitle 头标题btitle 尾标题column 列标题及列格式设定break on 报表各部分间插入空格或将小计和总计断开compute sum 计算小计set linesize 行的最大字符数set pagesize 页中的行数 set newpage 页间的空行数 spool 将报表写入到文件 /**/ 多行注释 -- 单行注释 set pause 页间停顿 save 将建立的SQL查询存诸到文件 host 执行外部命令 start或@ 执行sqlplus脚本 edit 进入自定义的编辑器 define_editor 定义编缉器 exit或quit 退出sqlplus 一个例子 rem bookshelf activity report set headsep ! ttitle 'Checkout Log for 1/1/02-3/31/2' btitle 'from the BookSelf' column Name format a20 column Title format a20 word_wrapped column DaysOut format 999.99 column DaysOut heading 'Day!Out' break on Name skip 1 on report compute avg of DaysOut on Name compute avg of DaysOut on report set linesize 80 set pagesize 60 set newpage 0 set feedback off spool activity.lst select Name,Title,CheckoutDate,ReturnedDate, ReturnedDate-CheckoutDate as DayOut from BOOKSELF_CHECKOUT order by Name,CheckoutDate; spool off 这个脚本的基本结构: 注释 标题设定 列标题及列格式设定 小计及总计设定各部分间隔设定 页面设定 打印到文件 选择数据
alter procedure 编辑存储过程。 alter table 增加表列、重定义表列、更改给定表存储区分配。 analyze 收集数据库对象的性能统计资料并送往基本的优化器。 alter table add constraint 在已有的表上增加约束。 create table 创建表。 create index 创建索引。 drop index 删除索引。 drop table 删除表。 grant 将权限和角色授予用户或角色。 revoke 从用户或数据库角色处收回角色。 建表和删除表:
SQL> create table a (cola char(1)); Table created. SQL> drop table a; Table dropped. SQL> create table newhire ( 2 lname varchar2(30), 3 state_cd varchar(2), 4 hiredate date, 5 salary number(8,2)); Table created. SQL> desc newhire Name Null? Type ----------------------------------------- -------- ---------------------------- LNAME VARCHAR2(30) STATE_CD VARCHAR2(2) HIREDATE DATE SALARY NUMBER(8,2) 在建表的过程中需要指定列的数据类型,普通的oracle数据类型有: char(size) 存放定字符数据; varchar(size) 存放变长字符数据; number(I,d) 存放数值型数据,I代表总位数,d代表小数位数; blob 二进制大对象; raw(size) 原始二进制数据; date 存放日期; long 存放变长字符数据。 DML数据操纵语句:包括以select、insert、update、delete开始的SQL语句。 下面是插入数据的例子: SQL> insert into newhire values ('corey','MA','01-Jan-01','20000'); 1 row created. SQL> insert into state (state_cd,state_name) values ('MA','Massachusetts'); 1 row created. select语句用于检索数据: SQL> select * from newhire; LNAME ST HIREDATE SALARY ------------------------------ -- --------- ---------- corey MA 01-JAN-01 20000 calisi NJ 10-JUN-01 30000 select语句由五个部分组成: select(必须) 给出检索的列; from(必须) 给出数据的出处(一个或多个oracle表的名称); where(可选) 设定条件; group by(可选) 汇总数据; order by(可选) 排序数据。 检索出数据必将涉及到格式化输出,sqlplus使用column语句来对select语句进行格式化输出。column命令由个四个部分组成: column <列名> 指定要格式化的列; format <应用的掩码> 指定输入的大小及使用的掩码; heading '标题' 指定列标题; wrap/trunc 指定处理溢出的方式:trunc 截断,wrap 溢出。 SQL> column lname format a10 ; SQL> select * from newhire; LNAME ST HIREDATE SALARY ---------- -- --------- ---------- corey MA 01-JAN-01 20000 calisi NJ 10-JUN-01 30000 下面示例标题的设定和溢出的处理。 SQL> column hiredate format a5 heading 'DATE' wrap; SQL> select * from newhire; LNAME ST DATE SALARY ---------- -- ----- ---------- corey MA 01-JA 20000 N-01 calisi NJ 10-JU 30000 N-01 SQL> column hiredate format a5 heading 'DATE' trunc; SQL> select * from newhire; LNAME ST DATE SALARY ---------- -- ----- ---------- corey MA 01-JA 20000 calisi NJ 10-JU 30000 下面是关于普通的格式掩码的定义: format A10 trunc A右侧数据决定显示的宽度;
程序员的基础教程: