oracleÁ·Ï°£¨mldnÊÓÆµ¿Î³Ì£©ËÄ
ÊÓͼ
´´½¨ÐÂ±í£ºcreate table emp2 as select * from emp;
create view empv20 as select empno,ename,job,hiredate,deptno from emp where deptno=20 with check option;
Óï·¨£ºcreate or replace view ÊÓͼÃû³Æ as ×Ó²éѯ£¨ÐÞ¸ÄÖ®ºóµÄ×Ó²éѯ£©
Ìæ»»ÊÓͼ(ÐÞ¸Ä)
create or replace view empv20 as select empno,ename,job,hiredate,deptno,sal from emp
where deptno=20 with check option;
Óï·¨£ºupdate ÊÓͼÃû set ¸üÐÂÄÚÈÝ Ìõ¼þ
¸üÐÂÊÓͼ
ÓÐÁ½¸ö²ÎÊý£ºwith check optionºÍwith read only
½«ÊÓͼÖеÄ7369Ö°Ô±µÄ²¿ÃźÅÐÞ¸ÄΪ30
update empv20 set deptno=30 where empno=7369;
´´½¨ÊÓͼʱÌí¼ÓÉÏwith check optionÔò²»»á¶Ô´´½¨Ìõ¼þ¸üУ¬µ«ÊÇ¿ÉÒÔ¶ÔÆäËû×ֶθüС£
ÈôÐÞ¸ÄÊÓͼÖÐ7369µÄÖ°Ô±ÐÕÃûΪ“Ê·ÃÜ˹”£¬¿É·ñÐ޸ģ¿
update empv20 set ename='Ê·ÃÜ˹' where empno=7369;
´´½¨ÊÓͼʱÌí¼ÓÉÏwith read onlyÔò²»»á¶Ô´´½¨Ìõ¼þ¸üУ¬
create view empv20 as select empno,ename,job,hiredate,deptno from emp where deptno=20 with read only;
ÒÔϲÙ×÷ʱÌáʾ²»ÔÊÐíÐéÄâÁУ¬ÊÇÖ»¶Á²Ù×÷
update empv20 set deptno=30 where empno=7369;
update empv20 set ename='Ê·ÃÜ˹' where empno=7369;
ÐòÁÐ
Óï·¨£ºcreate sequence ÐòÁÐÃû
·¶Àý£ºcreate sequence myseq
ʹÓÃÐòÁÐ
Á½ÖÖ²Ù×÷£ºnextval—È¡µÃÐòÁеÄÏÂÒ»¸öÄÚÈÝ
currval—È¡µÃÐòÁеĵ±Ç°ÄÚÈÝ
insert into ±íÃû(ÁÐÒ»£¬Áжþ) values(±íÃû.nextval,±íÃû.currval)£»
ɾ³ýÐòÁУºdrop sequence ÐòÁÐÃû
Ôö³¤·ù¶È£ºincrement by ³¤¶È£¨·ÅÔÚ´´½¨ÐòÁеĺó±ß£©
·¶Àý£º1£¬´´½¨ÐòÁÐcreate sequence myseq
2£¬´´½¨±ícreate table testseq(next number,curr number);
3£¬Öظ´²åÈëÊý¾Ýinsert into testseq(next,curr) values(myseq.nextval,myseq.currval);
4£¬²éѯÊý¾Ýselect * from testseq;
²éѯ³öÀ´µÄÊý¾ÝÒÔ²½³¤ÎªÒ»µÄËÙ¶ÈÔö¼Ó£¬ÈôÏëÒª²½³¤²»ÎªÒ»£¬ÔòÐèÒªÔÚ´´½¨ÐòÁÐʱ¼ÓÉÏincrement by n£¬nΪ²½³¤£¬
Ó﷨Ϊ£ºcreate sequence ÐòÁÐÃû increment by n
²»ÄÜÐÞ¸ÄÒÑ´´½¨ÐòÁеIJ½³¤£¬Ö»ÄÜɾ³ýÐòÁÐÖØÐ´´½¨Ê±Ð޸IJ½³¤¡£
ĬÈÏÇé¿öÏÂÐòÁÐÊÇ´Ó1
Ïà¹ØÎĵµ£º
1,Áгö×îµÍн½ð´óÓÚ1500µÄ¸÷ÖÖ¹¤×÷¼°´ÓÊ´˹¤×÷µÄÈ«²¿¹ÍÔ±ÈËÊý¡£
select job,count(empno) from emp
where job in(select job from emp group by job having min(sal)>1500)
group by job;
2£¬Áгöн½ð¸ßÓÚ¹«Ë¾Æ½¾ùн½ðµÄËùÓÐÔ±¹¤ËùÔÚ²¿ÃÅ£¬Éϼ¶Áìµ¼£¬¹«Ë¾µÄ¹¤×ʵȼ¶¡£
select e.ename,d.dname,m.ename,e.sal,sa. ......
×ÛºÏÁ·Ï°
ѧÉúÔ˶¯»á±ÈÈüÐÅÏ¢Êý¾Ý¿â
1£¬Ô˶¯Ô±sporter£¨Ô˶¯Ô±±àºÅsporterid£¬Ô˶¯Ô±ÐÕÃûname£¬Ô˶¯Ô±ÐÔ±ðsex£¬ËùÊôϵºÅdepartment£©
2£¬ÏîÄ¿item£¨ÏîÄ¿±àºÅitemid£¬ÏîÄ¿Ãû³Æitemname£¬ÏîÄ¿±ÈÈüµØµãlocation£©
3£¬³É¼¨grade£¨Ô˶¯Ô±±àºÅsporterid£¬ÏîÄ¿±àºÅitemid£¬»ý·Ömark£©
½¨±í
1£¬¶¨Òå¸÷¸ö±íµÄÖ÷ÂëÍâÂëÔ¼Êø
2£¬ ......
1. ²é¿´Êý¾ÝµÄ×Ö·û¼¯
sqlplus> col parameter format a30
sqlplus> col value format a30
sqlplus> select * from nls_database_parameter
PARAMETER VALUE
------------------------------ --------------------
...
NLS_CH ......
OracleÖÐstart with…connect by prior×Ó¾äÓ÷¨
connect by Êǽṹ»¯²éѯÖÐÓõ½µÄ£¬Æä»ù±¾Óï·¨ÊÇ£º
select … from tablename
start with Ìõ¼þ1
connect by Ìõ¼þ2
where Ìõ¼þ3;
Àý£º
select * from table
start with org_id = ‘HBHqfWGWPy’
connect by prior org_id = parent_id;
  ......
OracleÖÐÖ»¸üÐÂÁ½Õűí¶ÔÓ¦Êý¾ÝµÄ·½·¨
ÏȽ¨Á¢Ò»¸ö½á¹¹Ò»Ä£Ò»ÑùµÄ±íemp1£¬²¢ÎªÆä²åÈ벿·ÖÊý¾Ý
create table emp1
as
select * from emp where deptno = 20;
updateµôemp1ÖеIJ¿·ÖÊý¾Ý
update emp1
set sal = sal + 100,
comm = nvl(comm,0) + 50
È»ºóÎÒÃÇÊÔ×ÅʹÓÃemp1ÖÐÊý¾ÝÀ´¸üÐÂempÖÐsal ºÍ commÕâÁ½ÁÐÊý¾Ý¡£
ÎÒÃ ......