ORACLE Dictionary 활용


 

1. Dictionary 검색

SELECT * FROM DICT;

 

 

2. 생성된 OBJECTS 확인용 쿼리

SELECT * FROM DBA_OBJECTS;

SELECT * FROM ALL_OBJECTS;

SELECT * FROM USER_OBJECTS;

 

 

3. 해당 OBJECTS SOURCE 확인

SELECT * FROM DBA_SOURCE;

SELECT * FROM ALL_SOURCE;

SELECT * FROM USER_SOURCE;

 

4. Procedure COMPILE 쿼리

ALTER PROCEDURE SP_USER_PROCEDURE COMPILE;

 

 

5. Procedure DROP 쿼리

DROP PROCEDURE SP_USER_PROCEDURE;

 

 

6. Function COMPILE 쿼리

ALTER FUNCTION FN_USER_FUNCTION COMPILE;

 

 

5. 프로시저 DROP 쿼리

DROP FUNCTION FN_USER_FUNCTION;

 

Dos..Batch 로 파일 읽어서  명령실행가능한 배치파일 생성 후 실행하는 방법...

 

 

리스트 파일 예시

/projectHome/src/main/java/com/tsy/admin/controller/UserConController.java
/projectHome/src/main/resources/sql/mybatis/oracle/common/mapper-mybatis-user.xml
/projectHome/src/main/webapp/WEB-INF/jsp/admin/userCustPopupList.jsp
/projectHome/src/main/java/com/tsy/admin/service/impl/UserConServiceImpl.java
/projectHome/src/main/webapp/WEB-INF/jsp/admin/userConDetail.jsp

 /trunk/src/main/resources/sql/mybatis/oracle/manufacturing/mapper-mybatis-pi-wi.xml
 /trunk/src/main/java/com/tsy/common/service/impl/CommonServiceImpl.java
 /trunk/src/main/java/com/tsy/manufacturing/dao/PiWiListDao.java
 /trunk/src/main/java/com/tsy/manufacturing/data/PiWiListVo.java
 /trunk/src/main/java/com/tsy/manufacturing/controller/PiWListController.java
 /trunk/src/main/java/com/tsy/manufacturing/data/PiWiSearchVo.java
 /trunk/src/main/java/com/tsy/manufacturing/service/impl/MgmtMailServiceImpl.java

 

 

 

 

 

실제 수행 배치

 

@echo off setlocal REM ============================================== REM 2018.01.30 YTS REM PROD 배포용 파일 copy 작업. REM ============================================== SET TODAY_DATE=%date:~0,4%%date:~5,2%%date:~8,2% SET TODAY_TIME=%time:~0,2%%time:~3,2%%time:~6,2% SET "FILE_ORG=Deploy.list.txt" SET "FILE_NEW=Deploy.%TODAY_DATE%.bat" SET "FILE_HIS=Deploy.%TODAY_DATE%.log" SET "DIR_ORG_T=/trunk/" SET "DIR_ORG_F=/projectHome/" SET "DIR_ORG_S= " SET "DIR_NEW=/" SET "PATH_ORG=/" SET "PATH_NEW=\" SET DIR_FROM=.\..\srcSource SET DIR_TO=.\..\srcTarget ECHO ======================================== >> %FILE_HIS% ECHO %TODAY_DATE% %TODAY_TIME% >> %FILE_HIS% ECHO ---------------------------------------- >> %FILE_HIS% ECHO DIR_FROM : %DIR_FROM% >> %FILE_HIS% ECHO DIR_TO : %DIR_TO% >> %FILE_HIS% ECHO ======================================== >> %FILE_HIS% ECHO ======================================== ECHO %TODAY_DATE% %TODAY_TIME% ECHO ---------------------------------------- ECHO PROD 배포용 파일 copy 작업. ECHO ECHO ======================================== (for /f "delims=" %%i in ('findstr "^" "%FILE_ORG%"') do ( REM (for /f "delims=" %%i in ('findstr /n "^" "%FILE_ORG%"') do ( set "line=%%i" setlocal enabledelayedexpansion REM 1. /trunk/ => / set "line=!line:%DIR_ORG_T%=%DIR_NEW%!" REM 2. /foundry/ => / set "line=!line:%DIR_ORG_F%=%DIR_NEW%!" REM 3. ' ' => '' set "line=!line:%DIR_ORG_S%=!" REM 4. / => \ set "line=!line:%PATH_ORG%=%PATH_NEW%!" echo XCOPY /Y "%DIR_FROM%!line!" "%DIR_TO%!line!" endlocal ))>"%FILE_NEW%" TYPE "%FILE_NEW%" >> %FILE_HIS% ECHO ------------------------------------------------------- TYPE "%FILE_NEW%" ECHO ------------------------------------------------------- ECHO 작업용 Script 는 %FILE_HIS% 에 ADD ... ECHO 생성된 BAT파일 "%FILE_NEW%" 실행합니다~!! ECHO ------------------------------------------------------- PAUSE CALL "%FILE_NEW%" PAUSE DEL "%FILE_NEW%"

 

 

 

 

 

 

 

 

 

 

 

 

dddddd

 

 

 

.................

......

 

 

 

 

 

 

'IT TIP > DOS' 카테고리의 다른 글

shutdown 명령어  (0) 2017.04.02

 

간단하게 HTML 이나 Script 을 연습하던지... html 파일을 만들지 않고

 

TEST 할 수 있는 연습장으로 보면 됨

 

미리보기 버튼을 누르면 새창으로 인터넷이 뜨면서

 

작성한 스크립트가 실행된다.

 

아래의 상자에 HTML 코드를 입력 한 후 [미리보기] 버튼을 클릭하세요

 

 

 

'IT TIP > Web' 카테고리의 다른 글

MARQUEE 태그  (0) 2017.04.13
HTML Tag 설명  (0) 2017.04.13
정규표현식 - 메타문자 설명  (0) 2017.04.11
마퀴태그는 글자들을 움직이게 하는 재미있는 태그입니다.

<MARQUEE>적고 싶은 말</MARQUEE>
behavior=scrol 일정방향 스크롤  
behavior=slide 반복후 화면끝에서 정지
behavior=alternate 좌우왕복  
scrolldelay=수치 스크롤 지연값을 정해준다. 값을 많이주면 점프하듯 스크롤
scrollamount=수치 스크롤 속도를 정해줌
loop=수치 반복 횟수를 정함. infinite 이면 무한반복   
bgcolor=RGB칼라 스크롤 영역의 배경색을 정함
width=수치 스크롤 영역의 넓이   
height=수치  스크롤 영역의 높이  
direction=reft,right,up,down  왼쪽,오른쪽,위로,아래 방향으로 스크롤
이렇게 넣으면

<MARQUEE behavior=scroll direction=right scrolldelay=10 scrollamount=20 loop=-1>안녕하세요 여러분!!*^.^*재미있죠?</MARQUEE>


안녕하세요 여러분!!*^.^*재미있죠?

<MARQUEE width=190>d^.^b<MARQUEE width=229>
◀-♡-◀</MARQUEE></MARQUEE>

d^.^b ◀ -♡-◀
<MARQUEE bgcolor=white direction=up height=100> 사랑이란.... <br>끝없는<br> 기다림의 연속이다....<br></MARQUEE>   사랑이란....
끝없는
기다림의 연속이다....

<MARQUEE direction=right>ⓘ ⓛⓞⓥⓔ</MARQUEE><MARQUEE direction=reft>ⓨⓞⓤ</MARQUEE> ⓘ ⓛⓞⓥⓔⓨⓞⓤ
<marquee width=229 scrollamount=70><H3>반짝반짝하죠?</marquee>
  

 

반짝반짝 하죠?

<marquee behavior=alternate width=229><font color=blue><strong>왔다갔다.하네요</marquee>
 
왔다갔다.하네요
<marquee direction=up height=50><marquee behavior=alternate > 뛰어다니네요. 하하^^</marquee> 뛰어다니네요.하하^^

 

 

Script 연습장 클릭

 

'IT TIP > Web' 카테고리의 다른 글

HTML / Script 연습장  (0) 2017.04.13
HTML Tag 설명  (0) 2017.04.13
정규표현식 - 메타문자 설명  (0) 2017.04.11

 

 

형 식

구  성

내            용

문서의 기본 구조를 나타내 주는 태그

<HTML>

<HTML>...</HTML>

 HTML 언어로 작성되어 있다는 것을 알려줍니다.

<HEAD>

<HEAD>...</HEAD>

 Heading의 준말로 글의 머리말에 해당합니다.

<TITLE>

<TITLE>...</TITLE>

 타이틀바에 새겨질 글자를 정의합니다.

<BODY>

<BODY>...</BODY>

 본문에 해당하는 부분을 알려줍니다. 

<Hn>

<Hn>...</Hn>

 표제 부분에 들어갈 말을 정의합니다. 1~6까지의 숫자를 사용하고 숫자가 커질수록    표제는 작아집니다.  기본 값은 H4입니다.

<!-...->

<!-주석내용-> 

 주석을 달거나 잠시동안 이미지를 보이지 않게 할 때 사용합니다.

문단 혹은 줄을 바꾸는 태그

<P>

<P>

 문단을 바꾸는 태그입니다. 줄 바꿈과 동시에 줄을 띈 것 같은 효과가 나타납니다.

<BR>

<BR>

 문단을 바꾸는 태그입니다. 줄 바꿈의 역할만을 수행합니다.

<PRE>

<PRE>...</PRE>

 여백이나 줄 간격 등을 고정시켜 주는 역할을 합니다.

글자의 크기를 마음대로 조절하는 태그

<FONT>

<FONT SIZE=n>...</FONT>

 글자의 크기를 마음대로 조절해 줍니다. 뒤의 숫자는 1~7이며 7이 가장  큰 크기입니   다. 기본 값은 3입니다.

선 그리기 태그

<HR>

<HR ARIGN=n

WIDTH=n SIZE=n>

 입체적인 선을 그려줍니다,  ALLIGN은 선의 정렬을 WIDTH는 선의 폭을, SIZE는    선의 높이를 정해줍니다. (※ n=숫자..^^)

목록을 정리해 주는 태그

<LI>

<UL>...</UL>

 순서가 없는 목록으로 일반적인 나열을 말합니다.

<OL>...</OL>

 순서가 있는 목록으로 위에서부터 번호를 매깁니다.

<MENU>...</MENU>

 메뉴 목록으로 그리 길지 않은 문장의 열거에 사용합니다.

<DIR>...</DIR>

 디렉토리 목록으로 메뉴 목록보다 짧은 문장을 나열합니다.

<DL>...</DL>

 정의 목록 태그입니다. <LI>가 아닌 <DT>와 <DD>를 사용합니다.

문서를 가운데로 정렬시켜 주는 태그

<CENTER>

<CENTER>...</CENTER>

 전체 문정을 가운데로 정렬시켜 줍니다.

인용하기 태그

<BLOCKQUOTE>

<BLOCKQUOTE>...

</BLOCKQUOTE>

 문장 내에서 인용을 할 경우 들여 쓰기를 한 후 인용구로 처리합니다.

글자의 모양을 정의해 주는 태그

<STRONG>

<STRONG>...</STRONG>

 굵은 글씨를 나타내 주는 태그입니다.

<B>

<B>...</B>

<EM>

<EM>...</EM>

 이탤릭체의 글씨를 나타내 주는 태그입니다.

<I>

<I>...</I>

<KBD>

<KBD>.../<KBD>

 타자기체의 글씨를 나타내 주는 태그입니다.

<CODE>

<CODE>...</CODE>

<TT>

<TT>...</TT>

배경 이미지 작업하기

<BODY>

<BODY BACKGROUNG="...">

 배경 이미지를 띄워줍니다.

<BODY BGCOLOR="#nnnnnn">

 배경 색깔을 지정해 줍니다.

그 밖의 태그들

<DFN>

<DFN>...</DFN>

 정의되어지는 단어에 대한 것을 말합니다.

<CITE>

<CITE>...</CITE>

 책이나 사진 등의 제목을 말할 때 쓰입니다.

<SAMP>

<SAMP>...</SAMP>

 컴퓨터 상에 메시지를 나타낼 때 쓰입니다.

<VAR>

<VAR>...</VAR>

 이탤릭체로 표현됩니다.

<SUB>

<SUB>...</SUB>

 첨자에 관한 태그입니다.

<SUP>

<SUP>...</SUP>

 윗첨자를 나타냅니다.

<BASEPOINT>

<BASEPOINT>... <BASEPOINT>

 기본적으로 미리 약속된 크기를 다시 정할 때 사용합니다.

부분은 강조해 주는 태그

<BLINK>

<BLINK>...</BLINK>

 글자를 깜박이게 해줍니다.

<U>

<U>...</U>

 글자에 밑줄을 그어줍니다.

연결하기 태그

<A>

<A HREF=“...”>...</A>

 다른 홈페이지와 연결 시켜줍니다.

<A NAME="...">...</A>

 자신의 홈페이지 내에서 연결해 줍니다.

주소 및 편지 쓰기

<ADDRESS>

<ADDRESS>... </ADDRESS>

 주소에 대한 정의를 내려줍니다.

<MAILTO>

<A HREF="MAILTO...">

 편지 쓰기 창을 띄워 줍니다.

 Ex. <A HERF="MAIL TO:THDTJSDN@NETSGO.COM"> 멜을 보내자!!</A>

색상 지정하기

<BODY>

<BODY TEXT="#nnnnnn">...</BODY>

 글자색을 지정합니다.

<BODY LINK="#nnnnnn">...</BODY>

 하이퍼링크의 색을 지정합니다.

<BODY VLINK="#nnnnnn">...</BODY>

 한 번 누른적이 있는 하이퍼링크의 색을 지정합니다.

<BODY ALINK="#nnnnnn">...</BODY>

 누르고 있는 동안의 색을 지정합니다.

이미지 다루기에 필요한 태그

<IMG>

<IMG SRC="...">

 이미지를 정의해줍니다.

<IMG SRC="..." ALIGN=...>

 이미지의 정렬 상태를 나타내 줍니다.

<IMG SRC="..." WIDTH="..." HEIGHT="...">

 이미지의 크기를 조절해 줍니다.

<IMG SRC="..." LOWSRC="...">

 이미지를 JPEG파일로 나타내 줍니다.

<IMG SRC="..."VSPACE= HSPACE=>

 이미지의 여백을 조절해 줍니다.

<IMG SRC="..." BORDER="...">

 이미지의 태두리선을 조절합니다.

<IMG SRC="..." ALT="...">

 이미지가 전송되지 않았을 경우에 글자로 대처해 줍니다.

 

창 만들기 태그

<FRAME>

<FRAMESET>...</FRAMESET>

 창의 기본 틀을 지정합니다.

<FRAMESET ROW= "숙자 혹은 %“>

 위 아래로 나눠줍니다.

<FRAME COLS= “숫자 혹은%”>

 좌우로 나눠줍니다.

<FRAME SRC="..." MARGINHEIGHT="...">

 창에 들어갈 상하 여백을 정의합니다.

<FRAME SCROLLING="...">

 스크롤바를 설정해 줍니다.

<NOFRAMES>...</NOFRAMES>

 프레임이 안보이게 해줍니가.

<FRAME SRC="..." MARGINWIDTH="...">

 창에 들어갈 좌우 여백을 설정해 줍니다.

<SELECT>

<SELECT NAME="...">

 선택 사항 상자를 만들어 줍니다.

<NOBR>

<NOBR>...</NOBR>

 화면 크기에 따라 문단이 바뀌는 것을 방지합니다.

 <WBR>

<WBR>...</WBR>

 위의 태그 안에서 문단을 바꿀 때 사용합니다.

CGI 양식 첨가하기

<FORM>

<FORM>...</FORM>

 양식을 정의 합니다.

<FORM METHOD="..." ACTION="...">

 양식의 방법을 정의합니다.

<TEXT

AREA>

<TEXTAREA NAME="..." ROWS="...">

 글틀 상자를 정의합니다.

<INPUT>

<INPUT TYPE="...">

 어떤 형태로 입력할 것인지를 정의합니다.

<INPUT TYPE="RADIO">

 라디오 단추를 만들어 줍니다.

<INPUT TYPE="CHECKBOX">

 체크 상자를 만들어 줍니다.

<INPUT TYPE="SUBMIT">

 제출 버튼을 만들어 줍니다.

<INPUT TYPE="RESET">

 취소 버튼을 만들어 줍니다.

<SELECT>

<SELECT NAME="..."

 선택 사항 상자를 만들어 줍니다.

표 만들기 태그

<TABLE>

<TABLE BORDER>...</TABLE>

 표의 전체 형식을 나타냅니다.

<TR><TD></TD></TR>

 표 내부에 들어갈 형식을 정의합니다.

<TD COLSRAN=n>

 가로칸을 n만큼 합쳐줍니다.

<TD ROWSPAN=n>

 세로칸을 n만큼 합쳐줍니다.

<TD ALIGN=...>

 표안의 좌우 정렬 방식을 정의합니다.

<TD VALIGN=...>

 표안의 상하 정렬 방식을 정의합니다.

<FONT>

<FONT COLOR="...">...</FONT>

 글자색을 바꾸고 싶은 것으로 마음대로 바꾼다.

 

'IT TIP > Web' 카테고리의 다른 글

HTML / Script 연습장  (0) 2017.04.13
MARQUEE 태그  (0) 2017.04.13
정규표현식 - 메타문자 설명  (0) 2017.04.11

 

키보드에는 여러 특수문자가 있습니다. !나 @, %, ^와 같은것들 말이지요.

 

편의상 ~는 '물결', ^는 '꺽쇄', *는 '별표' 등으로 읽는데

 

정확한 명칭은 무엇일까요?

 

읽는 법은 다음과 같습니다.

 

!

Exclamation Point (익스클레메이션 포인트)

"

Quotation Mark (쿼테이션 마크)

#

Crosshatch (크로스해치)

$

Dollar Sign (달러사인)

%

Percent Sign (퍼센트사인)

@

At Sign (엣 사인, 혹은 엣)

&

Ampersand (앰퍼센드)

'

Aposterophe (어퍼스트로피)

*

Asterisk (아스테리스크)

-

Hyphen (하이픈)

.

Period (피리어드)

/

Slash (슬래시)

\

Back Slash (백슬래시)

:

Colon (콜론)

;

Semicolon (세미콜론)

^

Circumflex (서큠플렉스)

`

Grave (그레이브)

{

Left Brace (레프트 브레이스)

}

Right Brace (라이트 브레이스)

[

Left Braket (레프트 브라켓)

]

Right Braket (라이트 브라켓)

|

Vertical Bar (버티컬바)

~

Tilde (틸드)

'IT TIP > Tools & TIP' 카테고리의 다른 글

소스코드 블로깅시 소스 구문강조 방법  (0) 2017.04.05
이클립스 단축키  (0) 2017.04.02

 
 질의 1. 3학년 학생의 학번과 이름을 구하라.
 
    SQL> select 학번,이름
       2  from 학생
       3  where 학년='3';

       학번  이름
       ----- ------------
       88033 이육사
       86032 정소일

 

 질의 2. 학생테이블에서 학번과 피트(ft)로 환산된 신장을 구하라.
     
    SQL> select 학번,신장*0.0328 바보    //바보는 엘리어스....
       2  from 학생;

     학번       바보
     ----- ---------
     88001     5.576
     87002    5.5104
     87012     5.904
     88033      5.74
     85014    6.0024
     86032     5.412
   6 개의 행이 선택되었습니다.

 

 질의 3. 소속이 CD인 학생중 신장이 170이상되는 학생의 학년을 구하라

     SQL> select 학년
        2  from 학생
        3  where 소속='CD' and 신장>=170;

        학년
   ---------
          2
          2

 

 질의 4. 소속이 CD인 학생을 신장 크기 순으로 구하라.
 
     SQL> select *
        2  from 학생
        3  where 소속='CD'
        4  order by 신장; ([desc;] // 를 사용하면 180->170->168순으로 된다.)

     학번  이름              학년      신장 소속
     ----- ------------ --------- --------- ----------
     87002 이일삼               4       168 CD
     88001 홍길동               2       170 CD
     87012 김이사               2       180 CD

 

 질의 5. 소속이 같은 학생테이블과 설강테이블로부터 모든정보를 구하라.
 
     SQL> select 학생.*,설강.*
        2  from 학생, 설강
        3  where 학생.소속=설강.소속;

     학번  이름              학년      신장 소속       번  교수명       과  소속
     ----- ------------ --------- --------- ---------- --- ------------ --- ------
     88001 홍길동               2       170 CD         101 김일삼       SE  CD
     87002 이일삼               4       168 CD         101 김일삼       SE  CD
     87012 김이사               2       180 CD         101 김일삼       SE  CD
     88001 홍길동               2       170 CD         102 권오영       DB  CD
     87002 이일삼               4       168 CD         102 권오영       DB  CD
     87012 김이사               2       180 CD         102 권오영       DB  CD
     88001 홍길동               2       170 CD         104 이  상       FP  CD
     87002 이일삼               4       168 CD         104 이  상       FP  CD
     87012 김이사               2       180 CD         104 이  상       FP  CD
     85014 김일구               4       183 ED         105 이석영       CS  ED
     86032 정소일               3       165 ED         105 이석영       CS  ED
               11 개의 행이 선택되었습니다.

 

 질의 6.이육사 학생이 수강한 교수명과 성적을 구하시오.

    SQL> select 교수명,성적       //"select 설강.교수명, 수강.성적" 과 같다
       2  from 설강,수강
       3  where 수강.번호=설강.번호  and 수강.학번 =
       4      (select 학번
       5        from 학생
       6        where  학생.이름 = '이육사');
 
      교수명            성적
      ------------ ---------
      권오영              85

 

 질의 7. 소속이 같은 두학생의 이름을 모두 구하라.
  
    SQL> select 학생.이름 , 학생.소속,a.이름
       2  from 학생,학생 a
       3  where 학생.소속 = a.소속
       4  order by 학생.이름;

     이름         소속       이름
     ------------ ---------- ------------
     김이사       CD         홍길동
     김이사       CD         이일삼
     김이사       CD         김이사
     김일구       ED         김일구
     김일구       ED         정소일
     이육사       ID         이육사
     이일삼       CD         홍길동
     이일삼       CD         이일삼
     이일삼       CD         김이사
     정소일       ED         김일구
     정소일       ED         정소일
     홍길동       CD         홍길동
     홍길동       CD         이일삼
     홍길동       CD         김이사
        14 개의 행이 선택되었습니다.

 

  질의 8. 전체 학생수를 구하라.

      SQL> select count(학번) 전체학생수 //엘리어스 된 상태.
         2  from 학생;

         전체학생수
         ----------
                 6
 
  질의 9. 3과목 이상 수강 신청한 학생의 학번을 구하라.
     
      SQL> select 학번
         2  from 수강
         3  group by 학번
         4  having count(학번)>=3;

 

           학번
           -----
           88001

 

  질의 10.이씨 성을 갖는 학생의 모든 정보를 구하라

       SQL> select 학생.* , 수강.*
          2  from 학생,수강
          3  where 학생.학번=수강.학번 and 학생.이름 like '이%';

     학번  이름              학년      신장 소속       학번  번       성적
     ----- ------------ --------- --------- ---------- ----- --- ---------
     87002 이일삼               4       168 CD         87002 101        80
     87002 이일삼               4       168 CD         87002 104        95
     88033 이육사               3       175 ID         88033 102        85

 

 질의 11. 3학년 이상되는 학생의 학번과 이름을 구하라.

  SQL> select 학번,이름   
      2  from 학생           //학생Table
      3  where 학년 >= 3;    //조건

        학번  이름           //출력
        ----- --------------------
        87002 이일삼
        88033 이육사
        85014 김일구
        86032 정소일

 

 질의 12. 설강번호 101을 수강하는 학생의 이름을 구하라

  SQL> select 이름
      2  from 학생,수강                 
      3  where 학생.학번 = 수강.학번 and 수강.번호='101';

        이름
        --------------------
        이일삼
        홍길동

 

 질의 13. 소속이 MD인 설강 과목을 수강하는 학생의 이름을 구하라

  SQL> select 이름
      2  from 학생,수강,설강
      3  where 학생.학번=수강.학번 and 수강.번호=설강.번호 and 설강.소속='MD';

       이름
       --------------------
       김이사
       홍길동

 

 질의 14. 학번이 88001인 학생과 소속이 같은 학생의 학번을 구하라.
 
  SQL> select 학번
     2  from 학생
     3  where 소속 =  
     4        (select 소속
     5           from 학생
     6             where 학생.학번='88001') and 학생.학번 <>'88001'; //학번이 88001인 학생을 제외한다.

     학번
     -----
     87002
     87012

 

  질의 15.번호가 102인 교수로부터 평균 성적이상을 받은 학생의 학번을 구하라
            // 문제분석 : 번호가 102인 교수가 준 성적이 성적칼럼에서 평균이상인....(평균성적의 개념이 애매함)
  SQL> select 학번
      2  from 수강
      3  where 번호='102' and 성적>=(select avg(성적)  from 수강 );

     학번
     -----
     88033
 
  질의 16.설강번호 101을 수강하는 학생의 이름을 구하라 EXISTS를 사용하여 표현

   SQL> select 이름
       2  from 학생
       3  where exists       //다음의 조건을 만족하는것이 있다면.
       4   ( select *
       5    from 수강
       6     where 번호='101' and 학생.학번=학번);

      이름
      --------------------
      홍길동
      이일삼 

 

  질의 17. 설강번호 101을 수강하지 않는 학생의 이름을 구하라.
    
    SQL> select 이름
       2  from 학생
       3  where not exists    //다음의 조건을 만족하는것이 없다면.
       4   ( select 번호
       5    from 수강
       6   where 번호='101' and 학생.학번=학번);
 
      이름
      --------------------
      김이사
      이육사
      김일구
      정소일
 
 질의 18. 모든 과목을 수강하는 학생의 이름을 구하라

    SQL> select 이름
       2  from  학생
       3  where 학번 in         //in을 안쓰면 에러
       4    ( select 학번
       5      from 수강
       6      group by 학번
       7      having count(번호)=
       8       (select count(과목명)
       9        from 설강)
      10     );
 
      이름
      --------------------
      홍길동 
      
 질의 19. 소속이 CD인 학생이거나 수강번호 102를 수강하는 학생의 학번을 구하라
 
    SQL>  select 학번          
        2   from 수강                 
        3    where  번호 in            //in을 안쓰고 "번호 = "을 하면 에러남 ->번호가 존재하는 학번을 출력!
        4          (select 번호        //조건1
        5           from   설강        //    설강 테이블에서
        6           where  소속='CD')  //    소속이 CD인 번호를 return(?)
        7    or  번호='102'            //조건2  또는 수강테이블안에 번호가 102인
        8    group by 학번;            //중복을 방지
 
      학번
      -----
      85014
      87002
      87012
      88001
      88033
                                            
 질의 20. 한 과목 이상을 수강한 학생의 학번을 구하라
                               
     SQL> select 학번               //수강과목에 따라 학번이 하나씩 대입되어있으므로 학번이 한번이상나오면
         2  from 수강               //  한과목 이상 수강
         3  group by 학번
         4  having count(학번)>0   //그룹을 갖게하기위한 조건
 
         학번
         -----
         85014
         87002
         87012
         88001
         88033                                                

 

  질의 21. 수강신청을 한 학생의 학번과 번호를 구하라
 
    SQL> select 학번,번호 from 수강;

        학번  번
        ----- ---
        88001 101
        88001 102
        88001 103
        88001 104
        88001 105
        87002 101
        87002 104
        87012 102
        87012 103
        88033 102
        85014 104

        학번  번
        ----- ---
        85014 105
       12 rows selected.


  질의22. 학생들의 이름과 신장으로부터 표준체중을 구하라 (표준체중은 (신장-110)*1.1 로 구한다고 가정한다)

    SQL> select 이름,((신장-110)*1.1) "표준체중"
        2  from 학생;

        이름                   표준체중
        -------------------- ----------
        홍길동                       66
        이일삼                     63.8
        김이사                       77
        이육사                     71.5
        김일구                     80.3
        정소일                     60.5

 

  질의23. 설강 테이블의 모든 사항을 구하라.

    SQL> select * from 설강;      
  
        번호 교수명               과목명 소속
        ---- -------------------- ------ ----------
        101  김일삼               SE     CD
        102  권오영               DB     CD
        103  김소월               DG     MD
        104  이  상               FP     CD
        105  이석영               CS     ED
      
  질의24. 신장이 170 이상이고 180이하인 학생을 구하라.

   SQL> select 이름,신장
      2  from 학생
      3  where 신장>=170 and 신장<=180;

       이름                       신장
       -------------------- ----------
       홍길동                      170
       김이사                      180
       이육사                      175
 
  질의25. 학번이 88001인 학생의 수강한 수강번호와 성적을 구하라

   SQL> select 번호,성적
      2  from 수강
      3  where 학번=88001;

       번호       성적
       ---- ----------
       101          95
       102          80
       103          60
       104          80
       105          85
 
  질의26. 소속이 CD이며,SE과목을 설강한 교수명을 구하라.

   SQL> select 교수명
      2  from 설강
      3  where 소속='CD' and 과목명='SE';

      교수명
      --------------------
      김일삼
 
  질의 27. 교수번호가 102인 교수가 강의하는 과목을 수강한 학생을 성적순으로 정렬하여 학번과 성적을 구하라.

   SQL> select 학번, 성적
      2  from 수강
      3  where 번호='102'
      4  order by 성적;

      학번        성적
      ----- ----------
      87012         70
      88001         80
      88033         85

 

  질의 28. 신장이 170 이상인 학생을 학년을 기준하여 오름차순으로 학번을 구하라

   SQL> select  학번
      2  from 학생
      3  where 신장>=170    
      4  order by 학년 asc
  
      --
      88001
      87012
      88033
      85014

 

  질의 29. 학생들을 피트(Feet)로 환산된 신장과 학번에 따라 정렬하여 학번과 환산된 신장을 구하라
  
   SQL> select 학번, 신장*0.0328 "환산된 신장"                                                                                     2  from 학생
      3  order by 학번;

      학번  환산된 신장
      ----- -----------
      85014      6.0024
      86032       5.412
      87002      5.5104
      87012       5.904
      88001       5.576
      88033        5.74
 
 질의 30. 학기중 설강된 과목을 강의하는 설강 고수의 번호와 이름 , 설강과목 및 소속과 그 과목을 수강한
          학생의 학번,번호,성적을 구하라
 
    SQL> select 설강.번호, 설강.교수명, 설강.과목명, 설강.소속, 수강.학번, 수강.번호, 수강.성적
       2  from 설강,수강
       3  where 설강.번호=수강.번호;
 
   번호 교수명               과목명 소속       학번  번호       성적
   ---- -------------------- ------ ---------- ----- ---- ----------
   101  김일삼               SE     CD         88001 101          95
   101  김일삼               SE     CD         87002 101          80
   102  권오영               DB     CD         88001 102          80
   102  권오영               DB     CD         88033 102          85 
   102  권오영               DB     CD         87012 102          70
   103  김소월               DG     MD         88001 103          60
   103  김소월               DG     MD         87012 103          80
   104  이  상               FP     CD         88001 104          80
   104  이  상               FP     CD         87002 104          95
   104  이  상               FP     CD         85014 104          90
   105  이석영               CS     ED         88001 105          85
  
   번호 교수명               과목명 소속       학번  번호       성적
   ---- -------------------- ------ ---------- ----- ---- ----------
   105  이석영               CS     ED         85014 105          75
              12 rows selected.

 


 <31번> 설강한 교수의 소속과 학생의 소속이 같은 과인 경우의 학생과 교수의 모든 항을 구하라
 
    SQL> select 학번,이름,학년,신장,학생.소속,교수명,과목명
       2  from 학생,설강
       3  where 학생.소속=설강.소속;
 
       학번  이름       학년      신장 소속       교수명     과목
       ----- ---------- ---- --------- ---------- ---------- ----
       88001 홍길동     2          170 CD         김일삼     SE
       87002 이일삼     4          168 CD         김일삼     SE
       87012 김이사     2          180 CD         김일삼     SE
       88001 홍길동     2          170 CD         권오영     DB
       87002 이일삼     4          168 CD         권오영     DB
       87012 김이사     2          180 CD         권오영     DB
       88001 홍길동     2          170 CD         이 상      FP
       87002 이일삼     4          168 CD         이 상      FP
       87012 김이사     2          180 CD         이 상      FP
       85014 김일구     4          183 ED         이석영     CS
       86032 정소일     3          165 ED         이석영     CS
                    11 개의 행이 선택되었습니다.

 

 <32번> CS과목을 수강한 학생의 학번을 구하라.
 
     SQL> select 학번
        2  from 수강,설강
        3  where 수강.번호=설강.번호 and 과목명='CS';
 
       학번
       -----
       88001
       85014
 
 <33번> 학생의 신장이 170이상인 학생이 수강한 과목의 교수번호와 학생의 학번을 구하라
 
     SQL> select 수강.번호,학생.학번
        2  from 수강,학생
        3  where 학생.학번=수강.학번 and 신장 >=170;
 
      번호 학번
      ---- -----
      101 88001
      102 88001
      103 88001
      104 88001
      105 88001
      102 87012
      103 87012
      102 88033
      104 85014
      105 85014
       10 개의 행이 선택되었습니다.

 

 <34번> 2학년이 아닌 학생의 학번과 이름을 구하라

     SQL> select 학번,이름
        2  from 학생
        3  where 학년<>'2';  // [!=]과 같다.
 
      학번  이름
      ----- --------------------
      87002 이일삼
      88033 이육사
      85014 김일구
      86032 정소일
 
 <35번> FP과목이나 DB과목을 설강한 교수의 번호와 교수명 그리고 과목명을 구하라
 
     SQL> select 번호,교수명,과목명
        2  from 설강
        3  where 과목명='FP' OR 과목명='DB';
 
       번호 교수명               과목명
       ---- -------------------- ------
       102  권오영               DB
       104  이  상               FP
 
 <36번> 3학년이 아니고 소속이 CD가 아닌 학생의 소속과 같은 설강교수에 대한 학생과 교수의 모든 내용을 구하라

     SQL> select 학생.*,설강.*
        2  from 학생,설강
        3  where 학생.소속=설강.소속 and 학생.학년 <>'3' and 학생.소속 <>'CD';
 
    학번  이름       학년      신장 소속       번호 교수명     과목 소속
    ----- ---------- ---- --------- ---------- ---- ---------- ---- ----------
    85014 김일구     4          183 ED         105  이석영     CS   ED
   
 <37번> 설강한 과목을 한 학생이라도 수강하는 경우에 설강한 교수가 속한 소속의 중복을 제거하여 구하라.

   SQL> select *
      2  from 설강,수강
      3  where 설강.번호=수강.번호;

    번호 교수명               과목명 소속       학번  번호       성적
    ---- -------------------- ------ ---------- ----- ---- ----------
    101  김일삼               SE     CD         88001 101          95
    101  김일삼               SE     CD         87002 101          80
    102  권오영               DB     CD         88001 102          80
    102  권오영               DB     CD         88033 102          85
    102  권오영               DB     CD         87012 102          70
    103  김소월               DG     MD         88001 103          60
    103  김소월               DG     MD         87012 103          80
    104  이  상               FP     CD         88001 104          80
    104  이  상               FP     CD         87002 104          95
    104  이  상               FP     CD         85014 104          90
    105  이석영               CS     ED         88001 105          85
    105  이석영               CS     ED         85014 105          75
                 12 rows selected.

 

 <38번> 학기중 설강된 교수와 소속이 같은 학생의 학번과 설강한 교수의 번호를 구하라

   SQL> select 학생.학번,설강.번호
      2  from 학생,설강
      3  where 학생.소속=설강.소속;

     학번  번호
     ----- ----
     88001 101
     87002 101
     87012 101
     88001 102
     87002 102
     87012 102
     88001 104
     87002 104
     87012 104
     85014 105
     86032 105

 

 <39번> 김일삼 교수의 과목을 수강한 학생의 학번과 이름,성적을 구하라

    SQL> select 학생.학번,학생.이름,수강.성적
       2  from 학생,설강,수강
       3  where 학생.학번=수강.학번 and 수강.번호=설강.번호 and 설강.교수명='김일삼';

     학번  이름                       성적
     ----- -------------------- ----------
     87002 이일삼                       80
     88001 홍길동                       95
 
 <40번> 같은 소속학과에 있는 학생들의 쌍을 구하라

    SQL> select a.이름, b.이름
       2 from 학생 a, 학생 b
       3 where a.소속=b.소속;

      이름         이름
    ------------ ------------
     홍길동       홍길동
     이일삼       홍길동
     김이사       홍길동
     홍길동       이일삼
     이일삼       이일삼
     김이사       이일삼
     홍길동       김이사
     이일삼       김이사
     김이사       김이사
     김일구       김일구
     정소일       김일구
     김일구       정소일
     정소일       정소일
     이육사       이육사

    14 개의 행이 선택되었습니다.

 

  질의 41. "CD" 학과 소속의 학년의 개수는 얼만인가."
          
    SQL> select count(학년)
       2  from 학생
       3  where 소속= 'CD';
 
      COUNT(학년)
      -----------
           3

  질의 42. "학기 중 설강된 과목수는 얼마인가?"

    SQL> select count(과목명) from 설강;
 
     COUNT(과목명)
     -------------
            5

 

  질의 43. "학기 중 수강 신청을 한 학생수를 구하라."

   SQL> select count(distinct(학번))  //distinct를 안쓰면 값이 틀려진다.
      2  from 수강;
 
     COUNT(DISTINCT(학번))
     ---------------------
                     5

 

  질의 44. "교수번호 102인 교수가 설강한 과목을 수강하는 학생의 수를 계산하라."
 
    SQL> select count(학번)
       2  from 수강
       3  where 번호=102;
 
       COUNT(학번)
       -----------
           3

 

  질의 45. "신장이 최소인 학생의 신장은 얼마인가?"

    SQL> select min(신장)
       2  from 학생;
 
        MIN(신장)
       ----------
          165
 
  질의 46. "수강 신청을 한 학생중 최고 성적은 얼마인가?"
    
    SQL> select max(성적)
       2  from 수강;
 
         MAX(성적)
        ----------
           95

 

  질의 47. "신장이 170이상인 학생들의 평균신장은 얼마인가?"
         
    SQL> select avg(신장)
       2  from 학생
       3  where 신장>=170;
  
          AVG(신장)
          ----------
            177

  질의 48. "번호 102인 교수의 과목을 수강하는 학생들의 평균 성적을 구하라."
        
     SQL> select avg(성적)
        2  from 수강
        3  where 번호='102';
 
         AVG(성적)
         ----------
         78.3333333
 
  질의 49. "수강 신청을 한 학생들의 평균성적이 80이상인 과목의 교수번호를 구하라."
              
      SQL> select 번호
         2  from 수강
         3  group by 번호
         4  having avg(성적)>=80;
 
          번호
          ----
          101
          104
          105
   
  질의 50. "교수번호 103인 교수가 설강한 과목을 수강한 학생들의 평균성적을 구하라."

     SQL> select avg(성적)
         2  from 수강
         3  where 번호='103';
 
        AVG(성적)
       ----------
          70

 

  51. 학생들을 학년별로 분류하여 각각의 신장의 평균치를 구하라

       SQL> select 학년, avg(신장)
          2  from 학생
          3  group by 학년
          4  order by 학년;
 
        학년  AVG(신장)
        ---- ----------
        2           175
        3           170
        4         175.5
 
  52."수강 과목에 대한 성적의 평균값을 구하라"

    SQL> select 번호,avg(성적)
       2  from 수강
       3  group by 번호
       4  order by 번호;
 
      번호  AVG(성적)
      ---- ----------
      101        87.5
      102  78.3333333
      103          70
      104  88.3333333
      105          80
    
  53."3 과목 이상을 신청한 학생의 학번을 구하라"

      SQL> select 학번,count(*)
         2  from 수강
         3  group by 학번 
         4  having count(*) >=3;
 
     학번    COUNT(*)
     ----- ----------
     88001          5
 
  54. "수강을 한 학생 중, 88로 시작되는 학번을 가진 학생을 구하라.

      SQL> select distinct 학번
         2  from 수강
         3  where 학번 like '88%';

       학번
       -----
       88001
       88033

 

  55. " 학기 중 설강한 교수 중 이름이 김으로 시작되는 교수와 과목을 구하라.

      SQL> select 교수명,과목명
         2  from 설강
         3  where 교수명 like '김%';
 
         교수명               과목명
         -------------------- ------
         김일삼               SE
         김소월               DG
 
  56. "수강한 학생 중 한 명 이상의 학생에게 90점 이상을 준 교수이름과 과목을 구하라."

      SQL>  select 설강.교수명,설강.과목명
         2   from 설강,수강
         3  where 설강.번호 in(select 번호 from 수강 where 성적>=90)
         4  group by 설강.교수명,설강.과목명;
 
       교수명               과
       -------------------- ---
       김일삼               SE
       이  상               EP
 
  57. "소속이 CD인 학생이 수강하는 과목을 담당하는 교수이름과 과목이름을 구하라."
 
      SQL>  select 설강.교수명,설강.과목명
          2   from 설강,수강,학생
          3   where 설강.번호 in
          4    ( select 수강.번호 from 수강,학생
          5      where 수강.학번 in
          6        ( select 학생.학번 from 학생 where 학생.소속='CD')
          7     )
          8    group by 설강.교수명,설강.과목명 ;
 
         교수명               과
         -------------------- ---
         권오영               DB
         김소월               DG
         김일삼               SE
         이  상               EP
         이석영               CS
 
         -----> 2번째 시도( 간단히 만들어보자)
 
       SQL> select 교수명,과목명
          2  from 설강
          3  where 번호 in
          4   ( select 번호 from 학생
          5     where 학번 in
          6       ( select 학번 from 학생
          7         where 소속='CD')
          8    )
          9  group by 교수명,과목명;
 
          교수명               과
         -------------------- ---
          권오영               DB
          김소월               DG
          김일삼               SE
          이  상               EP
          이석영               CS
 
 58. "평균 점수 이상의 성적을 받은 학생의 이름과 학년, 교수번호를 구하라."
 
      SQL> select 학생.이름,학생.학년,수강.번호
         2  from 학생,수강
         3  where 수강.학번=학생.학번
         4     and 수강.성적>=(select avg(성적) from 수강);
 
       이름                 학년 번호
       -------------------- ---- ----
       김일구               4    104
       이일삼               4    104
       홍길동               2    101
       홍길동               2    105
       이육사               3    102
  
  59. " 한 과목도 수강하지 않는 학생의 이름,소속을 구하라.
 
      SQL> select 학번,이름,소속
         2  from 학생
         3  where not exists
         4    (select 학번 from 수강 where 학생.학번=수강.학번);

         학번  이름                 소속
         ----- -------------------- ----------
         86032 정소일               ED
 
  60. "소속이 CD 이거나 성적을 90 이상을 준 교수의 번호를 구하여라.
 
    SQL> select 번호
       2  from 수강
       3  where 번호 in
       4    (select 번호 from 설강 where 소속='CD')
       5   or 성적>=90
       6    group by 번호;

      번호
      ----
       101
       102
       104

 

 

학사 데이터 베이스

 

학생

학번

이름

학년

신장

소속

88001

87002

87012

88033

85014

86032

홍길동

이일삼

김이사

이육사

김일구

정소일

2

4

2

3

4

3

170

168

180

175

183

165

CD

CD

CD

ID

ED

ED

설강

번호

교수명

과목명

소속

101

102

103

104

105

김일삼

권오영

김소월

이석영

SE

DB

DG

FP

CS

CD

CD

MD

CD

ED

수강

학번

번호

성적

88001

88001

88001

88001

88001

87002

87002

87012

87012

88033

85014

85014

101

102

103

104

105

101

104

102

103

102

104

105

95

80

60

80

85

80

95

70

80

85

90

75

 

CREATE  TABLE 학생

        ( 학번  CHAR( 5)    NOT NULL,

          이름  CHAR( 20),

          학년  CHAR( 1 ),

          신장  SMALLINT,

          소속  CHAR( 10 )  );

 

CREATE  TABLE 설강

        (  번호  CHAR ( 3 )  NOT NULL,

          교수명 CHAR ( 3 )  NOT NULL,

          과목명 CHAR ( 3 ),

           소속 CHAR ( 10 )  );

 

CREATE  TABLE 수강

        (  학번  CHAR ( 5 )  NOT NULL,

           번호  CHAR ( 3 )  NOT NULL,

            성적   SMALLINT ) ;

 

 

 

오라클 기초 실습내용 3/3

 

기본 sql 사용과 해당문법의 설명을 확인하면서 기초를 다시 확인할수있을듯함..

 

워낙 오래전 자료다 보니... 지우는것보단...이렇게라도 .... 가끔보게되면

 

뭔가 새로운 기분이 들지않을까..해서......

 


UNIX(r) System V Release 4.0 (xx)

login: team4
Password:

Sun Microsystems Inc.   SunOS 5.5.1     Generic May 1996
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

공지사항 : Oracle Login 변경(oracle실습은 Team계정으로 login 하여 사용하세요)
           - from : tschang (1999/06/14)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
SQL*Plus: Release 8.0.6.0.0 - Production on Fri Feb 18 09:47:54 2000
 
(c) Copyright 1999 Oracle Corporation.  All rights reserved.
 
 
Connected to:
Oracle8 Enterprise Edition Release 8.0.6.0.0 - Production
With the Objects option
PL/SQL Release 8.0.6.0.0 - Production
 
SQL> select * from tab;
 
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
ATTEND                         TABLE
BONUS                          TABLE
DEPT                           TABLE
DUMMY                          TABLE
HYO_S                          TABLE
IMSIC                          TABLE
MAST                           TABLE
MASTER36                       TABLE
MASTERC                        TABLE
MP                             TABLE
M_4                            TABLE
 
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
OOK                            TABLE
OPENC                          TABLE
P                              TABLE
PAL                            TABLE
S                              TABLE
S2                             TABLE
SALGRADE                       TABLE
SLAVE36                        TABLE
SP                             TABLE
SS                             TABLE
SS2                            TABLE
 
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
SSS                            TABLE
STUDENTC                       TABLE
S_IN                           TABLE
VIEWPC                         VIEW
WANP                           TABLE
WANS                           TABLE
WANSP                          TABLE
설강                           TABLE
설강36                         TABLE
수강                           TABLE
수강36                         TABLE
 
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
학생                           TABLE
학생36                         TABLE
 
35 rows selected.
 
SQL> select * from sp;
 
S_ P_        QTY
-- -- ----------
S1 P1        300
S1 P2        200
S1 P3        400
S1 P4        200
S1 P5        100
S1 P6        100
S2 P1        300
S2 P2        400
S3 P2        200
S4 P2        200
S4 P4        300
 
S_ P_        QTY
-- -- ----------
S4 P5        400
 
12 rows selected.
 
SQL> select p_id
  2  from sp
  3  group by p_id
  4  having count(*) >1; // 테이블sp에서 p_id 그룹으로하고 조건은 p_id의 합이 1보다 큰것을 출력.
                         // group by ... + having(조건) ,count(*) :
P_
--
P1
P2
P4
P5
 
SQL> select sname
  2  from s, sp   
  3  where s.s_id = sp.s_id and sp.p_id = 'P2';
 
SNAME
--------------------
홍길동
손오공
박문수
신수동
 
SQL> select sname
  2  from s
  3  where s_id in
  4    (select s_id
  5     from sp
  6      where sp.p_id = 'P2');
 
SNAME
--------------------
홍길동
손오공
박문수
신수동
 
SQL> select sname
  2  from s
  3  where exists
  4  (select *
  5  from sp
  6  where s.s_id=sp.s_id and sp.p_id='P2');
 
SNAME
--------------------
홍길동
손오공
박문수
신수동
 
SQL> select sname
  2  from s
  3  where s_id not in
  4      (select s_id
  5       from sp
  6       where sp.p_id='P2');
 
SNAME
--------------------
반월동
 
SQL> select p_id
  2  from p
  3  where weight >16
  4  union              //합집합
  5  select p_id
  6  from sp
  7  where p_id='S2'; 
 
P_
--
P2
P3
P6
 
SQL> l     // l =list =엘.
  1  select p_id
  2  from p
  3  where weight >16
  4  union
  5  select p_id
  6  from sp
  7* where p_id='S2'
 
SQL> l 4
  4* union
 
SQL> c /union/union all    //문자바꿈. union 과  union all의 차이
  4* union all

SQL> /                     //바로앞의 실행
 
P_
--
P2
P3
P6
 
SQL> l
  1  select p_id
  2  from p
  3  where weight >16
  4  union all
  5  select p_id
  6  from sp
  7* where p_id='S2'

SQL> l 7
  7* where p_id='S2'     //문장이 제대로 수행안된 이유 s_id 를 p_id로 잘못사용.....

SQL> c /p/s
  7* where s_id='S2'

SQL> /
 
P_        //union all..................................
--
P2
P3
P6
P1
P2
 
SQL> l
  1  select p_id
  2  from p
  3  where weight >16
  4  union all
  5  select p_id
  6  from sp
  7* where s_id='S2'

SQL> l 4
  4* union all

SQL> c /union all/union
  4* union

SQL> /
 
P_
--     //union.........................................union all과의 차이점 ?????
P1
P2
P3
P6
 
SQL> select s_id
  2  from s
  3  where city =
  4       (select city
  5        from s
  6        where s_id='S1');
 
S_
--
S1
S4
 
SQL> select s_id     // s_id를 테이블 s에서 가져와 출력을 하는데....
  2  from s       
  3  where city in   // city가  다음과 같아야한다.=........
  4        (select city     // city를 s테이블에서 가져오는데 조건은 s_id가 's1'이어야한다.
  5         from s          // ( => s_id가 's1'인 것의 city를 검색한다)
  6  where s_id='S1');
 
S_
--
S1
S4
 
SQL> select * from p;
 
P_ PNAME                COLOR          WEIGHT CITY
-- -------------------- ---------- ---------- ----------
P1 너트                 빨강               12 서울
P2 볼트                 초록               17 부산
P3 스크류               파랑               17 광주
P4 스크류               빨강               14 서울
P5 캠                   파랑               12 부산
P6 콕                   빨강               19 서울
 
6 rows selected.
 
SQL> update p
  2  set color='노랑',
  3      weight=weight+5,
  4      city=NULL
  5  where p_id='P2';
update p
       *
ERROR at line 1:
ORA-01407: cannot update ("TEAM4"."P"."CITY") to NULL
 
 
SQL> desc p;
 Name                            Null?    Type
 ------------------------------- -------- ----
 P_ID                            NOT NULL CHAR(2)
 PNAME                           NOT NULL VARCHAR2(20)
 COLOR                                    VARCHAR2(10)
 WEIGHT                          NOT NULL NUMBER(3)
 CITY                            NOT NULL VARCHAR2(10)
 
SQL> desc s;
 Name                            Null?    Type
 ------------------------------- -------- ----
 S_ID                            NOT NULL CHAR(2)
 SNAME                           NOT NULL VARCHAR2(20)
 STATUS                          NOT NULL NUMBER(3)
 CITY                            NOT NULL VARCHAR2(10)
 
SQL> desc sp;
 Name                            Null?    Type
 ------------------------------- -------- ----
 S_ID                            NOT NULL CHAR(2)
 P_ID                            NOT NULL CHAR(2)
 QTY                             NOT NULL NUMBER(3)
 
SQL> select * from sp;
 
S_ P_        QTY
-- -- ----------
S1 P1        300
S1 P2        200
S1 P3        400
S1 P4        200
S1 P5        100
S1 P6        100
S2 P1        300
S2 P2        400
S3 P2        200
S4 P2        200
S4 P4        300
 
S_ P_        QTY
-- -- ----------
S4 P5        400
 
12 rows selected.
 
SQL> select * from s;
 
S_ SNAME                    STATUS CITY
-- -------------------- ---------- ----------
S1 홍길동                       20 서울
S2 손오공                       10 부산
S3 박문수                       30 부산
S4 신수동                       20 서울
S5 반월동                       30 경주
 
SQL> select * from pp;

P_ PNAME      COLOR     WEIGHT CITY
-- ---------- ----- ---------- ----------
p1 너트       빨강          12 서울
p2 볼트       초록          17 부산
p3 스크류     파랑          17 광주
p4 스크류     빨강          14 서울
p5 캠         파랑          12 부산
p6 콕         빨강          19 서울

6 rows selected.

SQL> desc pp;
 Name                            Null?    Type
 ------------------------------- -------- ----
 P_ID                            NOT NULL CHAR(2)
 PNAME                           NOT NULL VARCHAR2(10)
 COLOR                           NOT NULL VARCHAR2(5)
 WEIGHT                          NOT NULL NUMBER(3)
 CITY                                     VARCHAR2(10)

SQL>select sp  * from sspp;

S_ P_        QTY
-- -- ----------
s1 p1        300
s1 p2        200
s1 p3        400
s1 p4        200
s1 p5        100
s1 p6        100
s2 p1        300
s2 p2        400
s3 p2        200
s4 p2        200
s4 p4        300

S_ P_        QTY
-- -- ----------
s4 p5        400

12 rows selected.

SQL> desc sspp;
 Name                            Null?    Type
 ------------------------------- -------- ----
 S_ID                            NOT NULL CHAR(2)
 P_ID                            NOT NULL CHAR(2)
 QTY                             NOT NULL NUMBER(3)

SQL> connect scott/tiger
Connected.

SQL> selcect * from emp;

     EMPNO ENAME      JOB                         MGR HIREDATE         SAL
---------- ---------- -------------------- ---------- --------- ----------
      COMM     DEPTNO
---------- ----------
      7369 SMITH      CLERK                      7902 17-DEC-80        800
                   20

      7499 ALLEN      SALESMAN                   7698 20-FEB-81       1600
       300         30

      7521 WARD       SALESMAN                   7698 22-FEB-81       1250
       500         30


     EMPNO ENAME      JOB                         MGR HIREDATE         SAL
---------- ---------- -------------------- ---------- --------- ----------
      COMM     DEPTNO
---------- ----------
      7566 JONES      MANAGER                    7839 02-APR-81       2975
                   20

      7654 MARTIN     SALESMAN                   7698 28-SEP-81       1250
      1400         30

      7698 BLAKE      MANAGER                    7839 01-MAY-81       2850
                   30


     EMPNO ENAME      JOB                         MGR HIREDATE         SAL
---------- ---------- -------------------- ---------- --------- ----------
      COMM     DEPTNO
---------- ----------
      7782 CLARK      MANAGER                    7839 09-JUN-81       2450
                   10

      7788 SCOTT      ANALYST                    7566 09-DEC-82       3000
                   20

      7839 KING       PRESIDENT                       17-NOV-81       5000
                   10


     EMPNO ENAME      JOB                         MGR HIREDATE         SAL
---------- ---------- -------------------- ---------- --------- ----------
      COMM     DEPTNO
---------- ----------
      7844 TURNER     SALESMAN                   7698 08-SEP-81       1500
         0         30

      7876 ADAMS      CLERK                      7788 12-JAN-83       1100
                   20

      7900 JAMES      CLERK                      7698 03-DEC-81        950
                   30


     EMPNO ENAME      JOB                         MGR HIREDATE         SAL
---------- ---------- -------------------- ---------- --------- ----------
      COMM     DEPTNO
---------- ----------
      7902 FORD       ANALYST                    7566 03-DEC-81       3000
                   20

      7934 MILLER     CLERK                      7782 23-JAN-82       1300
                   10

      7035 smith      timer

 

15 rows selected.

SQL> select empno, ename, sal,  //마지막의 ,는 있어도 되고 없어도 되고,,,,,,,
  2  from emp
  3  where deptno=&deptno;      //조건을 deptno로 주는데 deptno를 변수로 설정해서 입력값을 받아서 조건 결정
Enter value for deptno: 10
old   3: where deptno=&deptno
new   3: where deptno=10

     EMPNO ENAME             SAL
---------- ---------- ----------
      7782 CLARK            2450
      7839 KING             5000
      7934 MILLER           1300

SQL> select empno,ename , sal,deptno //deptno를 추가
  2  from emp
  3  where deptno=&deptno;
Enter value for deptno: 30
old   3: where deptno=&deptno
new   3: where deptno=30

  //-----생략----//

SQL> /           //재실행
Enter value for deptno: 10
old   3: where deptno=&deptno
new   3: where deptno=10

     EMPNO ENAME             SAL     DEPTNO
---------- ---------- ---------- ----------
      7782 CLARK            2450         10
      7839 KING             5000         10
      7934 MILLER           1300         10

SQL> /
Enter value for deptno: 20
old   3: where deptno=&deptno
new   3: where deptno=20

     EMPNO ENAME             SAL     DEPTNO
---------- ---------- ---------- ----------
      7369 SMITH             800         20
      7566 JONES            2975         20
      7788 SCOTT            3000         20
      7876 ADAMS            1100         20
      7902 FORD             3000         20

SQL> /
Enter value for deptno: 30
old   3: where deptno=&deptno
new   3: where deptno=30

     EMPNO ENAME             SAL     DEPTNO
---------- ---------- ---------- ----------
      7499 ALLEN            1600         30
      7521 WARD             1250         30
      7654 MARTIN           1250         30
      7698 BLAKE            2850         30
      7844 TURNER           1500         30
      7900 JAMES             950         30

6 rows selected.

SQL> select * from ss;

S_ SNAME          STATUS CITY
-- ---------- ---------- ----------
s1 홍길동             20 서울
s2 손오공             10 부산
s3 박문수             30 부산
s4 신수동             20 서울
s5 반월성             30 경주

SQL> select * from sspp
  2  ;

S_ P_        QTY
-- -- ----------
s1 p1        300
s1 p2        200
s1 p3        400
s1 p4        200
s1 p5        100
s1 p6        100
s2 p1        300
s2 p2        400
s3 p2        200
s4 p2        200
s4 p4        300

S_ P_        QTY
-- -- ----------
s4 p5        400

12 rows selected.

SQL> select * fromm  tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
A11                            TABLE
B11                            TABLE
C11                            TABLE
MAST                           TABLE
PP                             TABLE
SLAVE1                         TABLE
SS                             TABLE
SSPP                           TABLE

8 rows selected.


SQL> column sal format $99,999  //칼럼 표현형식 => I-26 page

SQL> select * from emp;

     EMPNO ENAME      JOB                         MGR HIREDATE       SAL
---------- ---------- -------------------- ---------- --------- --------
      COMM     DEPTNO
---------- ----------
      7566 JONES      MANAGER                    7839 02-APR-81   $2,975
                   20

      7654 MARTIN     SALESMAN                   7698 28-SEP-81   $1,250
      1400         30

      7698 BLAKE      MANAGER                    7839 01-MAY-81   $2,850
 ..................이하생략!!
15 rows selected.

SQL> column sal clear  //칼럼형식 해제.

SQL> slelect * from enp  mp;  //엘리어스

     EMPNO ENAME      JOB                         MGR HIREDATE         SAL
---------- ---------- -------------------- ---------- --------- ----------
      COMM     DEPTNO
---------- ----------
      7369 SMITH      CLERK                      7902 17-DEC-80        800
                   20

      7499 ALLEN      SALESMAN                   7698 20-FEB-81       1600
       300         30

      7521 WARD       SALESMAN                   7698 22-FEB-81       1250
 ...........이하생략
 15 rows selected.

SQL> select  &1, &&2 from emp  //SQL변수(& , &&)입력!
   2  where &&2 =&3;           
Enter value for 1: SAL        //1의값 입력
Enter value for 2: JOB        //2의값 입력
old   1: select &1, &&2 from emp
new   1: select SAL, JOB from emp
Enter value for 3: 'SALESMAN'
old   2: where &&2 =&3
new   2: where JOB ='SALESMAN'

       SAL JOB
---------- --------------------
       800 SALESMAN
      1100 SALESMAN
       950 SALESMAN
      1300 SALESMAN

SQL> /
Enter value for 1: SAL              //1의값 입력
old   1: select &1, &&2 from emp    //2의값은 앞에서 입력한값을 그대로 사용
new   1: select SAL, JOB from emp   //2=JOB
Enter value for 3: 'MANAGER'
old   2: where &&2 =&3
new   2: where JOB ='MANAGER'

       SAL JOB
---------- --------------------
      2975 MANAGER
      2850 MANAGER
      2450 MANAGER

SQL> /
Enter value for 1: saL
old   1: select &1, &&2 from emp
new   1: select saL, JOB from emp
Enter value for 3: 'SALESMAN'
old   2: where &&2 =&3
new   2: where JOB ='SALESMAN'

       SAL JOB
---------- --------------------
      1600 SALESMAN
      1250 SALESMAN
      1250 SALESMAN
      1500 SALESMAN


SQL> select ename  , sal, sal/22, round(sal/22.0), trunc(sal/22.2)   //SQL함수 I-29 page 책이 조금 틀림
  2  from   emp
  3  where deptno=30;

ENAME             SAL     SAL/22 ROUND(SAL/22.0) TRUNC(SAL/22.2)
---------- ---------- ---------- --------------- ---------------
ALLEN            1600 72.7272727              73              72
WARD             1250 56.8181818              57              56
MARTIN           1250 56.8181818              57              56
BLAKE            2850 129.545455             130             128
TURNER           1500 68.1818182              68              67
JAMES             950 43.1818182              43              42

6 rows selected.

SQL> select ename, sum(comm)
  2  from emp
  3  group  by ename;

ENAME       SUM(COMM)
---------- ----------
ADAMS
ALLEN             300
BLAKE
CLARK
FORD
JAMES
JONES
KING
MARTIN           1400
MILLER
SCOTT

ENAME       SUM(COMM)
---------- ----------
SMITH
TURNER              0
WARD              500
smith

15 rows selected.

SQL> select avg(sal), max(sal), min(comm)*100, count(comm), sum(sal)
  2  from emp
  3  where job='SALESMAN';

  AVG(SAL)   MAX(SAL) MIN(COMM)*100 COUNT(COMM)   SUM(SAL)
---------- ---------- ------------- ----------- ----------
      1400       1600             0           4       5600

SQL> select ename, sum(comm)
  2  from emp
  3  group by ename
  4  order by ename desc;

ENAME       SUM(COMM)
---------- ----------
smith
WARD              500
TURNER              0
SMITH
SCOTT
MILLER
MARTIN           1400
KING
JONES
JAMES
FORD

ENAME       SUM(COMM)
---------- ----------
CLARK
BLAKE
ALLEN             300
ADAMS

15 rows selected.

SQL> select deptno, sum(comm)
  2  from emp
  3  group by deptno;

    DEPTNO  SUM(COMM)
---------- ----------
        10
        20
        30       2200


SQL> select count(job)
  2  from emp;

COUNT(JOB)            // 칼럼 job 이 15개가 있다. 중복과는 상관없다.
----------
        15

SQL> select count(distinct job)   //distinct:중복되 칼럼을 간단하게
  2  from emp;

COUNT(DISTINCTJOB)
------------------
                 6


SQL> select deptno, job, count(*)
  2  from emp
  3  where  deptno in(10,20)  //in = or
  4  group by deptno, job;    //deptno와 job의 순서로...group 만약deptno하나에 대해서만 group by해주면 에러

    DEPTNO JOB                    COUNT(*)
---------- -------------------- ----------
        10 CLERK                         1
        10 MANAGER                       1
        10 PRESIDENT                     1
        20 ANALYST                       2
        20 CLERK                         2
        20 MANAGER                       1

6 rows selected.

SQL> select deptno from  emp;

    DEPTNO
----------
        20
        30
        30
        20
        30
        30
        10
        20
        10
        30
        20

    DEPTNO
----------
        30
        20
        10


15 rows selected.

SQL> select deptno, job
  2  from emp;

    DEPTNO JOB
---------- --------------------
        20 CLERK
        30 SALESMAN
        30 SALESMAN
        20 MANAGER
        30 SALESMAN
        30 MANAGER
        10 MANAGER
        20 ANALYST
        10 PRESIDENT
        30 SALESMAN
        20 CLERK

    DEPTNO JOB
---------- --------------------
        30 CLERK
        20 ANALYST
        10 CLERK
           timer

15 rows selected.


SQL> select deptno, sum(sal), avg(sal) //sal의 합계와 평균.
  2  from emp                          //
  3  where job <> 'MANAGER'            // job != 'MANAGER'
  4  group by deptno                   //
  5  having avg(sal)> 1500;            //그룹화하는 조건으로 sal의 평균이 1500이상

    DEPTNO   SUM(SAL)   AVG(SAL)
---------- ---------- ----------
        10       6300       3150
        20       7900       1975

SQL> select  deptno, sal
  2  from emp;

    DEPTNO        SAL
---------- ----------
        20        800
        30       1600
        30       1250
        20       2975
        30       1250
        30       2850
        10       2450
        20       3000
        10       5000
        30       1500
        20       1100

    DEPTNO        SAL
---------- ----------
        30        950
        20       3000
        10       1300


15 rows selected.

SQL> select deptno  , sum(sal)                    //1.job이 manager나 president가 아닌 조건을
  2  from emp                                       만족하는
  3  where job not in('MANAGER','PRESIDENT')         .....
  4  group by deptno                              //
  5  having count(*)>2 and sum(sal) >16000        //그룹화하는 조건을 나열
  6  order by sum(sal) desc;                      //정렬하는 칼럼과 방식.내림차순

    DEPTNO   SUM(SAL)
---------- ----------
        20       7900
        30       6550
  
SQL> select initcap(ename)   //출력시 ename의 첫글자를 대문자로한다.
  2  from emp;

INITCAP(EN
----------
Smith
Allen
Ward
Jones
Martin
Blake
Clark
Scott
King
Turner
Adams

INITCAP(EN
----------
James
Ford
Miller
Smith

15 rows selected.

 

 


===>여기서는 모르겠다.......  책의 실습 I-34 page

SQL> select inse lect * from dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

SQL> select instr(loc, 'A Y\ ^H   X')
  2  from dept;

INSTR(LOC,'X')
--------------
             0
             0
             0
             0

SQL> select inse rt  tr(loc, C 'C')
  2  for  rom dept;

INSTR(LOC,'C')
--------------
             0
             0
             1
             0

SQL> select instr(loc, '" L')
  2  from m dept;

INSTR(LOC,'L')
--------------
             0
             3
             0
             0

SQL> select length(eanme    name)
  2  from emp;

LENGTH(ENAME)
-------------
            5
            5
            4
            5
            6
            5
            5
            5
            4
            6
            5

LENGTH(ENAME)
-------------
            5
            4
            6
            5

15 rows selected.

SQL> select lower(eanme    name)
  2  from emp;

LOWER(ENAM
----------
smith
allen
ward
jones
martin
blake
clark
scott
king
turner
adams

LOWER(ENAM
----------
james
ford
miller
smith

15 rows selected.

SQL> su  select substr(grade,     rde  ade                   select substr(grade, 1,2)
  2  from    frmoo   om emp;
select substr(grade, 1,2)
              *
ERROR at line 1:
ORA-00904: invalid column name


SQL> l 1
  1* select substr(grade, 1,2)
SQL> c grad    /gradd e/ename
  1* select substr(ename, 1,2)
SQL> /

SUBS
----
SM
AL
WA
JO
MA
BL
CL
SC
KI
TU
AD

SUBS
----
JA
FO
MI
sm

15 rows selected.

SQL> select ename, job
  2  (decodd e, (job, 'CLERK', 0.2, 'MANAGER', 0.5 15, 'SALESMAN', 0.3, 0.2)*SAL)
  3  from emp
  4  where deptno=10;
(decode, (job, 'CLERK', 0.2, 'MANAGER', 0.15, 'SALESMAN', 0.3, 0.2)*SAL)
             *
ERROR at line 2:
ORA-00907: missing right parenthesis


SQL> l 2
  2* (decode, (job, 'CLERK', 0.2, 'MANAGER', 0.15, 'SALESMAN', 0.3, 0.2)*SAL)
SQL> c /decode,/decode
  2* (decode (job, 'CLERK', 0.2, 'MANAGER', 0.15, 'SALESMAN', 0.3, 0.2)*SAL)
SQL> /
select ename, job
              *
ERROR at line 1:
ORA-00904: invalid column name


SQL> l
  1  select ename, job
  2  (decode (job, 'CLERK', 0.2, 'MANAGER', 0.15, 'SALESMAN', 0.3, 0.2)*SAL)
  3  from emp
  4* where deptno=10


SQL> l 2
  2* (decode (job, 'CLERK', 0.2, 'MANAGER', 0.15, 'SALESMAN', 0.3, 0.2)*SAL)

SQL> c /sla   SAL/bonus
  2* (decode (job, 'CLERK', 0.2, 'MANAGER', 0.15, 'bonusESMAN', 0.3, 0.2)*SAL)

SQL> roo llback
  2  ;

Rollback complete.

SQL> l
  1  rollback
  2*

SQL> seec  lect enma^?             select ename, job
  2  (decoed  de(job, 'CLERK', 0.2, 'MANAGER', 0.15, 'SLAESMAN',0.3,0.2)*SAL) BONUS
  3  FLR   from emp
  4  where deptno =10;
select ename, job
              *
ERROR at line 1:
ORA-00904: invalid column name


SQL> l 1
  1* select ename, job

SQL> c /job/job,
  1* select ename, job,

SQL> /

ENAME      JOB                       BONUS
---------- -------------------- ----------
CLARK      MANAGER                     490
KING       PRESIDENT                  1000
MILLER     CLERK                       260

SQL>

 

 

오라클 기초 실습내용 2/3

 

기본 sql 사용과 해당문법의 설명을 확인하면서 기초를 다시 확인할수있을듯함..

 

워낙 오래전 자료다 보니... 지우는것보단...이렇게라도 .... 가끔보게되면

 

뭔가 새로운 기분이 들지않을까..해서......

 

 

  ---------------------------------------------------------------------

   ---------------------------------------------------------------------
login: XXXXXX
Password:
Last login: Thu Feb 17 11:29:40 from 210.119.58.174
Sun Microsystems Inc.   SunOS 5.5.1     Generic May 1996
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
공지사항 : Oracle Login 변경(oracle실습은 Team계정으로 login 하여 사용하세요)
           - from : XXXXX (1999/06/14)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

tjaiit% sqlplus team4/team4p

SQL*Plus: Release 8.0.6.0.0 - Production on Thu Feb 17 11:33:15 2000

(c) Copyright 1999 Oracle Corporation.  All rights reserved.


Connected to:
Oracle8 Enterprise Edition Release 8.0.6.0.0 - Production
With the Objects option
PL/SQL Release 8.0.6.0.0 - Production

 

SQL> create table insi( name number(8) not null, age number(2) ) ;
 Table created.

 

SQL> desc insi;   //desc : 생성된 테이블에 대한 데이타타입보여줌 내림차순
 Name                            Null?    Type
 ------------------------------- -------- ----
 NAME                            NOT NULL NUMBER(8)
 AGE                                      NUMBER(2)

 

SQL> alter table insi         //alter : 테이블 변경(modify)
  2  modify name varchar2(8); //alter : 테이블 변경(modify)
Table altered.

 

SQL> desc insi;
 Name                            Null?    Type
 ------------------------------- -------- ----
 NAME                            NOT NULL VARCHAR2(8)  //number(8)가 varchar2(8)로 데이타타입이 바뀐다.
 AGE                                      NUMBER(2)

 

SQL> alter table insi           //alter : 테이블 변경(modify)
  2  modify name varchar2(10);  //alter : 테이블 변경(modify)

Table altered.

 

SQL> desc insi;
 Name                            Null?    Type
 ------------------------------- -------- ----
 NAME                            NOT NULL VARCHAR2(10) //varchar(8)가 varchar2(10)로 데이타타입이 바뀐다.
 AGE                                      NUMBER(2)

 

SQL> alter table insi
  2  modify name varchar2(8); //테이블내에 자료가 없을때 데이타형의 자리수 축소...가능

Table altered.

 

SQL> desc insi;
 Name                            Null?    Type
 ------------------------------- -------- ----
 NAME                            NOT NULL VARCHAR2(8) //varchar2(10)이 varchar2(8)로 데이타타입이 바뀐다.
 AGE                                      NUMBER(2)

 

SQL> alter table insi          //테이블내에 추가
  2  add address varchar2(15);

Table altered.   //테이블 추가 끝~~

 

SQL> desc insi;  //확인.
 Name                            Null?    Type
 ------------------------------- -------- ----
 NAME                            NOT NULL VARCHAR2(8)
 AGE                                      NUMBER(2)
 ADDRESS                                  VARCHAR2(15)  //새로 추가된 칼럼

 

SQL> insert into insi             //------------------테이블내에 자료 입력.
  2  values('&name',&age,'&address');
Enter value for name: aaaa
Enter value for age: 23
Enter value for address: 서울 종로구
old   2: values('&name',&age,'&address')
new   2: values('aaaa',23,'서울 종로구')

1 row created.

 

SQL> select * from insi;

NAME            AGE ADDRESS
-------- ---------- ---------------
aaaa             23 서울 종로구

 

SQL> alter table insi
  2  modify age char(2);  //age의 데이타타입을 number(2)에서 char(2)로 수정한다.
modify age char(2)        //  기
       *                  //      러
ERROR at line 2:          //            나 !! error 다. 왜!  이미 데이터가 들어가있는 상태이기땜시..
ORA-01439: column to be modified must be empty to change datatype


SQL> alter table insi
  2  modify age number(4); //age number(2)를 number(4)로 늘림.
 
Table altered.             // 수정 성공!

 

SQL> select * from insi;   //table 확인

NAME            AGE ADDRESS
-------- ---------- ---------------
aaaa             23 서울 종로구

 

SQL> desc insi              //table insi의 자료형 확인.
 Name                            Null?    Type
 ------------------------------- -------- ----
 NAME                            NOT NULL VARCHAR2(8)
 AGE                                      NUMBER(4)  //수정된사항 반영!
 ADDRESS                                  VARCHAR2(15)

 

SQL> alter table insi
  2  modify age number(2);  //반대로 age number(4)를 number(2)로 수정 (=줄임).
modify age number(2)
       *                       // 역시
ERROR at line 2:               //      error가 난다!
ORA-01440: column to be modified must be empty to decrease precision or scale

 

SQL> alter table insi         //insi 테이블내에 phone이란 칼럼 추가.
  2  add phone varchar2(8);

Table altered.

 

SQL> select * from insi;             
                                      //추가....
NAME            AGE ADDRESS         PHONE
-------- ---------- --------------- --------
aaaa             23 서울 종로구

 

SQL> alter table insi
  2  modify phone varchar2(8) not null; //phone의 속성에다 not null을 추가한다....
modify phone varchar2(8) not null       // 긴데...
       *                                // Error 가
ERROR at line 2:                        //          난다.... not null뗌시..
ORA-02296: cannot enable (TEAM4.) - null values found


SQL> drop table insi; //테이블 삭제

Table dropped.

 

SQL> select * from tab;  //전체 테이블 목록 보여줌
  ///생략///

SQL> rollback;           //복구...

Rollback complete.

 

SQL> select * from insi;  //drop으로 삭제했기때문에 복구 불가.
select * from insi
              *
ERROR at line 1:
ORA-00942: table or view does not exist

 

경고: 이제는 ORACLE 에 연결되어 있지 않습니다. // connect ....

SQL> connect scott/tiger                       // id/pw
연결되었습니다.

SQL> select * from emp;                        //emp테이블 보여줌

    EMPNO  ENAME      JOB             MGR HIREDATE               SAL      COMM    DEPTNO
---------  ---------- --------- --------- ---------------- --------- --------- ---------
     7369  SMITH      CLERK          7902 80/12/17               800                  20
     7499  ALLEN      SALESMAN       7698 81/02/20              1600       300        30
     7521  WARD       SALESMAN       7698 81/02/22              1250       500        30
     7566  JONES      MANAGER        7839 81/04/02              2975                  20
     7654  MARTIN     SALESMAN       7698 81/09/28              1250      1400        30
     7698  BLAKE      MANAGER        7839 81/05/01              2850                  30
     7782  CLARK      MANAGER        7839 81/06/09              2450                  10
     7788  SCOTT      ANALYST        7566 87/04/19              3000                  20
     7839  KING       PRESIDENT           81/11/17              5000                  10
     7844  TURNER     SALESMAN       7698 81/09/08              1500         0        30
     7876  ADAMS      CLERK          7788 87/05/23              1100                  20
     7900  JAMES      CLERK          7698 81/12/03               950                  30
     7902  FORD       ANALYST        7566 81/12/03              3000                  20
     7934  MILLER     CLERK          7782 82/01/23              1300                  10

14 개의 행이 선택되었습니다.

SQL> desc emp;                   //데이터 타입 보여줌
 명칭                            널?      유형
 ------------------------------- -------- ----
 EMPNO                           NOT NULL NUMBER(4)
 ENAME                                    VARCHAR2(10)
 JOB                                      VARCHAR2(9)
 MGR                                      NUMBER(4)
 HIREDATE                                 DATE
 SAL                                      NUMBER(7,2)
 COMM                                     NUMBER(7,2)
 DEPTNO                                   NUMBER(2)

 

 

SQL> desc
                사용법: DESCRIBE [user.]object[.subobject|@db_link] [column]

 

SQL> select * from tab;  //전체의 테이블

TNAME                          TABTYPE CLUSTERID
------------------------------ ------- ---------
BONUS                          TABLE
DEPT                           TABLE
EMP                            TABLE
MASTER                         TABLE
S                              TABLE
SALGRADE                       TABLE

6 개의 행이 선택되었습니다.

 

 

SQL> desc emp;         
 명칭                            널?      유형
 ------------------------------- -------- ----
 EMPNO                           NOT NULL NUMBER(4)
 ENAME                                    VARCHAR2(10)
 JOB                                      VARCHAR2(9)
 MGR                                      NUMBER(4)
 HIREDATE                                 DATE
 SAL                                      NUMBER(7,2)
 COMM                                     NUMBER(7,2)
 DEPTNO                                   NUMBER(2)

 

 

SQL> select * from emp;         //  emp의 내용

    EMPNO ENAME      JOB             MGR HIREDATE               SAL      COMM    DEPTNO
--------- ---------- --------- --------- ---------------- --------- --------- ---------
     7369 SMITH      CLERK          7902 80/12/17               800                  20
     7499 ALLEN      SALESMAN       7698 81/02/20              1600       300        30
     7521 WARD       SALESMAN       7698 81/02/22              1250       500        30
     7566 JONES      MANAGER        7839 81/04/02              2975                  20
     7654 MARTIN     SALESMAN       7698 81/09/28              1250      1400        30
     7698 BLAKE      MANAGER        7839 81/05/01              2850                  30
     7782 CLARK      MANAGER        7839 81/06/09              2450                  10
     7788 SCOTT      ANALYST        7566 87/04/19              3000                  20
     7839 KING       PRESIDENT           81/11/17              5000                  10
     7844 TURNER     SALESMAN       7698 81/09/08              1500         0        30
     7876 ADAMS      CLERK          7788 87/05/23              1100                  20
     7900 JAMES      CLERK          7698 81/12/03               950                  30
     7902 FORD       ANALYST        7566 81/12/03              3000                  20
     7934 MILLER     CLERK          7782 82/01/23              1300                  10

14 개의 행이 선택되었습니다.

 

 

SQL> select empno, ename, sal, comm   // 칼럼명
  2  from emp                         // 테이블 emp에서 가져온다.
  3  where is null;                   // 조건이 null
where is null                         // Error -> Null이 들어가있는 칼럼이 지정안됨
      *
라인 3 에 오류:
ORA-00936: 식이 없습니다


SQL> select empno, ename, sal, comm
  2  from emp
  3  where comm is null;            //칼럼 comm이 Null인 조건.

    EMPNO ENAME            SAL      COMM
--------- ---------- --------- ---------
     7369 SMITH            800
     7566 JONES           2975
     7698 BLAKE           2850
     7782 CLARK           2450
     7788 SCOTT           3000
     7839 KING            5000
     7876 ADAMS           1100
     7900 JAMES            950
     7902 FORD            3000
     7934 MILLER          1300
10 개의 행이 선택되었습니다.

 

 

SQL> select empno, ename, sal, comm
  2  from emp
  3  where comm is not null;    //위와 반대.

    EMPNO ENAME            SAL      COMM
--------- ---------- --------- ---------
     7499 ALLEN           1600       300
     7521 WARD            1250       500
     7654 MARTIN          1250      1400
     7844 TURNER          1500         0

 

 

SQL> select empno, ename, sal, comm
  2  from emp
  3  order by comm desc;

    EMPNO ENAME            SAL      COMM
--------- ---------- --------- ---------
     7369 SMITH            800
     7566 JONES           2975
     7782 CLARK           2450
     7698 BLAKE           2850
     7788 SCOTT           3000
     7839 KING            5000
     7900 JAMES            950
     7934 MILLER          1300
     7902 FORD            3000
     7876 ADAMS           1100
     7654 MARTIN          1250      1400
     7521 WARD            1250       500
     7499 ALLEN           1600       300
     7844 TURNER          1500         0

14 개의 행이 선택되었습니다.

 

SQL> select * from emp;

    EMPNO ENAME      JOB             MGR HIREDATE               SAL      COMM    DEPTNO
--------- ---------- --------- --------- ---------------- --------- --------- ---------
     7369 SMITH      CLERK          7902 80/12/17               800                  20
     7499 ALLEN      SALESMAN       7698 81/02/20              1600       300        30
     7521 WARD       SALESMAN       7698 81/02/22              1250       500        30
     7566 JONES      MANAGER        7839 81/04/02              2975                  20
     7654 MARTIN     SALESMAN       7698 81/09/28              1250      1400        30
     7698 BLAKE      MANAGER        7839 81/05/01              2850                  30
     7782 CLARK      MANAGER        7839 81/06/09              2450                  10
     7788 SCOTT      ANALYST        7566 87/04/19              3000                  20
     7839 KING       PRESIDENT           81/11/17              5000                  10
     7844 TURNER     SALESMAN       7698 81/09/08              1500         0        30
     7876 ADAMS      CLERK          7788 87/05/23              1100                  20
     7900 JAMES      CLERK          7698 81/12/03               950                  30
     7902 FORD       ANALYST        7566 81/12/03              3000                  20
     7934 MILLER     CLERK          7782 82/01/23              1300                  10

14 개의 행이 선택되었습니다.

 

SQL> desc emp
 명칭                            널?      유형
 ------------------------------- -------- ----
 EMPNO                           NOT NULL NUMBER(4)
 ENAME                                    VARCHAR2(10)
 JOB                                      VARCHAR2(9)
 MGR                                      NUMBER(4)
 HIREDATE                                 DATE
 SAL                                      NUMBER(7,2)
 COMM                                     NUMBER(7,2)
 DEPTNO                                   NUMBER(2)

 

 

SQL> select ename, job, deptno
  2  from emp
  3  where job = 'manager'  //소문자.
  4  and deptno <> 30;

선택된 레코드가 없습니다.

 

 

SQL> select ename, job, deptno
  2  from emp
  3  where job='MANAGER'   //대문자.
  4  and deptno <> 30;
                                 //출력--------/
ENAME      JOB          DEPTNO
---------- --------- ---------
JONES      MANAGER          20
CLARK      MANAGER          10

 

SQL> select ename, job, deptno
  2  from emp
  3  where job='MANAGER'
  4  and deptno ^= 30;        //<>와 ^=는 같다.

ENAME      JOB          DEPTNO
---------- --------- ---------
JONES      MANAGER          20
CLARK      MANAGER          10

 

 

SQL> select ename, job, sal
  2  from emp
  3  where sal between 2000 and 3000;   // between조건: 책 실습 1-12 page

ENAME      JOB             SAL
---------- --------- ---------
JONES      MANAGER        2975
BLAKE      MANAGER        2850
CLARK      MANAGER        2450                                 ||
SCOTT      ANALYST        3000        
FORD       ANALYST        3000    
                                                               결과는 같다.
SQL>  select ename, job, sal
  2   from emp
  3   where sal >=2000 and sal <=3000;  // between 의 수학적 표현

ENAME      JOB             SAL
---------- --------- ---------
JONES      MANAGER        2975
BLAKE      MANAGER        2850
CLARK      MANAGER        2450
SCOTT      ANALYST        3000
FORD       ANALYST        3000

 

SQL> select ename deptno       //칼럼명ename 이 deptno로 엘리어스된다. ','가 없어서
  2  from emp
  3  where ename like 'S%';    //emp테이블중 ename이 대문자 S로 시작하는 것을 찾는다. like는 대소문자 구분

DEPTNO
----------
SMITH
SCOTT

 

SQL> select ename deptno
  2  from emp
  3  where ename like '%K';

DEPTNO
----------
CLARK

 

 

SQL> select ename deptno
  2  from emp
  3  where ename like 'F___'; //f로 시작하고 자리수가 4개인것

DEPTNO
----------
FORD

SQL> select ename deptno
  2  from emp
  3  where ename like '%M%';  //ename중 M이 들어간것 모두....

DEPTNO
----------
SMITH
MARTIN
ADAMS
JAMES
MILLER

 

SQL> select ename, job
  2  from emp
  3  where job in('CLERK', 'ANALYST');

ENAME      JOB
---------- ---------
SMITH      CLERK
SCOTT      ANALYST
ADAMS      CLERK
JAMES      CLERK
FORD       ANALYST
MILLER     CLERK

6 개의 행이 선택되었습니다.

 

 

SQL> select * from emp;

    EMPNO ENAME      JOB             MGR HIREDATE               SAL      COMM    DEPTNO
--------- ---------- --------- --------- ---------------- --------- --------- ---------
     7369 SMITH      CLERK          7902 80/12/17               800                  20
     7499 ALLEN      SALESMAN       7698 81/02/20              1600       300        30
     7521 WARD       SALESMAN       7698 81/02/22              1250       500        30
     7566 JONES      MANAGER        7839 81/04/02              2975                  20
     7654 MARTIN     SALESMAN       7698 81/09/28              1250      1400        30
     7698 BLAKE      MANAGER        7839 81/05/01              2850                  30
     7782 CLARK      MANAGER        7839 81/06/09              2450                  10
     7788 SCOTT      ANALYST        7566 87/04/19              3000                  20
     7839 KING       PRESIDENT           81/11/17              5000                  10
     7844 TURNER     SALESMAN       7698 81/09/08              1500         0        30
     7876 ADAMS      CLERK          7788 87/05/23              1100                  20
     7900 JAMES      CLERK          7698 81/12/03               950                  30
     7902 FORD       ANALYST        7566 81/12/03              3000                  20
     7934 MILLER     CLERK          7782 82/01/23              1300                  10

14 개의 행이 선택되었습니다.

 

SQL> select distinct deptno   //distinct중복된 칼럼을 없앤다.
  2  from emp;

   DEPTNO
---------
       10
       20
       30

 

SQL> select ename,deptno
  2  from emp
  3  where ename like 'S%';
 
ENAME          DEPTNO
---------- ----------
SMITH              20
SCOTT              20
 
SQL> c /'S%'/'s%'   //대문자에서 소문자로 변경
  3* where ename like 's%'

SQL> /              //위 명령 재 실행....
 
ENAME          DEPTNO
---------- ----------
smith
 
SQL> select ename deptno  //엘리어스
  2  from emp
  3  where ename like 'S%';
 
DEPTNO
----------
SMITH
SCOTT
 
SQL> c /'S%'/'s%'
  3* where ename like 's%'
SQL> /
 
DEPTNO
----------
smith
 
SQL> select ename 이름, deptno "Emp No"  //여기도 엘리어스....
  2  from emp
  3  where deptno=10;  //조건

이름          Emp No
---------- ---------
CLARK             10
KING              10
MILLER            10

 

SQL> select ename 이름, deptno "Emp No" //엘리어스 Emp No가 문자열이고 공백이 있기때문에 " "으로 .....
  2  from emp e                        //엘리어스
  3  where deptno=10;

이름          Emp No
---------- ---------
CLARK             10
KING              10
MILLER            10

 

 

SQL> select * from emp e;                         //------------엘리어스 시작----

    EMPNO ENAME      JOB             MGR HIREDATE               SAL      COMM    DEPTNO
--------- ---------- --------- --------- ---------------- --------- --------- ---------
     7369 SMITH      CLERK          7902 80/12/17               800                  20
     7499 ALLEN      SALESMAN       7698 81/02/20              1600       300        30
     7521 WARD       SALESMAN       7698 81/02/22              1250       500        30
     7566 JONES      MANAGER        7839 81/04/02              2975                  20
     7654 MARTIN     SALESMAN       7698 81/09/28              1250      1400        30
     7698 BLAKE      MANAGER        7839 81/05/01              2850                  30
     7782 CLARK      MANAGER        7839 81/06/09              2450                  10
     7788 SCOTT      ANALYST        7566 87/04/19              3000                  20
     7839 KING       PRESIDENT           81/11/17              5000                  10
     7844 TURNER     SALESMAN       7698 81/09/08              1500         0        30
     7876 ADAMS      CLERK          7788 87/05/23              1100                  20
     7900 JAMES      CLERK          7698 81/12/03               950                  30
     7902 FORD       ANALYST        7566 81/12/03              3000                  20
     7934 MILLER     CLERK          7782 82/01/23              1300                  10

14 개의 행이 선택되었습니다.
                                                   //-----------엘리어스 끝----
SQL> select * from e
  2  ;
select * from e
              *
라인 1 에 오류:
ORA-00942:  테이블 또는 뷰가 존재하지 않습니다     //--당근!!


SQL> select empno, ename, job, emp.deptno, dname
  2  from emp, dept
  3  where emp,deptno = dept.deptno;           //에러 .->, 으로
where emp,deptno = dept.deptno
         *
라인 3 에 오류:
ORA-00920: 관계 연산자가 부적합합니다


SQL> select empno, ename, job, emp.deptno, dname
  2  from emp, dept
  3  where emp.deptno = dept.deptno;

    EMPNO ENAME      JOB          DEPTNO DNAME
--------- ---------- --------- --------- --------------
     7369 SMITH      CLERK            20 RESEARCH
     7499 ALLEN      SALESMAN         30 SALES
     7521 WARD       SALESMAN         30 SALES
     7566 JONES      MANAGER          20 RESEARCH
     7654 MARTIN     SALESMAN         30 SALES
     7698 BLAKE      MANAGER          30 SALES
     7782 CLARK      MANAGER          10 ACCOUNTING
     7788 SCOTT      ANALYST          20 RESEARCH
     7839 KING       PRESIDENT        10 ACCOUNTING
     7844 TURNER     SALESMAN         30 SALES
     7876 ADAMS      CLERK            20 RESEARCH
     7900 JAMES      CLERK            30 SALES
     7902 FORD       ANALYST          20 RESEARCH
     7934 MILLER     CLERK            10 ACCOUNTING

14 개의 행이 선택되었습니다.

 

SQL> select * from emp;

    EMPNO ENAME      JOB             MGR HIREDATE               SAL      COMM    DEPTNO
--------- ---------- --------- --------- ---------------- --------- --------- ---------
     7369 SMITH      CLERK          7902 80/12/17               800                  20
     7499 ALLEN      SALESMAN       7698 81/02/20              1600       300        30
     7521 WARD       SALESMAN       7698 81/02/22              1250       500        30
     7566 JONES      MANAGER        7839 81/04/02              2975                  20
     7654 MARTIN     SALESMAN       7698 81/09/28              1250      1400        30
     7698 BLAKE      MANAGER        7839 81/05/01              2850                  30
     7782 CLARK      MANAGER        7839 81/06/09              2450                  10
     7788 SCOTT      ANALYST        7566 87/04/19              3000                  20
     7839 KING       PRESIDENT           81/11/17              5000                  10
     7844 TURNER     SALESMAN       7698 81/09/08              1500         0        30
     7876 ADAMS      CLERK          7788 87/05/23              1100                  20
     7900 JAMES      CLERK          7698 81/12/03               950                  30
     7902 FORD       ANALYST        7566 81/12/03              3000                  20
     7934 MILLER     CLERK          7782 82/01/23              1300                  10

14 개의 행이 선택되었습니다.

 

SQL> select x.ename, x.sal, x.job, y.ename, y.sal, y.job
  2  from emp x, emp y
  3  where x.sal > y.sal
  4  and y.ename = 'JONES';                         //연구해봐....

ENAME            SAL JOB       ENAME            SAL JOB
---------- --------- --------- ---------- --------- ---------
SCOTT           3000 ANALYST   JONES           2975 MANAGER
KING            5000 PRESIDENT JONES           2975 MANAGER
FORD            3000 ANALYST   JONES           2975 MANAGER

SQL> select * from dept;

   DEPTNO DNAME          LOC
--------- -------------- -------------
       10 ACCOUNTING     NEW YORK
       20 RESEARCH       DALLAS
       30 SALES          CHICAGO
       40 OPERATIONS     BOSTON

 

 

SQL> select * from emp;

    EMPNO ENAME      JOB             MGR HIREDATE               SAL      COMM    DEPTNO
--------- ---------- --------- --------- ---------------- --------- --------- ---------
     7369 SMITH      CLERK          7902 80/12/17               800                  20
     7499 ALLEN      SALESMAN       7698 81/02/20              1600       300        30
     7521 WARD       SALESMAN       7698 81/02/22              1250       500        30
     7566 JONES      MANAGER        7839 81/04/02              2975                  20
     7654 MARTIN     SALESMAN       7698 81/09/28              1250      1400        30
     7698 BLAKE      MANAGER        7839 81/05/01              2850                  30
     7782 CLARK      MANAGER        7839 81/06/09              2450                  10
     7788 SCOTT      ANALYST        7566 87/04/19              3000                  20
     7839 KING       PRESIDENT           81/11/17              5000                  10
     7844 TURNER     SALESMAN       7698 81/09/08              1500         0        30
     7876 ADAMS      CLERK          7788 87/05/23              1100                  20
     7900 JAMES      CLERK          7698 81/12/03               950                  30
     7902 FORD       ANALYST        7566 81/12/03              3000                  20
     7934 MILLER     CLERK          7782 82/01/23              1300                  10

14 개의 행이 선택되었습니다.

 

 

SQL> select ename, dept.deptno, loc
  2  from emp, dept
  3  where emp.deptno(+) = dept.deptno;       //emp.deptno(+): 자식  dept.deptno :부모
                                              //조건은 부모만 가진 필드값을 위주로 emp.deptno(+) = dept.deptno을 만족하는
ENAME         DEPTNO LOC                      //값을 출력
---------- --------- -------------
CLARK             10 NEW YORK
KING              10 NEW YORK
MILLER            10 NEW YORK
SMITH             20 DALLAS
ADAMS             20 DALLAS
FORD              20 DALLAS
SCOTT             20 DALLAS
JONES             20 DALLAS
ALLEN             30 CHICAGO
BLAKE             30 CHICAGO
MARTIN            30 CHICAGO
JAMES             30 CHICAGO
TURNER            30 CHICAGO
WARD              30 CHICAGO
                  40 BOSTON

15 개의 행이 선택되었습니다.

 

 

SQL> select ename, empno, dept.deptno, loc
  2  from emp, dept
  3  where emp.deptno(+) = dept.deptno;

ENAME          EMPNO    DEPTNO LOC
---------- --------- --------- -------------
CLARK           7782        10 NEW YORK
KING            7839        10 NEW YORK
MILLER          7934        10 NEW YORK
SMITH           7369        20 DALLAS
ADAMS           7876        20 DALLAS
FORD            7902        20 DALLAS
SCOTT           7788        20 DALLAS
JONES           7566        20 DALLAS
ALLEN           7499        30 CHICAGO
BLAKE           7698        30 CHICAGO
MARTIN          7654        30 CHICAGO
JAMES           7900        30 CHICAGO
TURNER          7844        30 CHICAGO
WARD            7521        30 CHICAGO
                            40 BOSTON

15 개의 행이 선택되었습니다.

 

 

SQL> select * from emp;

    EMPNO ENAME      JOB             MGR HIREDATE               SAL      COMM    DEPTNO
--------- ---------- --------- --------- ---------------- --------- --------- ---------
     7369 SMITH      CLERK          7902 80/12/17               800                  20
     7499 ALLEN      SALESMAN       7698 81/02/20              1600       300        30
     7521 WARD       SALESMAN       7698 81/02/22              1250       500        30
     7566 JONES      MANAGER        7839 81/04/02              2975                  20
     7654 MARTIN     SALESMAN       7698 81/09/28              1250      1400        30
     7698 BLAKE      MANAGER        7839 81/05/01              2850                  30
     7782 CLARK      MANAGER        7839 81/06/09              2450                  10
     7788 SCOTT      ANALYST        7566 87/04/19              3000                  20
     7839 KING       PRESIDENT           81/11/17              5000                  10
     7844 TURNER     SALESMAN       7698 81/09/08              1500         0        30
     7876 ADAMS      CLERK          7788 87/05/23              1100                  20
     7900 JAMES      CLERK          7698 81/12/03               950                  30
     7902 FORD       ANALYST        7566 81/12/03              3000                  20
     7934 MILLER     CLERK          7782 82/01/23              1300                  10

14 개의 행이 선택되었습니다.

 

 

SQL> select worker.ename, manager.ename manager
  2  from emp worker, emp manager
  3  where worker.mgr = manager.empno;  //뜻 ->  일하는사람  : 고용주.

ENAME      MANAGER
---------- ----------
SMITH      FORD
ALLEN      BLAKE
WARD       BLAKE
JONES      KING
MARTIN     BLAKE
BLAKE      KING
CLARK      KING
SCOTT      JONES
TURNER     BLAKE
ADAMS      SCOTT
JAMES      BLAKE
FORD       JONES
MILLER     CLARK

13 개의 행이 선택되었습니다.


SQL>  select  deptno, sum(sal)
  2   from emp
  3  group by deptno;

   DEPTNO  SUM(SAL)
--------- ---------
       10      8750
       20     10875
       30      9400

 

 

 

 

 

 

+ Recent posts