Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
SQLÓï¾ä»ù´¡Ó÷¨´óÈ«£¨DML£©
 
  8752  次浏览      30
 2019-5-17
   
   
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcsdn£¬±¾ÎÄÖ÷Òª½éÉÜÁËsqlÓï¾äÖеġ¢ÊÂÎñ´¦Àí¡¢×Ó²éѯ¡¢¶à±í²éѯµÈÏà¹ØµÄ֪ʶ£¬Ï£Íû¶ÔÄúÄÜÓÐËù°ïÖú¡£

sql ½á¹¹²éѯÓïÑÔ£¬·ÖÒÔϼ¸×飺

DML(Data Manipulation Language,Êý¾Ý²Ù×÷ÓïÑÔ),ÓÃÓÚ¼ìË÷»òÕ߸üÐÂÊý¾Ý

DDL(Data Definition Language,Êý¾Ý¶¨ÒåÓïÑÔ)£¬ÓÃÓÚ¶¨ÒåÊý¾ÝµÄ½á¹¹£¬Èç´´½¨£¬Ð޸ĻòÕßɾ³ýÊý¾Ý¿â¶ÔÏó

DCL(Data Control Language,Êý¾Ý¿ØÖÆÓïÑÔ)£¬¶¨ÒåÊý¾Ý¿âÓû§µÄȨÏÞ

²é¿´µ±Ç°Êý¾Ý¿âµÄÃû³ÆºÍ״̬

SQL> select instance_name,status from v$instance;

²é¿´µ±Ç°µÄopen״̬

SQL> select open_mode from v$database;

´´½¨Óû§

SQL> create user c##scott identified by oracle;

¸øÈ¨ÏÞ

SQL> grant connect,resource to c##scott;
SQL> alter user c##scott quota unlimited on users;

ʹÓÃscottÓû§Á¬½Ó

SQL> conn c##scott/oracle

Ö´Ðнű¾£¬£¬£¬

SQL> @/home/oracle/scott.sql

*ÎÒÔÚÕâÓõÄÊÇoracle12c£¬oracle11g¿ÉÖ±½Ó½âËøscottÓû§À´Á·Ï°SQLÓï¾ä*

ÓÃsysÓû§½âËø²¢¸øÃÜÂ룺

alter user scott account unclock;
alter user scott identified by oracle;

²é¿´µ±Ç°Óû§

SQL> show user;

²é¿´µ±Ç°Óû§ÓÐÄÄЩ±í

SQL> select table_name from user_tables;

²é¿´Óû§µÄ±í

SQL> select * from tab;

²é¿´emp±íµÄ±í½á¹¹

SQL> desc emp

Áгödept±íµÄËùÓÐÁÐ

SQL> select * from dept;

²é¿´Ö¸¶¨ÁÐ

SQL> select deptno,loc from dept;

ÌØÐÔ£º

×Öĸ×ó¶ÔÆë£¬Êý×ÖÓÒ¶ÔÆë

SQL> select ename,sal,job,hiredate from emp;

Ö§³ÖÔËËã·û

SQL> select ename,sal,job,sal+100 from emp;

ÔËËã·ûÓÅÏȼ¶

SQL> select ename,sal,job,(sal+100)*12 from emp;

²é¿´¿ÕÖµ

SQL> select ename,job,sal,comm from emp;

ÁбðÃû£¬¿É¼ÓË«ÒýºÅ±£³ÖÔ­Ñù

SQL> select ename,sal,sal+100 as newsal from emp;

Á¬½ÓÔËËã·û

SQL> select ename||sal from emp;

ʹÓÃ×ÖÃæ×Ö·û´®

SQL> select ename||¡±¡¯s sal is ¡®||sal from emp;
SQL> select ename||q¡¯[¡¯s sal is ]¡¯ ||sal from emp;!

È¥³ýÖØ¸´µÄÐÐ

select DISTINCT job from emp;

ÃèÊö£¬ÏÔʾ±í½á¹¹

desc emp;

ÔÚsqlplusÖÐÖ´ÐвÙ×÷ϵͳÃüÁî

SQL> !clear
SQL> host clear

¼òµ¥²éѯ

Óï·¨£º

SELECT [DISTINCT]*| ×Ö¶Î [±ðÃû],[×Ö¶Î [±ðÃû]]

FROM ±íÃû³Æ [±í±ðÃû]

²éѯdept±íµÄÈ«²¿¼Ç¼

select * from dept;

²éѯÿ¸ö¹ÍÔ±µÄ±àºÅ£¬ÐÕÃûºÍ»ù±¾¹¤×Ê

select job from emp;

²éѯÿ¸ö¹ÍÔ±µÄְλ

select distinct job from emp;

×¢Ò⣺²éѯ³öÀ´µÄjobÄÚÈÝÓÐÖØ¸´Êý¾Ý£¬Ê¹ÓÃdistinctɾ³ýÖØ¸´

select distinct job from emp;

²éѯÿ¸ö¹ÍÔ±µÄÐÕÃû£¬Ö°Î»

select distinct ename,job from emp;

¼òµ¥²éѯÖУ¬¿ÉÒÔʹÓÃËÄÔòÔËËã·û

²éѯÿһ¸ö¹ÍÔ±µÄÐÕÃû£¬Ö°Î»ºÍ»ù±¾Äêн

select ename,job,sal*12 from emp;

×¢Ò⣺ÁеÄÃû³Æ²»·½±ãä¯ÀÀ£¬¿ÉÒÔʹÓÃÁбðÃû

select ename,job,sal*12 income from emp;
select ename,job,sal*12 as income from emp;

ÿ¸öÔÂÿ¸öÈËÓÐ200µÄ·¹²¹ºÍ100µÄ³µ²¹£¬¼ÆËãÄêн

select ename,job,(sal+300)*12 income from emp;

Äêµ×¶à·¢Ò»¸öÔµĻù±¾¹¤×Ê

select ename,job,(sal+300)*12+sal income from emp;

ʹÓÃ||Á¬½Ó·û

select empno||¡¯,¡¯||ename from emp;

 

ÏÞ¶¨²éѯ

Óï·¨£º

SELECT [DISTINCT]*| ×Ö¶Î [±ðÃû][×Ö¶Î [±ðÃû]]

FROM ±íÃû³Æ [±í±ðÃû]

[WHERE Ìõ¼þ(s)]

Ìõ¼þ£º

,>=,<,<=,!=(<>),

BETWEEN¡­AND¡­,LIKE,IN,IS NULL,AND,OR,NOT

1¡¢¹ØÏµÔËËã

ÒªÇó²éѯ³ö»ù±¾¹¤×ʸßÓÚ1500µÄËùÓйÍÔ±ÐÅÏ¢

select * from emp where sal>1500;

²éѯ³öËùÓÐְλÊǰìÊÂÔ±µÄ¹ÍÔ±ÐÅÏ¢

select * from emp where job=¡¯CLERK¡¯;

×¢Ò⣺ÔÚoracleÊý¾Ý¿â£¬Êý¾ÝÇø·Ö´óСд

²éѯ¹¤×ÊÔÚ1500-3000Ö®¼äµÄÈ«²¿¹ÍÔ±ÐÅÏ¢

select * from emp where sal>=1500 and sal<=3000;
select * from emp where sal between 1500 and 3000;

²éѯְλÊǰìÊÂÔ±£¬»òÕßÊÇÏúÊÛÔ±µÄÈ«²¿ÐÅÏ¢

select * from emp where job=¡¯CLERK¡¯ or job=¡¯SALESMAN¡¯;

²éѯְλÊǰìÊÂÔ±£¬»òÕßÊÇÏúÊÛÔ±µÄÈ«²¿ÐÅÏ¢£¬²¢ÒªÇóÕâЩ¹ÍÔ±µÄ¹¤×Ê´óÓÚ1200

select * from emp
where (job=¡¯CLERK¡¯ or job=¡¯SALESMAN¡¯) and sal>1200;

²éѯËùÓв»ÊǰìÊÂÔ±µÄ¹ÍÔ±ÐÅÏ¢

select * from emp where job<>¡¯CLERK¡¯;
select * from emp where job!=¡¯CLERK¡¯;
select * from emp where NOT job=¡¯CLERK¡¯;

 

2¡¢·¶Î§ÅжÏ

BETWEEN ×îСֵ AND ×î´óÖµ

²éѯ»ù±¾¹¤×ÊÔÚ1500-3000µÄ¹ÍÔ±ÐÅÏ¢

select * from emp where sal between 1500 and 3000;

Çó·´

select * from emp where not sal between 1500 and 3000;

3¡¢ÅжÏÊÇ·ñΪ¿Õ

IS(NOT) NULL,¿ÕÖµ²»ÊÇÊý×Ö0»òÕß¿Õ×Ö·û´®

²éѯ³öËùÓÐÁìÈ¡½±½ðµÄ¹ÍÔ±ÐÅÏ¢

select * from emp where comm is not null;
select * from emp where not comm is null;

²éѯËùÓв»ÁìÈ¡½±½ðµÄ¹ÍÔ±

select * from emp where comm is null;

4¡¢Ö¸¶¨·¶Î§µÄÅжÏ

IN²Ù×÷·û±íʾָ¶¨Ò»¸ö·¶Î§

²éѯ¹ÍÔ±±àºÅÊÇ7369£¬7566£¬7799µÄ¹ÍÔ±ÐÅÏ¢

select * from emp
where empno=7369 or empno=7566 or empno=7799;

ʹÓÃIN

select * from emp where empno in (7369,7566,7799);

ʹÓÃNOT IN±íʾ²»ÔÚÖ¸¶¨·¶Î§ÄÚ

select * from emp where empno not in (7369,7566,7799);

×¢Ò⣺¹ØÓÚNOT INµÄÎÊÌâ

Èç¹ûʹÓÃIN²Ù×÷·û£¬²éѯµÄ·¶Î§Ö®ÖдæÔÚnull£¬²»Ó°Ïì²éѯ

select * from emp where empno in (7369,7566,null);

Èç¹ûʹÓÃNOT IN²Ù×÷·û£¬Èç¹û²éѯ·¶Î§ÖÐÓÐnull£¬Ôò²»»áÓÐÈκβéѯ½á¹û

select * from emp where empno not in (7369,7566,null);

Èç¹ûNOT INÖгöÏÖÁËnull£¬Ôò±íʾ²éѯȫ²¿Êý¾Ý

ÎªÊ²Ã´ÄØ£¿

5¡¢Ä£ºý²éѯ

LIKE×Ó¾ä

_: Æ¥Åäµ¥¸ö×Ö·û

%: Æ¥ÅäÈÎÒâ¶à¸ö×Ö·û

²éѯ¹ÍÔ±ÐÕÃûÖÐÒÔ×ÖĸA¿ªÍ·µÄÈ«²¿¹ÍÔ±ÐÅÏ¢

select * from emp where ename like ¡®A%¡¯;

²éѯ¹ÍÔ±ÐÕÃûÖеڶþ¸ö×ÖĸÊÇAµÄÈ«²¿¹ÍÔ±ÐÅÏ¢

select * from emp where ename not like ¡®%A%¡¯;

Çó·´

Hello World!select * from emp where ename not like ¡®%A%¡¯;

%%±íʾ²éѯȫ²¿ÐÅÏ¢

Êý¾ÝÅÅÐò

Óï·¨£º

SELECT [DISTINCT]*| ×Ö¶Î [±ðÃû][×Ö¶Î [±ðÃû]]

FROM ±íÃû³Æ [±ðÃû]

[WHERE Ìõ¼þ(S)]

[ORDER BY ×Ö¶Î [ASC|DESC][×Ö¶Î [ASC|DESC],¡­]]

˵Ã÷£º

¸Ã×Ó¾äÔÚËùÓеÄSQLÓï¾ä×îºó

¿ÉÒÔÖ¸¶¨¶à¸öÅÅÐòµÄ×Ö¶Î

ĬÈÏÉýÐò

½µÐòÐèÒªÊÖ¹¤Ö¸¶¨

ÓÐÐèÒªµÄʱºò²Å½øÐÐÅÅÐò

²éѯËùÓйÍÔ±µÄÐÅÏ¢£¬°´¹¤×ÊÅÅÐò

select * from emp order by sal;
select * from emp order by sal asc;

½µÐòÅÅÁÐ

select * from emp order by sal desc;

²éѯËùÓйÍÔ±ÐÅÏ¢£¬°´ÕÕ¹¤×ʽµÐòÅÅÁУ¬¹¤×ÊÏàͬ£¬Ôò°´¹ÍÓ¶ÈÕÆÚ´ÓÔçµ½ÍíÅÅÁÐ

select * from emp order by sal desc,hiredate asc;

µ¥Ðк¯Êý

·ÖÀࣺ

×Ö·ûº¯Êý

Êý×Öº¯Êý

ÈÕÆÚº¯Êý

ת»»º¯Êý

ͨÓú¯Êý

×Ö·ûº¯Êý£ºÖ÷ÒªÊǽøÐÐ×Ö·û´®Êý¾ÝµÄ²Ù×÷

UPPER(×Ö·û´®|ÁÐ) ½«ÊäÈëµÄ×Ö·û´®±äΪ´óд·µ»Ø

LOWER(×Ö·û´®|ÁÐ) ½«ÊäÈëµÄ×Ö·û´®±äΪСд·µ»Ø

INITCAP(×Ö·û´®|ÁÐ) ¿ªÍ·Ê××Öĸ´óд

LENGTH(×Ö·û´®|ÁÐ) Çó³ö×Ö·û´®³¤¶È

REPLACE(×Ö·û´®|ÁÐ) ½øÐÐÌæ»»

SUBSTR(×Ö·û´®|ÁÐ) ¿ªÊ¼µã[½áÊøµã]£¬×Ö·û´®½ØÈ¡

oracleÌṩһ¸öÐéÄâ±ídual

ת´óд

select upper(¡®hello¡¯) from dual;
select * from emp where ename=upper(¡®&str¡¯);

תСд

½«ËùÓйÍÔ±ÐÕÃû°´ÕÕСд×Öĸ·µ»Ø

select lower(ename) from emp;

½«Ã¿¸ö¹ÍÔ±ÐÕÃûµÄ¿ªÍ·Ê××Öĸ´óд

select initcap(ename) from emp;

²éѯ³öÿ¸ö¹ÍÔ±ÐÕÃûµÄ³¤¶È

select ename,length(ename) from emp;

²éѯ³ö¹ÍÔ±ÐÕÃû³¤¶È¸ÕºÃÊÇ5µÄ¹ÍÔ±ÐÅÏ¢

select ename,length(ename) from emp where length(ename)=5;

ʹÓÃ×Ö·û¡°_¡±Ìæ»»¹ÍÔ±ÐÕÃûÖеÄËùÓÐ×Öĸ¡°A¡±

select replace(ename,¡¯A¡¯,¡¯_¡¯) from emp;

×Ö·û´®½ØÈ¡ÓÐÁ½ÖÖÓï·¨£º

1 SUBSTR(×Ö·û´®|ÁÐ,¿ªÊ¼µã)£¬±íʾ´Ó¿ªÊ¼µãÒ»Ö±½ØÈ¡µ½½áβ

select ename,substr(ename,3) from emp;

2 SUBSTR(×Ö·û´®|ÁÐ,¿ªÊ¼µã,½ØÈ¡¶àÉÙλ)£¬±íʾ´Ó¿ªÊ¼µã½ØÈ¡¶àÉÙλ

select ename,substr(ename,0,3) from emp;
select ename,substr(ename,1,3) from emp;

ÒªÇó½ØÈ¡Ã¿¸ö¹ÍÔ±Ãû×ֵĺóÈý¸ö×Öĸ

ͨ¹ý³¤¶È-2È·¶¨¿ªÊ¼µã

select ename,substr(ename,length(ename)-2) from emp;

ÉèÖøºÊý£¬±íʾ´ÓºóÖ¸¶¨½ØÈ¡Î»ÖÃ

select ename,substr(ename,-3) from emp;

Êý×Öº¯Êý

ROUND(Êý×Ö|ÁÐ[,±£ÁôСÊýµÄ·¶Î§])£ºËÄÉáÎåÈëµÄ²Ù×÷

TRUNC(Êý×Ö|ÁÐ[,±£ÁôСÊýµÄ·¶Î§]): ÉáÆúÖ¸¶¨Î»ÖõÄÄÚÈÝ

MOD(Êý×Ö1£¬Êý×Ö2)£ºÈ¡Ä££¬È¡ÓàÊý

ROUND

select round(903.5) from dual;
select round(903.53567) from dual;
select round(903.53567),round(-903.53567) from dual;
select round(903.53567),round(-903.53567),
round(903.53567,-1) from dual;
select round(903.53567),round(-903.53567),round(903.53567,-1),
round(903.53567,2) from dual;

 

TRUNC trunc

select trunc(903.53567),trunc(-903.53567),trunc(903.53567,-1),
trunc(903.53567,2) from dual;

MOD

select mod(3,10) from dual;

ÈÕÆÚº¯Êý

È¡µÃ½ñÌìµÄÈÕÆÚ£¬¿ÉÒÔʹÓá°SYSDATE¡±

select sysdate from dual;

 

ÈÕÆÚµÄ¼ÆËãÓÐÒÔϼ¸ÖÖ¼ÆË㣺

ÈÕÆÚ+Êý×Ö=ÈÕÆÚ£¬±íʾÈô¸ÉÌìÖ®ºóµÄÈÕÆÚ

ÈÕÆÚ-Êý×Ö=ÈÕÆÚ£¬±íʾÈô¸ÉÌì֮ǰµÄÈÕÆÚ

ÈÕÆÚ-ÈÕÆÚ=Êý×Ö£¬±íʾÁ½¸öÈÕÆÚÖ®¼äµÄÌìÊý£¬µ«ÊDZØÐë´óÈÕÆÚ¼õСÈÕÆÚ

Çó³öÿ¸ö¹ÍÔ±µ½½ñÌìΪֹµÄ¹ÍÓ¶ÌìÊý

select ename,hiredate,sysdate-hiredate from emp;

ÈÕÆÚ³ýÁËÒÔÉϵÄÈý¸ö¼ÆË㹫ʽ£¬»¹ÓÐËĸö²Ù×÷º¯Êý

LAST_DAY(ÈÕÆÚ)£ºÇó³öÖ¸¶¨ÈÕÆÚµ±ÔµÄ×îºóÒ»Ìì
#Çó³ö±¾ÔµÄ×îºóÒ»ÌìÈÕÆÚ
select last_day(sysdate) from dual;
NEXT_DAY(ÈÕÆÚ£¬ÐÇÆÚÊý)£ºÇó³öÏÂÒ»¸öÖ¸¶¨ÐÇÆÚ¼¸µÄÈÕÆÚ
#ÏÂÒ»¸öÖÜÁùÊǼ¸ºÅ
select next_day(sysdate,'sat') from dual;
#ÏÂÒ»¸öÖÜÈÕÊǼ¸ºÅ
select next_day(sysdate,'sun') from dual£»
ADD_MONTHS(ÈÕÆÚ£¬Êý×Ö)£ºÇó³öÈô¸ÉÔÂÖ®ºóµÄÈÕÆÚ
#ËĸöÔºóÊǼ¸ºÅ
select add_months(sysdate,4) from dual;
MOUNTHS_BETWEEN(ÈÕÆÚ1£¬ÈÕÆÚ2)£ºÇó³öÁ½¸öÈÕÆÚÖ®¼äËù¾­ÀúµÄÔ·Ý
#Çó³öÿ¸ö¹ÍÔ±µ½½ñÌìΪֹµÄ¹ÍÓ¶Ô·Ý
select ename,hiredate,trunc(months_between(sysdate,hiredate)) from emp;

×¢Ò⣺ÔÚËùÓпª·¢Ö®ÖУ¬Èç¹ûÊÇÈÕÆÚµÄ²Ù×÷£¬½¨ÒéʹÓÃÒÔÉϵĺ¯Êý£¬¿ÉÒÔ±ÜÃâÈòÄêµÄÎÊÌâ¡£

ת»»º¯Êý

֮ǰÎÒÃÇѧϰÁË×Ö·ûº¯Êý£¬Êý×Öº¯ÊýºÍÈÕÆÚº¯Êý£¬¶ø×ª»»º¯ÊýµÄÖ÷Òª¹¦ÄÜÊÇÍê³ÉÕ⼸ÖÖÊý¾ÝÖ®¼äµÄ»¥Ïàת»»µÄ²Ù×÷£¬Ò»¹²ÓÐÈýÖÖת»»º¯Êý¡£

TO_CHAR(×Ö·û´®|ÁУ¬¸ñʽ×Ö·û´®)£º½«ÈÕÆÚ»òÕßÊý×Ö±äΪ×Ö·û´®ÏÔʾ£»

TO_DATE(×Ö·û´®£¬¸ñʽ×Ö·û´®)£º½«×Ö·û´®×ª±äΪDATEÊý¾ÝÏÔʾ£»

TO_NUMBER(×Ö·û´®)£º½«×Ö·û´®±äΪÊý×ÖÏÔʾ.

TO_CHAR()º¯Êý

¸ñʽ£ºÄê(yyyy),ÔÂ(mm),ÈÕ(dd)

#²ð·ÖÄêÔÂÈÕ
select to_char(sysdate,¡¯yyyy-mm-dd¡¯),to_char(sysdate,¡¯yyyy¡¯) year,to_char(sysdate,¡¯mm¡¯) month,to_char(sysdate,¡¯dd¡¯) day from dual;

#¸ÉµôÈÕÆÚÖеÄǰµ¼Áã
select to_char(sysdate,'fmyyyy-mm-dd') day from dual;

 

ÔÚoracleÖ®ÖУ¬sysdateº¯ÊýÖÐÊǰüº¬ÁËʱ¼äµÄ£¬ÒªÏÔʾʱ¼äÐèÒªÔö¼Ó±ê¼Ç

#ʹÓÃsysdateÏÔʾʱ¼ä
select to_char(sysdate,¡¯yyyy-mm-dd hh:mi:ss¡¯) haha from dual;
select to_char(sysdate,¡¯yyyy-mm-dd hh:mi:ss¡¯) from dual;
#ʹÓÃ24Ð¡Ê±ÖÆ
select to_char(sysdate,¡¯yyyy-mm-dd hh24:mi:ss¡¯) from dual; MI

 

ʹÓÃTO_CHARº¯ÊýÖ®ºó£¬ËùÓÐÄÚÈÝΪ×Ö·û´®£¬²»ÔÙÊÇdateÐÍÊý¾Ý£¬TO_CHARͬÑù¿ÉÒÔÓÃÔÚÊý×ÖÉÏÓÃÀ´¸ñʽ»¯Êý×Ö

#¸ñʽ»¯Êý×Ö22222222222£»
select to_char(22222222222,¡¯999,999,999,999,999,999,999¡¯) shuzi from dual;

Õâʱ£¬¸ñʽ»¯×Ö·û´®µÄÊý×Ö9±íʾ¸ñʽ£¬¶ø²»ÊÇÊý×Ö9¡£

#¸ñʽ»¯Êý×ÖΪ»õ±Ò¼Ç¼¸ñʽ£¬Ê¹Óá°L¡±±ê¼Ç±íʾת»»Îªµ±Ç°ÓïÑÔ»·¾³ÏµĻõ±Ò·ûºÅ
select to_char(22222222222,'L999,999,999,999,999,999,999') huobi from dual;

TO_DATE(): (ÊìϤÓ÷¨)

ʹÓ÷½·¨ÈçÏ£»

select to_date(¡®1989-09-12¡¯,¡¯yyyy-mm-dd¡¯) from dual;

TO_NUMBER(): (»ù±¾²»Ó㬻áÓü´¿É)

ʹÓ÷½·¨ÈçÏ£»

select to_date(¡®1989-09-12¡¯,¡¯yyyy-mm-dd¡¯) from dual;

ÔÚoracleÖУ¬²»Ê¹Óøú¯ÊýÒ²¿ÉÒÔÍê³É¸Ã¹¦ÄÜ£¬ÈçÏ£º

select ¡®2¡¯+¡¯3¡¯ from dual;

ͨÓú¯Êý

ͨÓú¯ÊýÖ÷ÒªÓÐNVL(),DECODE()Á½¸ö,ÕâÁ½¸öº¯ÊýËãÊÇoracleµÄÌØÉ«º¯Êý¡£

NVL(): ´¦Àínull

#ÒªÇó²éѯËùÓйÍÔ±µÄÈ«²¿Äêн
select ename,sal,comm,(sal+comm)*12 from emp;

²éѯµÄ½á¹û³öÏÖÎÊÌ⣬½â¾ö°ì·¨Êǽ«commÖеÄnullÖµ±ä³É0£¬·½·¨ÈçÏ£º

#²é¿´×ª»»¹ý³Ì
select ename,sal,comm,nvl(comm,0) from emp;
#½â¾öÎÊÌâ
select ename,sal,comm,(sal+nvl(comm,0))*12 from emp;

DECODE()£º¶àÊýÖµÅжÏ

ÅжϵÄÊÇÊýÖµ¶ø²»ÊÇÌõ¼þ£¬ÀàËÆ±à³ÌÖеÄif¡­else¡­

˵Ã÷£ºÕâÖÖÅжϿ϶¨ÊǽøÐÐÖðÐÐÅжϣ¬ËùÒÔÕâ¸öʱºò¾Í±ØÐë²ÉÓÃDECODE(),¶ø´Ëº¯ÊýµÄÓ÷¨ÈçÏ£º

DECODE(ÊýÖµ|ÁУ¬ÅжÏÖµ1£¬ÏÔʾֵ1£¬ÅжÏÖµ2£¬ÏÔʾֵ2£¬¡­)

 

#ÀýÈ磺ҪÇóÏÔʾȫ²¿¹ÍÔ±µÄְ룬µ«ÊÇÕâЩְλҪÇóÏÔʾ³Épinyin¡£
CLERK: °ìÊÂÔ±
SALESMAN: ÏúÊÛÔ±
MANAGER: ¾­Àí
ANALYST: ·ÖÎöÔ±
PRESIDENT: ×ܲÃ
#ʵÏÖ£º
select empno,ename,job,decode(job,
'CLERK','banshiyuan',
'SALESMAN','xiaoshouyuan',
'MANAGER','jingli',
'ANALYST','fenxiyuan',
'PRESIDENT','zongcai')
from emp;

×ܽ᣺

1£ºÒÔÉÏÁгöµÄSQLÓï¾äÖ»ÊÇ×î»ù±¾µÄÓï·¨,Ã÷°×SELECT,FROM,WHERE,ORDER BYÖ®¼äµÄ¹ØÏµ£»

2£ºÊìϤSCOTTÓû§µÄ4ÕűíµÄÄÚÈÝ£¬°üÀ¨ÁеÄÃû³Æ£¬×÷ÓúÍÀàÐÍ£»

3£º¾«Í¨ÒÔÉÏËùÓÐSQLÓï¾äºÍº¯ÊýµÄʹÓá£

¶à±í²éѯ

Óï·¨£º

SELECT [DISTINCT]*| ×Ö¶Î [±ðÃû][×Ö¶Î [±ðÃû]]

FROM ±íÃû³Æ [±ðÃû],[±íÃû³Æ [±ðÃû],±íÃû³Æ [±ðÃû]¡­]

[WHERE Ìõ¼þ(S)]

[ORDER BY ÅÅÐò×Ö¶Î [ASC|DESC][ÅÅÐò×Ö¶Î [ASC|DESC],¡­]]

×¢Ò⣺¶à±í²éѯ֮ǰ£¬Ê×ÏȱØÐë²éѯ¸÷¸ö±íÖеÄÊý¾ÝÁ¿£¬Õâ¸ö²Ù×÷¿ÉÒÔͨ¹ýCOUNT()º¯ÊýÀ´Íê³É¡£Çмǣ¡Çмǣ¡Çмǣ¡

×¢Ò⣺ÔÚÓöµ½Ò»¸öеÄÊý¾Ý¿â£¬ÓÐÁ½ÖÖ×ö·¨£º

1¡¢Ö±½ÓÖ´ÐÐÒÔÏÂÃüÁî

select * from ±íÃû³Æ

µ¼ÖµĽá¹ûÒ»ÊÇÎÞ·¨ä¯ÀÀÊý¾Ý£¬¶þÊÇ¿ÉÄÜÔì³ÉËÀ»ú£¬È磺

½éÉÜ£º

shÓû§ÊÇoracleÊý¾Ý¿âʾÀý·½°¸µÄÓû§£¬¸ÃʾÀý·½°¸ÊÇ´óÊý¾Ý·½°¸

×ö·¨£º

1¡¢¸øshÓû§½âËøºÍ¸ÄÃÜÂë

alter user sh identified by sh account unlock;

2¡¢Ê¹ÓÃshÓû§µÇ¼

conn sh/sh

3¡¢²éѯÓжàÉÙ±í

select * from tab;

4¡¢²éѯsales±íÊý¾Ý

select * from sales;

5¡¢µÈ´ý£¬È»ºóûÓÐÈ»ºóÁË

2¡¢ÏȲéѯÊý¾ÝÁ¿

select count(*) from ±íÃû³Æ

=====

1¡¢select count(*) from sales;

½áÂÛ£ºÓöµ½ÐÂÊý¾Ý¿âÊ×ÏȲéѯµÄÊÇÊý¾ÝÁ¿£¬¶ø²»ÊÇÖ±½Óselect * from ±íÃû³Æ¡£

²éѯemp±íÖеÄÊý¾ÝÁ¿

select count(*) from emp;

È·ÈÏÊý¾ÝÁ¿ºó£¬Ö´Ðжà±í²éѯÓï¾ä£º

select * from emp,dept;

Óï¾äÓ﷨ûÓÐÎÊÌ⣬µ«ÊÇÒòΪÊý¾Ý¿âµÄ»úÖÆµ¼Ö²úÉúÁ˵ѿ¨¶ù»ý£¬ËùÒÔ¾ßÌåÓ÷¨²»ÕâôÓá£

ÈçºÎÈ¥µôµÑ¿¨¶ù»ýÄØ£¿

²ÉÓùØÁª×ֶεÄÐÎʽ£¬emp±íºÍdept±íÖ®¼ä´æÔÚÁËdeptnoµÄ¹ØÁª×ֶΣ¬´Ó¹ØÁª×Ö¶ÎÏÂÊÖ£¬ÈçÏ£º

select * from emp,dept where deptno=deptno; #Ö´ÐдíÎó
select * from emp,dept where emp.deptno=dept.deptno; #ÏÔʾÉϵѿ¨¶ù»ýÒѾ­Ïû³ý£¬Êµ¼ÊÉϵѿ¨¶ù»ý»¹ÔÚ£¬²¢Ã»ÓÐÏû³ý¡£

¾ÙÀý£º

1¡¢Ê¹ÓÃsh´óÓû§Õ˺ÅÁ¬½Ó

conn sh/sh

2¡¢²éѯsales±íµÄÊý¾ÝÁ¿

select count(*) from sales;

3¡¢²éѯ»¹ÓÐÆäËûµÄÄÄЩ±í£¿

select * from tab;

4¡¢²éѯcosts±íµÄÊý¾ÝÁ¿

select count(*) from costs;

5¡¢²éѯsales±íµÄ±í½á¹¹

desc sales;

6¡¢²éѯcosts±íµÄ±í½á¹¹

desc costs;

7¡¢¸ù¾Ý²éѯ½á¹û·¢ÏÖPROD_ID¿ÉÒÔ×÷Ϊ¹ØÁª×ֶνøÐвéѯ

select count(*) from sales,costs where sales.prod_id=costs.prod_id;

½áÂÛ£ºÕâÁ½ÕÅ±í¼´±ãÏû³ýÁ˵ѿ¨¶ù»ýµÄÏÔʾ£¬µ«ÊDZ¾Éí»¹´æÔڵѿ¨¶ù»ýµÄÎÊÌ⣬ËùÒÔ¶à±í²éѯµÄÐÔÄÜÊǺܲîµÄ£¬µ±È»Ò²Ö÷Òª¿´Êý¾ÝÁ¿¡£

Èç¹û±íµÄÃû³Æ±È½Ï³¤£¬ÄÇôÕâÑùµÄ·½Ê½ºÜ²»·½±ãʹÓ㬽â¾ö°ì·¨¾ÍÊÇʹÓñí±ðÃû£¬ÈçÏ£º

select * from emp e,dept d where e.deptno=d.deptno;

ÒªÇó²éѯÿһλ¹ÍÔ±µÄ±àºÅ£¬ÐÕÃû£¬Ö°Î»£¬²¿ÃÅÃû³Æ£¬²¿ÃÅλÖÃ

˼·£º

1¡¢Ê×ÏÈÈ·ÈÏÐèÒªµÄ±í£»

emp±í¿ÉÒÔ²éѯ¹ÍÔ±µÄ±àºÅ£¬ÐÕÃû£¬Ö°Î»£»

dept±í¿ÉÒÔ²éѯ²¿ÃÅÃû³ÆºÍλÖã»

2¡¢È·¶¨±íµÄ¹ØÁª×ֶΣ»

emp.deptno=dept.deptno

×ö·¨£º

1¡¢²éѯ³öÿһλ¹ÍÔ±µÄ±àºÅ£¬ÐÕÃûºÍְλ£»

select e.empno,e.ename,e.job from emp e;

2¡¢Îª²éѯÖÐÒýÈ벿ÃÅ±í£¬Í¬Ê±Ôö¼ÓÏû³ýµÑ¿¨¶ù»ýµÄÌõ¼þ£»

select e.empno,e.ename,e.job,d.dname,d.loc
from emp e,dept d
where e.deptno=d.deptno;

ÒªÇó²éѯ³öÿһλ¹ÍÔ±µÄÐÕÃû£¬Ö°Î»ºÍÁìµ¼ÐÕÃû

˼·£º

1¡¢È·ÈÏÐèÒªµÄ±í£»

emp±í¿ÉÒÔ²éѯ¹ÍÔ±µÄÐÕÃû£¬Ö°Î»ºÍÁìµ¼±àºÅ

emp±í¿ÉÒÔ²éѯÁìµ¼µÄÐÕÃû

2¡¢È·¶¨¹ØÁª×ֶΣ»

emp.mgr=emp.empno,¹ÍÔ±µÄÁìµ¼±àºÅ=Áìµ¼µÄ¹ÍÔ±±àºÅ

×ö·¨£º

1¡¢²éѯÿһλ¹ÍÔ±µÄÐÕÃûºÍְλ

select e.ename,e.job from emp e;

2¡¢²éѯÁìµ¼ÐÅÏ¢£¬¼ÓÈë×ÔÉí¹ØÁª

select e.ename,e.job,m.ename from emp e,emp m
where e.mgr=m.empno;

×¢Ò⣺²éѯ½á¹ûÉÙÁËÒ»ÐУ¬È±ÉÙKINGµÄÁìµ¼ÐÕÃû£¬ÒòΪËûûÓÐÁìµ¼£¬ºóÃæ×óÓÒÁ´½Ó½âÊÍ¡£

ÒªÇó²éѯ³öÿ¸ö¹ÍÔ±µÄ±àºÅ£¬ÐÕÃû£¬»ù±¾¹¤×Ê£¬Ö°Î»£¬Áìµ¼µÄÐÕÃû£¬²¿ÃÅÃû³Æ¼°Î»ÖÃ

˼·£º

1¡¢È·ÈÏÐèÒªµÄ±í£»

emp±í²éѯÿ¸ö¹ÍÔ±µÄ±àºÅ£¬ÐÕÃû£¬»ù±¾¹¤×Ê£¬Ö°Î»

emp±í²éѯÁìµ¼µÄÐÕÃû

dept±í²éѯ²¿ÃŵÄÃû³Æ¼°Î»ÖÃ

2¡¢È·¶¨ÒÑÖªµÄ¹ØÁª×Ö¶Î

¹ÍÔ±ºÍ²¿ÃÅ£º e.deptno=d.deptno

¹ÍÔ±ºÍÁìµ¼£º e.mgr=m.empno

×ö·¨£º

1¡¢²éѯ³öÿ¸ö¹ÍÔ±µÄ±àºÅ£¬ÐÕÃû£¬»ù±¾¹¤×Ê£¬Ö°Î»

select empno,ename,sal,job from emp;

2¡¢¼ÓÈëÁìµ¼µÄÐÅÏ¢£¬ÒýÈë×ÔÉí¹ØÁª£¬Í¬Ê±Ôö¼ÓÏû³ýµÑ¿¨¶ù»ýµÄÌõ¼þ

select e.empno,e.ename,e.sal,e.job,m.ename
from emp e,emp m
where e.mgr=m.empno;

3¡¢¼ÓÈ벿ÃŵÄÐÅÏ¢£¬ÒýÈëdept±í£¬ÓÐÐÂ±í£¬ÔòÒª¼ÌÐø¼ÓÈëÏû³ýµÑ¿¨¶ù»ýµÄÌõ¼þ

select e.empno,e.ename,e.sal,e.job,m.ename,d.dname,d.loc
from emp e,emp m,dept d
where e.mgr=m.empno
and e.deptno=d.deptno;

˼¿¼Á·Ï°ÌâÒ»£º

ÒªÇó²éѯ³öÿһ¸ö¹ÍÔ±µÄ±àºÅ£¬ÐÕÃû£¬¹¤×Ê£¬Áìµ¼µÄÐÕÃû£¬²¿ÃÅÃû³Æ¼°Î»ÖÃ,¹¤×ÊËùÔÚ¹«Ë¾µÄ¹¤×ʵȼ¶

select e.empno,e.ename,e.sal,d.dname,s.grade from emp e,dept d,salgrade s
where e.deptno=d.deptno and e.sal between s.losal and s.hisal;

×ó¡¢ÓÒÁ¬½Ó

×óÓÒÁ¬½Ó¿ÉÒԸıä²éѯÅжÏÌõ¼þµÄ²Î¿¼·½Ïò£¬ÀýÈ磬ÓÐÒÔϲéѯ

select * from emp e,dept d where e.deptno=d.deptno;

×¢Ò⣺һ¹²ÓÐËĸö²¿ÃÅ£¬µ«ÊÇÕâÀïÖ»ÓÐÈý¸ö£¬È±ÉÙ40²¿ÃŵIJ¿ÃÅÐÅÏ¢£¬Ô­Òò¾ÍÊÇÏÖÔڵIJéѯÒÔemp±íΪ²Î¿¼½øÐвéѯ£¬ÒªÏëÏÔʾ40²¿ÃÅ£¬

¾Í±ØÐë¸Ä±ä²Î¿¼µÄ·½Ïò£¬Õâʱ¾ÍÐèÒª×óÓÒÁ¬½Ó

Ó÷¨£º

select * from emp e,dept d where e.deptno(+)=d.deptno;

(+)ÓÃÓÚ×óÓÒÁ¬½ÓµÄ¸ü¸Ä£¬ÕâÖÖ·ûºÅÓÐÒÔÏÂÁ½ÖÖʹÓÃÇé¿ö£º

(+)=:±íʾÓÒÁ¬½Ó

=(+):±íʾ×óÁ¬½Ó

²»ÓÿÌÒâÇø·Ö×ó»¹ÊÇÓÒ£¬¸ù¾Ý²éѯ½á¹ûÀ´¶¨£¬Èç¹û·¢ÏÖÓÐЩÐèÒªµÄÊý¾ÝûÓÐÏÔʾ³öÀ´£¬¾ÍʹÓô˷ûºÅÀ´¸Ä±äÁ¬½Ó·½Ïò,¸Ã·ûºÅΪoracle¶ÀÓС£

Èç֮ǰµÄ²éѯÁìµ¼ÐÕÃûµÄ·¶Àý£º

select e.ename,e.job,m.ename from emp e,emp m
where e.mgr=m.empno(+);

²¹³ä£º

²éѯ×Ö¶Îʱ£¬ÐèÒª¶à±í¹ØÁª£¬ÐèÒªÓõ½±í±ðÃû£¬ÄÚÁ¬½Ó£¬ÍâÁ¬½Ó£¬×ÔÈ»Á¬½Ó£¬×ÔÁ¬½Ó

һЩ¹Ø¼üÁ¬½Ó·½·¨¡£

1.±í±ðÃû

²éѯԱ¹¤±àºÅ Ô±¹¤ÐÕÃû ²¿ÃÅÃû³Æ

select e.empno,e.ename,d.dname
from emp e,dept d
where e.deptno=d.deptno;

2.ÄÚÁ¬½Ó A£¨inner£© join B on Á¬½ÓÌõ¼þ

select e.empno,e.ename,d.dname
from emp e inner join dept d
on e.deptno=d.deptno;

ÄÚÁ¬½Ó±ØÐëÂú×ãÁ¬½ÓÌõ¼þ£¬²»Âú×ãµÄÐÅÏ¢ÎÞ·¨ÏÔʾ

3.ÍâÁ¬½Ó

1¡·×óÍâÁ¬½Ó

¹Ø¼ü×Ö A left join B on Á¬½ÓÌõ¼þ

Ê×ÏÈÌí¼ÓÒ»ÌõûÓв¿ÃŵÄÔ±¹¤ÐÅÏ¢

insert into myemp(empno,ename,job) values(1100,¡¯rose¡¯,¡¯artist¡¯);

emp±íÀïÃæroseûÓÐÔ±¹¤±àºÅ£¬dept±í²»ÄÜÕÒµ½roseµÄ²¿ÃÅÐÅÏ¢

select e.empno,e.ename,d.dname
from myemp e left join dept d
on e.deptno=d.deptno;

Ìõ¼þ²éѯ = (+) ×óÁ¬½Ó

select e.empno,e.ename,d.dname
from myemp e,dept d
where e.deptno=d.deptno(+);

2¡·ÓÒÍâÁ¬½Ó

¹Ø¼ü×Ö A right join B on Á¬½ÓÌõ¼þ

dept±íµÄ40ºÅ²¿ÃÅûÓÐÔ±¹¤ÐÅÏ¢£¬Ê¹ÓÃÄÚÁ¬½ÓºÍÌõ¼þ²éѯ¶¼ÎÞ·¨ÏÔʾ£¬

ÎÒÃÇÓÃÓÒÁ¬½Óʹ40ºÅ²¿ÃÅÏÔʾ³öÀ´¡£

select e.empno,e.ename,d.dname
from emp e right join dept d
on e.deptno=d.deptno;

Ìõ¼þ²éѯ×óÓÒÁ¬½Ó

£¨+£©= ÓÒÁ¬½Ó

= (+) ×óÁ¬½Ó

select e.empno,e.ename,d.dname
from emp e,dept d
where e.deptno=d.deptno(+);

3¡·ÍêÈ«ÍâÁ¬½Ó full join

select e.empno,e.ename,d.dname
from myemp e full join dept d
on e.deptno=d.deptno;

4¡·×ÔÈ»Á¬½Ó natural join

²»ÓÃÇø·Ö¹ØÁªÌõ¼þ£¬oracle×Ô¶¯ÎªÎÒÃÇÇø·Ö

²éѯ¹¤×Ê´óÓÚ2000µÄÔ±¹¤±àºÅ£¬Ô±¹¤ÐÕÃûºÍ²¿ÃÅÃû³Æ¡£

select empno,ename,dname from emp natural join dept where sal>2000;

ȱµã

Èç¹û±íÃû²»È·¶¨£¬²»Äܲéѯ

5¡·×ÔÁ¬½Ó

²éѯԱ¹¤ÐÕÃû£¬Ô±¹¤Ö°³ÆÒÔ¼°Ô±¹¤ËùÊôÁìµ¼¡£

select e.ename,e.job,m.ename
from emp e left join emp m
on e.mgr=m.empno;

Ìõ¼þ²éѯ

select e.ename,e.job,m.ename
from emp e,emp m
where e.mgr=m.empno;

ͳ¼Æº¯Êý

·ÖÀࣺ

COUNT():²éѯ±íÖеÄÊý¾Ý¼Ç¼

AVG(): Çó³öƽ¾ùÖµ

SUM(): ÇóºÍ

MAX(): Çó³ö×î´óÖµ

MIN(): Çó³ö×îСֵ

ͳ¼Æ³ö¹«Ë¾µÄËùÓйÍԱÿ¸öÔÂÖ§¸¶µÄƽ¾ù¹¤×ʼ°×ܹ¤×Ê

select count(empno),sum(sal),avg(sal) from emp;

ͳ¼Æ¹ÍÔ±ÖеÄ×î¸ßºÍ×îµÍ¹¤×Ê

select max(sal),min(sal) from emp;

×¢Ò⣺

COUNT()º¯ÊýµÄÖ÷Òª¹¦ÄÜÊǽøÐÐÊý¾ÝµÄͳ¼Æ£¬µ«ÊÇÔÚ½øÐÐÊý¾Ýͳ¼ÆµÄʱºò£¬Èç¹ûÒ»ÕűíÖÐûÓÐͳ¼Æ¼Ç¼£¬ÄÇôCOUNT()Ò²»á·µ»ØÊý¾Ý£¬Ö»ÊÇÕâ¸öÊý¾ÝÊÇ¡°0¡±.

È磺select count(ename) from bonus; #·µ»ØÊý×Ö0

select sum(sal) from bonus; #·µ»ØNULL

Èç¹ûʹÓÃÆäËûº¯Êý£¬ÔòÓпÉÄÜ·µ»ØNULLÖµ£¬µ«ÊÇCOUNT()ÓÀÔ¶¶¼»á·µ»ØÒ»¸ö¾ßÌåµÄÊý×Ö£¬¼ÇסÁË£¬¼ÇסÁË£¬¼ÇסÁË¡£

·Ö×éͳ¼Æ

ʲôÇé¿öÏÂÐèÒª·Ö×éͳ¼Æ£¿

1¡¢ÄеķÖÒ»×飬ٵķÖÒ»×é

2¡¢ÄêÁä·Ö×飬³ÉÄêºÍδ³ÉÄê

3¡¢µØÇø·Ö×飬ÉϺ£ºÍ±±¾©£¬

ÕâЩÐÅÏ¢Èç¹û¶¼±£´æÔÚÊý¾Ý¿âÖУ¬¿Ï¶¨ÔÚÊý¾Ý¿âµÄijһÁÐÉÏ´æÔÚÖØ¸´Êý¾Ý£¬ÀýÈç°´ÕÕÐÔ±ð·Ö×éµÄʱºò£¬ÓÐÄкÍÅ®£¬°´ÕÕÄêÁä·Ö×飬ÓÐÒ»¸ö·¶Î§µÄÖØ¸´£¬°´ÕÕµØÇøµÄ»°ÓÐÒ»¸öµØÇøµÄÐÅÏ¢ÖØ¸´

×¢Ò⣺µ±Êý¾ÝÖØ¸´µÄʱºò·Ö×é²ÅÓÐÒâÒ壬һ¸öÈËÒ²¿ÉÒÔµ¥¶À·ÖÒ»×飬µ«ÊÇôÓÐÒâÒå¡£

Èç¹ûÐèÒª·Ö×飬¿ÉÒÔʹÓÃGROUP BY×Ӿ䣬Óï·¨ÈçÏ£º

SELECT [DISTINCT]*| ×Ö¶Î [±ðÃû][×Ö¶Î [±ðÃû]] | ͳ¼Æº¯Êý

FROM ±íÃû³Æ [±ðÃû],[±íÃû³Æ [±ðÃû],¡­]

[WHERE Ìõ¼þ(s)]

[GROUP BY ·Ö×é×Ö¶Î1 [,·Ö×é×Ö¶Î2,¡­]]

[ORDER BY ÅÅÐò×Ö¶Î [ASC|DESC][ÅÅÐò×Ö¶Î [ASC|DESC],¡­]]

°´ÕÕ²¿ÃűàºÅ·Ö×飬Çó³öÿ¸ö²¿ÃŵÄÈËÊýºÍƽ¾ù¹¤×Ê

select deptno,count(empno),avg(sal) from emp
group by deptno;

°´ÕÕְλ·Ö×飬Çó³öÿ¸öְλµÄ×î¸ßºÍ×îµÍ¹¤×Ê

select job,max(sal),min(sal) from emp
group by job;

×¢Ò⣺·Ö×麯ÊýÓÐÒÔÏÂÒªÇó£º

1¡¢·Ö×麯Êý¿ÉÒÔÔÚûÓзÖ×éµÄʱºòµ¥¶ÀʹÓ㬿ÉÊDz»ÄܳöÏÖÆäËûµÄ²éѯ×ֶΣ¬È磺

ÕýȷʹÓãºselect count(empno) from emp;

´íÎóʹÓ㬳öÏÖÆäËû×ֶΣºselect empno,count(empno) from emp;

2¡¢Èç¹ûÒª½øÐзÖ×飬Ôòselect×Ó¾äÖ®ºó£¬Ö»ÄܳöÏÖ·Ö×éµÄ×ֶκÍͳ¼Æº¯Êý£¬ÆäËû×ֶβ»ÄܳöÏÖ£¬È磺

ÕýȷʹÓãºselect job,count(empno),avg(sal) from emp group by job;

´íÎóÓ÷¨£ºselect empno,job,count(empno),avg(sal) from emp group by job;

3¡¢·Ö×麯ÊýÔÊÐíǶÌ×£¬µ«ÊÇǶÌ×Ö®ºóµÄ·Ö×麯ÊýµÄ²éѯ֮Öв»ÄÜÔÙ³öÏÖÈÎºÎµÄÆäËû×ֶΣ¬È磺

#°´ÕÕְλ·Ö×飬ͳ¼ÆÆ½¾ù¹¤×Ê×î¸ßµÄ¹¤×Ê

ÏÈͳ¼Æ³ö¸÷¸öְλµÄƽ¾ù¹¤×Ê

select job,avg(sal)
from emp
group by job;

²éѯƽ¾ù¹¤×Ê×î¸ßµÄ¹¤×Ê

´íÎóʹÓãºselect job,max(avg(sal)) from emp group by job;

ÕýȷʹÓãºselect max(avg(sal)) from emp group by job;

²éѯ³öÿ¸ö²¿ÃŵÄÃû³Æ£¬²¿ÃŵÄÈËÊý£¬Æ½¾ù¹¤×Ê

˼·£º

1¡¢È·¶¨ËùÐèÒªµÄÊý¾Ý±í

dept±í£ºÃ¿¸ö²¿ÃŵÄÃû³Æ

emp±í£º ͳ¼Æ³ö²¿ÃŵÄÈËÊý£¬Æ½¾ù¹¤×Ê

2¡¢È·¶¨ÒÑÖªµÄ¹ØÁª×Ö¶Î

emp.deptno=dept.deptno

×ö·¨£º

1¡¢½«dept±íºÍemp±íµÄÊý¾Ý¹ØÁª

select d.dname,e.ename,e.sal
from dept d,emp e
where d.deptno=e.deptno;

2¡¢²é¿´ÉÏÃæÓï¾äÖ´ÐеĽá¹û£¬ÓÐÖØ¸´Öµ£¬¾Í¿ÉÒÔ½øÐзÖ×é²éѯ£¬µ«ÊÇ´ËʱÓë֮ǰµÄ·Ö×鲻̫һÑù£¬Ö®Ç°µÄ·Ö×éÊÇÕë¶ÔÒ»ÕÅʵÌå±í£¬

µ«ÊǶÔÓÚÒÔÉϵÄÊý¾ÝÊÇͨ¹ý²éѯ½á¹ûÏÔʾµÄ£¬ËùÒÔÊÇÒ»ÕÅÁÙʱµÄÐéÄâ±í£¬µ«ÊDz»¹ÜÊÇʵÌå±íºÍÐéÄâ±í£¬Ö»ÒªÊÇÓÐÖØ¸´£¬ÄÇô¾ÍÖ±½Ó½øÐзÖ×é

select d.dname,count(e.empno),avg(e.sal) from dept d,emp e
where d.deptno=e.deptno
group by d.dname;

ͨ¹ý½á¹û¿ÉÒÔ¿´µ½£¬Õâ¸ö·Ö×é²¢²»ºÏÊÊ£¬²¿ÃÅÒ»¹²ÓÐËĸö£¬ÒòΪÒѾ­ÒýÈëÁËdept±í£¬¸Ã±í´æÔÚÁËËĸö²¿ÃÅ£¬ËùÒÔÓ¦¸Ãͨ¹ý×óÓÒÁ¬½ÓÀ´¸Ä±ä²éѯµÄ½á¹û

select d.dname,count(e.empno),avg(e.sal) from dept d,emp e
where d.deptno=e.deptno(+)
group by d.dname;

²éѯ½á¹û·¢ÏÖOPERATIONS²¿Ãŵį½¾ù¹¤×ÊΪNULLÖµ£¬²¢²»·ûºÏ½á¹ûÔ¤ÆÚ£¬ËùÒÔ¿ÉÒÔͨ¹ýNVLº¯ÊýÀ´½øÐд¦Àí£¬ÈçÏ£º

select d.dname,count(e.empno),trunc(nvl(avg(e.sal),0)) avg
from dept d,emp e
where d.deptno=e.deptno(+)
group by d.dname;

¶à×ֶηÖ×é

ÒªÇóÏÔʾÿ¸ö²¿ÃŵıàºÅ£¬Ãû³Æ£¬Î»Ö㬲¿ÃŵÄÈËÊýºÍƽ¾ù¹¤×Ê

˼·£º

1¡¢È·¶¨ËùÐèÒªµÄÊý¾Ý±í

dept±í£ºÃ¿¸ö²¿ÃŵıàºÅ£¬Ãû³Æ£¬Î»ÖÃ

emp±í£º ͳ¼Æ³ö²¿ÃŵÄÈËÊý£¬Æ½¾ù¹¤×Ê

2¡¢È·¶¨ÒÑÖªµÄ¹ØÁª×Ö¶Î

emp.deptno=dept.deptno

×ö·¨£º

1¡¢½«emp±íºÍdept±í¹ØÁª

select d.deptno,d.dname,d.loc,e.empno,e.sal
from dept d,emp e
where d.deptno=e.deptno(+);

2¡¢²é¿´ÒÔÉÏÓï¾äÖ´ÐеĽá¹û£¬·¢ÏÖÓÐÈý¸öÁдæÔÚÖØ¸´Êý¾Ý(deptno,dname,loc),ËùÒÔÔÚ·Ö×éÉϵÄGROUP BY×Ó¾äÖоͿÉÒÔдÉÏÈý¸ö×ֶΣº

select d.deptno,d.dname,d.loc,count(e.empno),
from dept d,emp e
where d.deptno=e.deptno(+)
group by d.deptno,d.dname,d.loc;

ÒÔÉϾÍÊÇ·Ö×é²éѯ£¬²»¹ÜÊǵ¥×ֶλ¹ÊǶà×ֶΣ¬Ò»¶¨ÒªÓÐÒ»¸öǰÌá¾ÍÊÇ´æÔÚÁËÖØ¸´Êý¾Ý¡£

ÔÚÉϸö·¶ÀýµÄ»ù´¡ÉÏ£¬ÒªÇóͳ¼Æ³öÿ¸ö²¿ÃŵÄÏêϸÐÅÏ¢£¬²¢ÇÒÒªÇóÕâЩ²¿Ãŵį½¾ù¹¤×ʸßÓÚ2000

ʹÓÃwhere×Ó¾ä

select d.deptno,d.dname,d.loc,count(e.empno) mycount,trunc(nvl(avg(e.sal),0)) myavg
from dept d,emp e
where d.deptno=e.deptno(+)
and avg(e.sal)>2000
group by d.deptno,d.dname,d.loc;

¸ÃÓï¾ä»á±¨´í£¬ÈçÏ£º

where d.deptno=e.deptno(+) and avg(e.sal)>2000
*
ERROR at line 3:
ORA-00934: group function is not allowed here

Òâ˼ÊÇ˵ÔÚwhere×Ó¾äÖв»ÄÜʹÓÃͳ¼Æº¯Êý£¬ÕâºÍwhere×Ó¾äµÄ¹¦ÄÜÓйء£

Èç¹ûÒª¶Ô·Ö×éºóµÄÊý¾ÝÔٴνøÐйýÂË£¬ÐèҪʹÓÃHAVING×Ӿ䣬Óï·¨¸ñʽÈçÏ£º

SELECT [DISTINCT]*| ×Ö¶Î [±ðÃû][×Ö¶Î [±ðÃû]] | ͳ¼Æº¯Êý

FROM ±íÃû³Æ [±ðÃû],[±íÃû³Æ [±ðÃû],¡­]

[WHERE Ìõ¼þ(s)]

[GROUP BY ·Ö×é×Ö¶Î1 [,·Ö×é×Ö¶Î2,¡­]]

[HAVING ·Ö×éºóµÄ¹ýÂËÌõ¼þ(¿ÉÒÔʹÓ÷Ö×麯Êý)]

[ORDER BY ÅÅÐò×Ö¶Î [ASC|DESC][ÅÅÐò×Ö¶Î [ASC|DESC],¡­]]

ÏÂÃæÊ¹ÓÃHAVING½øÐйýÂË

select d.deptno,d.dname,d.loc,count(e.empno) mycount,trunc(nvl(avg(e.sal),0)) myavg
from dept d,emp e
where d.deptno=e.deptno(+)
group by d.deptno,d.dname,d.loc
having avg(sal)>2000;

×¢Ò⣺WHEREºÍHAVINGµÄÇø±ð

WHERE:ÔÚÖ´ÐÐGROUP BY²Ù×÷֮ǰ½øÐеĹýÂË£¬±íʾ´ÓÈ«²¿Êý¾ÝÖнøÐйýÂË£¬²»ÄÜʹÓÃͳ¼Æº¯Êý£»

HAVING: ÔÚGROUP BY·Ö×éÖ®ºóµÄÔٴιýÂË£¬¿ÉÒÔʹÓÃͳ¼Æº¯Êý¡£

˼¿¼Á·Ï°Ìâ¶þ£º

ÏÔʾ·ÇÏúÊÛÈËÔ±¹¤×÷Ãû³ÆÒÔ¼°´ÓÊÂͬһ¹¤×÷¹ÍÔ±µÄÔ¹¤×ʵÄ×ܺͣ¬²¢ÇÒÒªÂú×ã´ÓÊÂͬһ¹¤×÷µÄ¹ÍÔ±µÄÔ¹¤×ʺϼƴóÓÚ5000£¬Êä³ö½á¹û°´ÕÕÔ¹¤×ʵĺϼÆÉýÐòÅÅÁС£

×Ó²éѯ(ºËÐÄÖØµã)

×Ó²éѯ=¼òµ¥²éѯ+ÏÞ¶¨²éѯ+¶à±í²éѯ+ͳ¼Æ²éѯµÄ×ÛºÏÌå

ÔÚ֮ǰ˵¶à±í²éѯ²»½¨ÒéʹÓã¬ÒòΪÐÔÄܲµ«ÊǶà±í²éѯ×îÓÐÀûµÄÌæ´úÕß¾ÍÊÇ×Ó²éѯ£¬ÔÚʵ¼ÊµÄ¿ª·¢ÖÐʹÓÃ×î¶àµÄ¾ÍÊÇ×Ó²éѯ¡£

Óï·¨£º

SELECT [DISTINCT]*| ×Ö¶Î [±ðÃû][×Ö¶Î [±ðÃû]] | ͳ¼Æº¯Êý,(

SELECT [DISTINCT]*| ×Ö¶Î [±ðÃû][×Ö¶Î [±ðÃû]] | ͳ¼Æº¯Êý

FROM ±íÃû³Æ [±ðÃû],[±íÃû³Æ [±ðÃû],¡­]

[WHERE Ìõ¼þ(s)]

[GROUP BY ·Ö×é×Ö¶Î1 [,·Ö×é×Ö¶Î2,¡­]]

[ORDER BY ÅÅÐò×Ö¶Î [ASC|DESC][ÅÅÐò×Ö¶Î [ASC|DESC],¡­]])

FROM ±íÃû³Æ [±ðÃû],[±íÃû³Æ [±ðÃû],¡­],(

SELECT [DISTINCT]*| ×Ö¶Î [±ðÃû][×Ö¶Î [±ðÃû]] | ͳ¼Æº¯Êý

FROM ±íÃû³Æ [±ðÃû],[±íÃû³Æ [±ðÃû],¡­]

[WHERE Ìõ¼þ(s)]

[GROUP BY ·Ö×é×Ö¶Î1 [,·Ö×é×Ö¶Î2,¡­]]

[ORDER BY ÅÅÐò×Ö¶Î [ASC|DESC][ÅÅÐò×Ö¶Î [ASC|DESC],¡­]])

[WHERE Ìõ¼þ(s)](

SELECT [DISTINCT]*| ×Ö¶Î [±ðÃû][×Ö¶Î [±ðÃû]] | ͳ¼Æº¯Êý

FROM ±íÃû³Æ [±ðÃû],[±íÃû³Æ [±ðÃû],¡­]

[WHERE Ìõ¼þ(s)]

[GROUP BY ·Ö×é×Ö¶Î1 [,·Ö×é×Ö¶Î2,¡­]]

[ORDER BY ÅÅÐò×Ö¶Î [ASC|DESC][ÅÅÐò×Ö¶Î [ASC|DESC],¡­]])

[GROUP BY ·Ö×é×Ö¶Î1 [,·Ö×é×Ö¶Î2,¡­]]

[HAVING ·Ö×éºóµÄ¹ýÂËÌõ¼þ(¿ÉÒÔʹÓÃͳ¼Æº¯Êý)]

[ORDER BY ÅÅÐò×Ö¶Î [ASC|DESC][ÅÅÐò×Ö¶Î [ASC|DESC],¡­]]

WHERE:×Ó²éѯһ°ãÖ»·µ»Øµ¥Ðе¥ÁУ¬¶àÐе¥ÁУ¬µ¥ÐжàÁеÄÊý¾Ý

FROM£º×Ó²éѯ·µ»ØµÄÒ»°ãÊǶàÐжàÁеÄÊý¾Ý£¬µ±×÷Ò»ÕÅÁÙʱ±í³öÏÖ¡£

ÒªÇó²é³ö¹¤×ʱÈSMITH»¹Òª¸ßµÄÈ«²¿ÐÅÏ¢

˼·£º

1¡¢Ê×ÏÈÒªÖªµÀSMITHµÄ¹¤×ÊÊǶàÉÙ

select sal from emp where ename=¡¯SMITH¡¯;

2¡¢ÓÉÓÚ´Ëʱ·µ»ØµÄÊǵ¥Ðе¥ÁеÄÊý¾Ý£¬ËùÒÔÕâ¸ö×Ó²éѯ¿ÉÒÔÔÚWHEREÖгöÏÖ

select * from emp where sal>(
select sal
from emp
where ename=¡¯SMITH¡¯);

ÒªÇó²éѯ³ö¸ßÓÚ¹«Ë¾Æ½¾ù¹¤×ʵÄÈ«²¿¹ÍÔ±ÐÅÏ¢

˼·£º

1¡¢¹«Ë¾µÄƽ¾ù¹¤×ÊÊǶàÉÙ£¿

select avg(sal) from emp;

2¡¢ÓÉÓÚ´Ëʱ·µ»ØµÄÊǵ¥Ðе¥ÁеÄÊý¾Ý£¬ÔÚWHEREÖ®ÖгöÏÖ

select * from emp where sal>(
select avg(sal)
from emp);

ÒÔÉÏ·µ»ØµÄÊǵ¥Ðе¥ÁУ¬µ«ÊÇÔÚ×Ó²éѯÖУ¬Ò²¿ÉÒÔ·µ»Øµ¥ÐжàÁеÄÊý¾Ý£¬Ö»ÊÇÕâÖÖ×Ó²éѯºÜÉÙ³öÏÖ£¬È磺

select * from emp where(job,sal)=(
select job,sal
from emp
where ename=¡¯ALLEN¡¯);

Èç¹û×Ó²éѯ·µ»ØµÄÊǶàÐе¥ÁÐÊý¾ÝµÄ»°£¬Õâ¸öʱºò¾ÍÐèҪʹÓÃÈýÖÖÅжϷûÀ´½øÐÐÅжϣºIN,ANY,ALL

1¡¢IN²Ù×÷·û£ºÓÃÓÚÖ¸¶¨Ò»¸ö×Ó²éѯµÄÅжϷ¶Î§

 

select * from emp
where sal in(
select sal
from emp
where job=¡¯MANAGER¡¯);

ÔÚʹÓÃINµÄʱºò»¹Òª×¢ÒâNOT INµÄÎÊÌ⣬Èç¹ûʹÓÃNOT IN²Ù×÷£¬ÔÚ×Ó²éѯÖУ¬Èç¹ûÓÐÒ»¸öÄÚÈÝÊÇNULL£¬Ôò²»»áÓÐÈκβéѯ½á¹û£¬

ÒòΪÈç¹ûÓÐNULL£¬Ôò»á²éѯËùÓÐÊý¾Ý£¬Èç¹ûÊý¾ÝÁ¿Ì«´ó¾Í»áµ¼ÖÂÓЩ¶´²úÉú£¬ËùÒÔ¼ÓÈëÏÞÖÆ¡£

select * from emp
where sal not in(
select sal
from emp
where job=¡¯MANAGER¡¯);

2¡¢ANY²Ù×÷·û£¬Óëÿһ¸öÄÚÈÝÏàÆ¥Å䣬ÓÐÈýÖÖÆ¥ÅäÐÎʽ

1¡¢=ANY:¹¦ÄÜÓëIN²Ù×÷·ûÊÇÍêȫһÑù£»

select * from emp
where sal=any(
select sal
from emp
where job=¡¯MANAGER¡¯);

2¡¢>ANY:±È×Ó²éѯÖзµ»Ø¼Ç¼×îСµÄ»¹Òª´óµÄÊý¾Ý

select * from emp
where sal>any(
select sal
from emp
where job=¡¯MANAGER¡¯);

3¡¢

²éѯ³öÿ¸ö²¿ÃŵıàºÅ£¬Ãû³Æ£¬Î»ÖúͲ¿ÃÅÈËÊý£¬Æ½¾ù¹¤×Ê

֮ǰʹÓõÄÊǶà×ֶηÖ×éͳ¼ÆÍê³ÉµÄ£¬È磺

select d.deptno,d.dname,d.loc,count(e.empno),avg(e.sal)
from emp e,dept d
where e.deptno(+)=d.deptno
group by d.deptno,d.dname,d.loc;

Õâʱºòʵ¼Ê²úÉúÁ˵ѿ¨¶ù»ý£¬¹²56Ìõ¼Ç¼¡£

ÏÂÃæÊ¹ÓÃ×Ó²éѯÀ´Íê³É£¬ËùÓеÄͳ¼Æ²éѯֻÄÜÔÚGROUP BYÖгöÏÖ£¬ËùÒÔÔÚ×Ó²éѯ֮ÖиºÔðͳ¼ÆÊý¾Ý£¬¶øÔÚÍⲿµÄ²éѯ֮ÖУ¬¸ºÔð½«Í³¼ÆÊý¾ÝºÍdept±íÊý¾ÝÏàͳһ¡£

select d.deptno,d.dname,d.loc,nvl(temp.count,0),nvl(temp.avg,0)
from dept d,(
select deptno dno,count(empno) count,avg(sal) avg
from emp
group by deptno) temp
where d.deptno=temp.dno(+);

Õâ¸ö×Ó²éѯºÍ֮ǰµÄÁ½ÖÖ·½·¨µÄ±È½Ï£º

1¡¢×Ó²éѯÖÐͳ¼ÆµÄ¼Ç¼ÊÇ14Ìõ£¬×îÖÕͳ¼ÆµÄÏÔʾ½á¹ûÊÇ3Ìõ½á¹û

2¡¢dept±íÖ®ÖÐÒ»¹²ÓÐ4Ìõ¼Ç¼

3¡¢Èç¹ûÏÖÔÚ²úÉúµÑ¿¨¶ù»ýµÄ»°Ö»ÓÐ12Ìõ£¬ÔÚ¼ÓÉϹÍÔ±µÄ14Ìõ£¬Ò»¹²²Å26Ìõ

ÔÚ¿ª·¢ÖУ¬Ê¹ÓÃ×Ó²éѯ¿ÉÒÔÌá¸ßЧÂʺͽÚÊ¡ÐÔÄÜ£¬´ó²¿·ÖÇé¿öÏ£ºÈç¹û×îÖÕ²éѯ½á¹ûÖгöÏÖÁËselectÓï¾ä£¬µ«ÊÇÓÖ²»ÄÜÖ±½ÓʹÓÃͳ¼Æº¯Êýʱ£¬¾ÍÔÚ×Ó²éѯÖÐͳ¼ÆÐÅÏ¢¡£

Êý¾Ý¸üÐÂ(ÖØµã)

Ôöɾ¸Ä ²é

Êý¾Ý¸üаüÀ¨Êý¾ÝµÄÔö¼Ó¡¢Ð޸ġ¢É¾³ý¡£

ΪÁË×öʵÑ飬ÎÒÃǽ«emp±í¸´ÖÆÒ»·Ý£¬Ê¹ÓÃÒÔÏÂÖ¸Á

create table myemp as select * from emp;

ÕâÖÖÓï·¨ÊÇoracleÖ§³ÖµÄ£¬ÆäËûµÄÊý¾Ý¿â²»Ò»Ñù

Êý¾ÝµÄÔö¼Ó

Óï·¨£º

INSERT INTO ±íÃû³Æ [(×Ö¶Î1,×Ö¶Î2,×Ö¶Î3,¡­)] VALUES(Öµ1,Öµ2,Öµ3,¡­)

×¢Ò⣺Èç¹ûÐèÒª½øÐÐÔö¼ÓÊý¾ÝµÄ»°£¬ÔòÒÔϵļ¸ÖÖÊý¾ÝÀàÐÍÒª·Ö±ð´¦Àí£º

Ôö¼ÓÊý×Ö£ºÖ±½Ó±àдÊý×Ö£¬È磺123£»

Ôö¼Ó×Ö·û´®£º×Ö·û´®Ó¦¸ÃʹÓᱡ¯¡±ÉùÃ÷£»

Ôö¼ÓDATEÊý¾Ý£º

µÚÒ»ÖÖ£º¿ÉÒÔ°´ÕÕÒÑÓеÄ×Ö·û´®µÄ¸ñʽ±àд×Ö·û´®£¬È磺¡®20-6ÔÂ-06¡¯£»

µÚ¶þÖÖ£ºÀûÓÃTO_DATEº¯Êý½«×Ö·û´®±äΪDATEÐÍÊý¾Ý£»

µÚÈýÖÖ£ºÈç¹ûÉèÖõÄʱ¼äΪµ±Ç°ÏµÍ³Ê±¼ä£¬ÔòʹÓÃSYSDATE;

¶ÔÓÚÊý¾ÝµÄÔö¼ÓÓÐÁ½ÖÖ²Ù×÷¸ñʽ£º

ÍêÕûÐÍ£º

1.

insert into myemp (empno,ename,hiredate,sal,mgr,job,comm)
values (8888,¡¯zhangsan¡¯,TO_DATE(¡®1960-08-17¡¯,¡¯yyyy-mm-dd¡¯),8000,7369,¡¯daza¡¯,1000);

2.

insert into myemp (empno,ename,hiredate,sal,mgr,job,deptno)
values (8889,¡¯lisi¡¯,SYSDATE,3000,7369,¡¯daza¡¯,30);

¼ò±ãÐÍ£º²»Ð´ÁÐÃû³Æ

´íÎó£º

insert into myemp
values (8889,¡¯lisi¡¯,SYSDATE,3000,7369,¡¯daza¡¯,30);

ÕýÈ·£ºÐèÒª°´ÕÕÁÐÃû³ÆµÄ˳ÐòÀ´Ð´£¬±ØÐë·ûºÏ×ֶεÄÒªÇó£¬Ò»°ã¿ª·¢Öв»Ê¹ÓÃ

insert into myemp values (8890,¡¯wangwu¡¯,¡¯daza¡¯,7369,sysdate,3000,null,30);

Êý¾ÝµÄÐÞ¸Ä

Óï·¨£º

UPDATE ±íÃû³Æ SET ¸üÐÂ×Ö¶Î1=¸üÐÂÖµ1,¸üÐÂ×Ö¶Î2=¸üÐÂÖµ2,¡­[WHERE ¸üÐÂÌõ¼þ(s)];

ʾÀý£»

¸üÐÂÔ±¹¤±àºÅΪ7369µÄÔ±¹¤µÄ¹¤×ÊΪ5000£¬½±½ðΪ2000£¬Ö°Î»Éý¼¶Îª¡¯MANAGER¡¯,ְλ¸üÐÂʱ¼äΪµ±Ç°Ê±¼ä

update myemp set sal=5000,comm=2000,job=¡¯MANAGER¡¯,hiredate=sysdate where empno=7369;

ËùÓÐÔ±¹¤µÄ¹¤×Êͳһ¸ÄΪ7500

update myemp set sal=7500;

×¢Ò⣺Èç¹û¸üеÄʱºò²»¼ÓÉϸüÐÂÌõ¼þ£¬ÔòÒâζןüÐÂÈ«²¿Êý¾Ý£¬Ò»¶¨Òª×¢Ò⣬µ±Êý¾ÝÁ¿´ïµ½Ò»¶¨³Ì¶Èʱ£¬ÕâÖÖ·½Ê½²»¿ÉÈ¡¡£

ΪÁ˺óÃæ×öʵÑ飬ÎÒÃÇÐèÒª»Ø¹öÊý¾Ý±í

SQL> ROLLBACK;

Êý¾ÝµÄɾ³ý

Óï·¨£º

DELETE FROM ±íÃû³Æ [WHERE ɾ³ýÌõ¼þ(s)];

ʾÀý:

ɾ³ý1987ÄêÈëÖ°µÄÔ±¹¤µÄÐÅÏ¢

delete from myemp where TO_CHAR(hiredate,¡¯yyyy¡¯)=1987;

×¢Ò⣺Èç¹ûɾ³ýµÄʱºòûÓÐÏàӦƥÅäÌõ¼þµÄʱºò£¬Ôò¸üмǼΪ0£¬¸üвÙ×÷Ò²Ò»Ñù¡£

ɾ³ý±íÖеÄËùÓÐÊý¾Ý

 

delete from myemp;

×¢Ò⣺¶ÔÓÚɾ³ý²Ù×÷£¬¾¡¿ÉÄÜÉÙʹÓã¬ÒòΪɾ³ý²Ù×÷¶ÔÓÚ²éѯ²Ù×÷ҪΣÏÕÐí¶à¡£

Ìáʾ£º¶ÔÓÚɾ³ý²Ù×÷£¬ÔÚ¿ª·¢Ê±¶ÔÓÚËùÓеÄɾ³ý²Ù×÷֮ǰÏȸø³öÒ»¸öÌáʾ¿ò£¬ÒÔ·ÀÖ¹Îóɾ³ý¡£

ÊÂÎñ´¦Àí

¶ÔÓÚÊý¾Ý±íµÄ²Ù×÷£¬²éѯҪ±È¸üвÙ×÷¸ü°²È«£¬ÒòΪ¸üвÙ×÷ÓпÉÄÜ»á³öÏÖ´íÎ󣬵¼ÖÂûÓа´Õռȶ¨µÄÒªÇóÕýÈ·µÄÍê³É¸üвÙ×÷¡£

Ôںܶàʱºò¸üпÉÄÜÓɶàÌõÓï¾ä¹²Í¬Íê³É£¬ÈçÒøÐÐתÕË£º

-ÅжÏAµÄÕË»§ÉÏÊÇ·ñÓÐ5000W select yue+shouxufei>5000+sxf from zhanghu where id=a

-ÅжÏBµÄÕË»§×´Ì¬ÊÇ·ñÕý³£ select id,status from zhanghu where id=b

-´ÓAµÄÕË»§ÉÏÒÆ×ß5000W update zhanghu set yue-5000 where id=a

-ÏòBµÄÕË»§ÉÏÔö¼Ó5000W update zhanghu set yue+5000 where id=b

-ÏòÒøÐÐÖ§¸¶ÊÖÐø·Ñ5W update zhanghu set yue+shouxufei where id=yinhang

ÒÔÉÏÎå¸öÊý¾Ý²Ù×÷ÊÇÒ»¸öÕûÌ壬¿ÉÒÔÀí½âΪһ¸öÍêÕûµÄÒµÎñ£¬Èç¹ûÆäÖеÚÈýµã³ö´í£¬ÆäËû²Ù×÷¸ÃÔõô°ì£¿

Èç¹ûÓвÙ×÷³öÏÖ´íÎó£¬ÄÇôÆäËû²Ù×÷Ó¦¸Ã²»ÔÙ¼ÌÐøÖ´ÐУ¬²¢ÇÒ¶¼»Ø¹éµ½×îԭʼµÄ״̬£¬¶øÕâÒ»¸öÁ÷³ÌµÄ²Ù×÷ʵ¼ÊÉϾÍÊÇÊÂÎñµÄ²Ù×÷¡£

 

»Ø¹ö֮ǰµÄ²Ù×÷

rollback;

Ôٴβ鿴myemp±í£¬È·ÈÏÆäÖеÄÊý¾ÝÇé¿ö

select * from myemp;

ËùÓеÄÊÂÎñ´¦Àí¶¼ÊÇÕë¶Ôÿһ¸ö»á»°½øÐеģ¬ÔÚoracleÖУ¬°Ñÿһ¸öÁ¬½Óµ½Êý¾Ý¿âµÄÓû§¶¼³ÆÎªÒ»¸ö»á»°,ÿһ¸ö»á»°Ö®¼ä±Ë´Ë¶ÀÁ¢£¬»¥²»Í¨ÐÅ£¬Ã¿Ò»¸ö»á»°¶ÀÏí×Ô¼ºµÄÊÂÎñ¿ØÖÆ£¬¶øÊÂÎñ¿ØÖÆÖ®ÖÐÖ÷ҪʹÓÃÁ½¸öÃüÁ

ÊÂÎñµÄ»Ø¹ö£ºROLLBACK,¸üвÙ×÷»Øµ½Ô­µã

ÊÂÎñµÄÌá½»£ºCOMMIT,ÕæÕýµÄ·¢³ö¸üÐÂÇëÇó£¬Ò»µ©Ìá½»ºóÎÞ·¨»Ø¹ö

ʾÀý£º

ÔڻỰ1ÖÐɾ³ýÒ»ÌõÊý¾Ý£¬´ÓÁíÒ»¸ö»á»°À´²éѯÊý¾Ý

ȇȡ1 delete from myemp where empno=7369;

ȇȡ1 select * from myemp;

ȇȡ2 select * from myemp;

ÔڻỰ1Öлعö֮ǰµÄ¸üвÙ×÷£¬ÔÙ´Îɾ³ýÊý¾Ý£¬È»ºóÌá½»£¬ÔÙÔÚÁ½¸ö»á»°ÖвéѯÊý¾Ý,ÔڻỰ1ÖнøÐлعö·¢ÏÖÒѾ­ÎÞ·¨»Ø¹öÁË¡£

ȇȡ1 delete from myemp where empno=7369;

ȇȡ1 commit;

ȇȡ1 select * from myemp;

ȇȡ2 select * from myemp;

×¢Ò⣺ÕâÖÖÊÂÎñ¿ØÖÆ»á³öÏÖһЩÎÊÌ⣬ÀýÈ磬ijһ¸ö»á»°ÔÚ¸üÐÂÊý¾Ý±íµÄʱºò»¹Ã»ÓÐÌá½»ÊÂÎñ£¬ÆäËû»á»°ÊÇÎÞ·¨½øÐиüÐµģ¬±ØÐëµÈ´ý֮ǰµÄ»á»°Ìá½»ºó²Å¿ÉÒÔ¡£

ʾÀý£º

ËÀËø,»á»°1Ö´Ðиüкó£¬ÔÚûÓÐÌύ֮ǰ£¬»á»°2½øÐиüлá³öÏֵȴý

ȇȡ1 update myemp set sal=9000 where empno=7839;

ȇȡ2 update myemp set sal=8000 where empno=7839;

ÕâÖÖÎÊÌâ´Ó´óµÄ·½ÃæÀ´½²¿ÉÒÔ³Æ×÷ËÀËø£¬µ«ÊÇÔÚoracleÖ®ÖÐËÀËøÓкܶàÖÖÀà.

ËùÓеÄÊý¾Ý¸üÐÂÒ»¶¨¶¼»áÊܵ½ÊÂÎñµÄ¿ØÖÆ¡£

Êý¾ÝαÁÐ

ROWNUM(ÖØµã)

ROWNUMΪÿһ¸öÏÔʾµÄ¼Ç¼¶¼»á×Ô¶¯µÄËæ×ŲéѯÉú³ÉµÄÐкš£

ʾÀý£º

²éѯemp±íµÄrownum£¬empno,ename,job,hiredateºÍsal

select rownum,empno,ename,job,hiredate,sal from emp;

¸ÃÐкŲ»ÊÇÓÀ¾ÃµÄ£¬»áËæ×ŲéѯµÄÏÔʾ±ä»¯¶ø±ä»¯

²éѯemp±íµÄrownum£¬empno,ename,job,hiredateºÍsal

select rownum,empno,ename,job,hiredate,sal from emp where deptno=30;

²éѯǰÎåÌõ¼Ç¼

select rownum,empno,ename,job,hiredate,sal from emp where rownum<=5;

²éѯ6-10ÐмǼ

´íÎó×ö·¨£º

select rownum,empno,ename,job,hiredate,sal from emp where rownum between 6 and 10;

Ö´ÐÐÍê³Éºó²¢Ã»Óзµ»ØÈκÎÊý¾Ý£¬ÒòΪrownum²»ÊÇÕæÊµÁУ¬ÕýÈ·µÄ˼·ÊÇÏȲéѯǰ10Ìõ¼Ç¼£¬È»ºóÔÙ²éѯºó5Ìõ¼Ç¼£¬ÐèҪʹÓÃ×Ó²éѯ

select * from (
select rownum rn,empno,ename,job,hiredate,sal from emp
where rownum<=15) temp
where temp.rn>10;

 

ROWID

ROWID±íʾµÄÊÇÿһÐÐÊý¾Ý±£´æµÄÎïÀíµØÖ·µÄ±àºÅ¡£

²é¿´ROWID

select rowid,deptno,dname,loc from dept;

²é¿´Íê³Éºó£¬±£´æ¸Ã½á¹û£¬ÏÂÃæµÄ°¸ÀýÒªºÍÕâ¸ö½á¹û×ö±È½Ï

ÿһÌõ¼Ç¼µÄROWID¶¼²»»áÖØ¸´£¬ËùÒÔ¼´Ê¹ËùÓÐÁеÄÄÚÈÝÖØ¸´£¬ROWIDÒ²²»»áÖØ¸´.

¸ñʽΪ£ºAAAL+XAAEAAAAANAAA

ÆäÖУº Êý¾Ý¶ÔÏóºÅ£ºAAAL+X

Ïà¶ÔÎļþºÅ£ºAAE

Êý¾Ý¿éºÅ£º AAAAAN

Êý¾ÝÐкţº AAA

×ܽ᣺

1¡¢¶à±í²éѯ£ºÔÚ½øÐвéѯÓï¾ä±àдµÄʱºò£¬Ò»¶¨ÒªÈ·¶¨ËùÐèÒª¹ØÁªµÄÊý¾Ý±í£¬¶øÇÒÖ»ÒªÊDZíµÄ¹ØÁª²éѯ£¬¾ÍÒ»¶¨»á´æÔڵѿ¨¶ù»ýµÄÎÊÌ⣬ʹÓùØÁª×Ö¶ÎÏû³ý´ËÎÊÌâ¡£ÔÚʹÓöà±í²éѯµÄʱºòÒª¿¼Âǵ½×óÓÒÁ¬½ÓµÄÎÊÌ⣬oracleÖ®ÍâµÄÊý¾Ý¿â¿ÉÒÔʹÓÃSQL1999Óï·¨¿ØÖÆ×óÓÒÁ¬½Ó¡£

2¡¢ËùÓеÄͳ¼Æº¯ÊýÊÇÓÃÓÚ½øÐÐÊý¾Ýͳ¼Æ²Ù×÷µÄ£¬¶øÍ³¼ÆÒªÔÚ·Ö×éÖнøÐÐ/»òÕßÊǵ¥¶ÀʹÓ㬷Ö×éʹÓÃGROUP BY×Ӿ䣬ÊÇÔÚijһÁÐÉÏ´æÔÚÖØ¸´Êý¾ÝµÄʱºò²Å»áʹÓ÷Ö×é²Ù×÷£¬¶ø·Ö×éºóµÄ¹ýÂËʹÓÃHAVING×Ó¾äÍê³É£¬ËùÓеķÖ×麯Êý¿ÉÒÔǶÌ×£¬µ«ÊÇǶÌ×Ö®ºóµÄ·Ö×麯ÊýÖ®Öв»ÄÜÔÙÓÐÆäËûµÄ²éѯ×ֶΣ¬°üÀ¨·Ö×é×ֶΡ£

3¡¢×Ó²éѯ£º½áºÏÏÞ¶¨²éѯ¡¢¶à±í²éѯ¡¢·Ö×éͳ¼Æ²éѯÍê³É¸÷¸ö¸´ÔÓ²éѯµÄ²Ù×÷£¬×Ó²éѯһ°ãÔÚWHEREºÍFROMÖ®ºó³öÏֽ϶ࡣ

4¡¢Êý¾Ý¿âµÄ¸üвÙ×÷Ò»¶¨ÒªÊܵ½ÊÂÎñµÄ¿ØÖÆ£¬ÊÂÎñµÄÁ½¸öÃüÁî:COMMIT,ROLLBACK,ÿһ¸öÁ¬½Óµ½Êý¾Ý¿âÉϵÄÓû§¶¼ÓÃÒ»¸ö»á»°À´±íʾ¡£

5¡¢Êý¾Ý±íµÄ·ÖÒ³²éѯÏÔʾÒÀ¿¿ROWNUMαÁУ¬Õâ¸öÔÚÒÔºóµÄ¿ª·¢µ±Öбض¨ÒªÊ¹Óá£

 
   
8752 ´Îä¯ÀÀ       30
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ