SQL*Plus 使用��
8. 使用&符å�·è¡¨ç¤ºä¸´æ—¶å�˜é‡�ã€?在Oracleä¸?�¯ä»¥ä½¿ç”¨å�˜é‡�æ�¥ç¼–写通用的SQL,在è¿�è?è¯?�¥æ—¶ï¼Œä¸ºå�˜é‡�输入å?¼ã?? a. 临时å�˜é‡�å�?œ¨ä½¿ç”¨å®ƒçš„SQLè¯?�¥ä¸?œ‰æ•ˆï¼Œå�˜é‡�值ä¸�能ä¿�ç•™ã?‚临时å�˜é‡�也è¢?§°ä¸ºæ›¿æ�¢å�˜é‡�ã?? select salary,&column_n from employees where rownum < &row b. 在SQLä¸??果希望é‡�新使用æŸ�ä¸?�˜é‡�并且ä¸�希望é‡�æ–°æ��示输入å�˜é‡�值是,那么å�¯ä»¥ä½¿ç”?amp;&符å�·æ�¥å®šä¹‰ä¸´æ—¶å�˜é‡�ã?? c. set verify off/on 显示和ä¸�显示类似如下的信æ�?¼š 原å?? 1: select salary,&column_name, first_name æ–°å?? 1: select salary,last_name, first_name
9. 使用已定义å�˜é‡?具有明确定义的å�˜é‡�,该å�˜é‡�的值会ä¸?ç›´ä¿�留到è¢?˜¾ç¤ºåœ°åˆ 除,é‡�定义或é??出SQL*Plus为æ?) a. 在SQLè¯?�¥ä¸?¼Œå�?»¥åœ¨ä½¿ç”¨å�˜é‡�之å‰�å?å�˜é‡�è¿›è?定义,然å�Žåœ¨SQLè¯?�¥ä¸?�¯ä»¥å?å�ƒä½¿ç”¨è¿™ä¸?�˜é‡�ã?? b. define/accept 定义å�˜é‡�ï¼?c. undefine åˆ é™¤å�˜é‡�ã€? define 显示æ‰?有已定义å�˜é‡�ï¼?define variable 显示指定å�˜é‡�å��称,å?¼å’Œå…¶æ•°æ�?±»åž‹ã?? define variable = value 创建ä¸?个char 类型å�˜é‡�,并赋åˆ�å§‹å?? SQL> define sal = 4400 SQL> select * from employees 2 where salary = &sal 3 / dã€?使用accept命令定义å�˜é‡�,并且定制一ä¸?”¨æˆ·æ��示ã?‚定义是å�?»¥æ˜Žç¡®æŒ‡å®šå�˜é‡�类型ã€? acc[ept] variable [data_type][for[mat] format] [def[ault] default] [prompt text|nopr[ompt]][hide] SQL> accept test char prompt 'Hi, you are required first_name which is ' Hi, you are required first_name which is 'Put' SQL> select * from employees where first_name = &test; 原å?? 1: select * from employees where first_name = &test æ–°å?? 1: select * from employees where first_name = 'Put'
10. column æ ¼å¼�åŒ–åˆ—çš„æ˜¾ç¤ºæ•ˆæžœï¼ŒåŒ…æ‹¬åˆ—æ ‡é¢˜å’Œåˆ—æ•°æ�??‚使用clear columns åˆ é™¤æ ¼å¼�化ã?? col[umn] [{column_name|ali[as] alias}[options]] a。column_name 指定列å��ã€?b.alias alias指定è¦�æ ¼å¼�化的列的别å��ã?? c. options æŒ‡å®šç”¨äºŽæ ¼å¼�化了或别å��çš„ä¸?ä¸?ˆ–者å?ä¸??‰é¡¹ã€? column salary heading 'sal' format L9999.99 column last_name heading 'Name' fromat a18column column_name for[mat] formatoption选项ï¼?for[mat] format 将列或列å��çš„æ˜¾ç¤ºæ ¼å¼�设置为由formatå—ç?ä¸²æŒ‡å®šçš„æ ¼å¼�ã€? hea[ding] text 设置有textæ”?»˜æŒ‡å®šçš„åˆ—æ ‡é?ã€? jus[tify] [{left|center|right}] 将列的输出信æ�?·¦å¯¹é½�ã€�å±…ä¸?’Œå�³å?é½�ã??11. pagesize 命令设置ä¸?页显示å?å°‘è?æ•°æ�®ï¼Œä»Žè€ŒæŽ§åˆ¶æ¯�ä¸?页显示数æ�?‡�ã€? set pagesize n (n 表示æ¯�一页大å°�çš„æ£æ•´æ•°ï¼Œæœ?大是50000,默认å?¼æ˜¯14) 页并ä¸�是仅仅由输出的数æ�®è¡Œæž„æˆ�,而是sql*plus显示到å±�幕上æ‰?有结果构æˆ�,包å�«æ ‡é?和空行ç‰ã€?12. linesize 命令 设置ä¸?行数æ�?�¯ä»¥å?纳的å—ç?æ•°é‡�,默认数é‡�是80. 如果linesize值较å°�,那么ä¸?行数æ�?�¯èƒ½éœ€è¦�å?行显示ã?? set linesize n (n表示å±�幕上一行数æ�?�¯ä»¥å?纳的å—ç?æ•°é‡�,有效范围是1 - 32767) set pagesize 100; set linesize 5678; column employee_id justify center; column manager_id jus center; column department_id jus center; select * from employees;
13. 创建ç®?å�•报表ã??a 使用tti[tle] [printspec [text|variable]...]|[off|on] 设置出现在æ¯�ä¸?ä¸?¡µé�¢é¡¶ç«?š„页眉ã€? printspec çš„å�¯é€‰å?¼æœ‰left,centere,right,bold,format text,col n, s[kip][n]å’Œtab n. on 选项表示å�?”¨è®¾ç½®ï¼›off表示å�–消设置ã€? 还å�¯å¸¦æœ‰ç”¨æˆ·å�˜é‡�(内å?有系统维æŠ?,å?sql.pno页å�·ï¼Œsql.lno行å�·ç‰ã??b. 使用bti[tle] [printspec[text|variable]..]]|[on|off] æŒ‡å®šå‡ºçŽ°åœ¨æŠ¥è¡¨ä¸æ¯�一页é�¢åº•部的页脚ã??c. æœ?å�Žéœ€è¦�è?得使用命å��tti/btti off å…³é—ã€? SQL> ttitle left 'Date: ' _date center 'Query data from employees' right 'Page: ' format 999 skip 2 sql.pnd SQL> btitle center 'Thank you for viewing this report' SQL> set echo off SQL> set verify off SQL> set pagesize 50 SQL> set linesize 5000 SQL> column employee_id heading 'emp_no' format 9999 SQL> column salary heading 'sal' format L99,999.99 SQL> column job_id justify center SQL> column department_id justify center SQL> select * from employees;
14. 计算å°�è?break以å�Šcompute命令ã€? bre[ak] [on column_name] skip n a.column_name 表示对哪ä¸?列执行æ“�作ã?? b.skip n表示在指定列的å?¼å�˜åŒ–之å‰�æ�’å…?ä¸?©ºè¡Œã?? comp[ute] function lable lable_text of column on a.表示执è?çš„æ“�作,例å?sum/avg/countç‰ã?? b. lable 指定显示结果æ˜?š„æ–‡æœ¬ä¿¡æ�¯ã€?break on deptno è¡¨ç¤ºæ ¹æ�®deptnoè¿›è?分组ã€?compute sum of salary on deptno è¡¨ç¤ºæ ¹æ�®å‘˜å·¥æ‰?在部门分组,å†�求工资之和ã€?SQL> set pagesize 100;SQL> set linesize 5000;SQL> break on department_id;SQL> compute sum of salary on department_id;SQL> select * from employees;
到æ?为æ?,为期两天的plsql*plus的相关æ“�作以å�Šå?完,希望è‡?·±ç»�常使用ä¸�至于é�—忘ã??å°�æ“�作å°�æŠ?巧还æ˜?œ€è¦�实践ä¸èŽ·çŸ¥ã€?