본문 바로가기

Database/ORACLE

SQL class #1 DESC

SQL class #1 DESC


SQL을 처음부터 하나하나 정리해 보도록 하겠습니다.

천천히 SQL 이라는 산을 타보도록 하죠!! 화이팅!!


1. DESC

SCOTT>DESC professor ;

 Name                                                                                                              Null?    Type

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

 PROFNO                                                                                                            NOT NULL NUMBER(4)

 NAME                                                                                                              NOT NULL VARCHAR2(10)

 ID                                                                                                                NOT NULL VARCHAR2(15)

 POSITION                                                                                                          NOT NULL VARCHAR2(10)

 PAY                                                                                                               NOT NULL NUMBER(3)

 HIREDATE                                                                                                          NOT NULL DATE

 BONUS                                                                                                                      NUMBER(4)

 DEPTNO                                                                                                                     NUMBER(3)

 EMAIL                                                                                                                      VARCHAR2(50)

 HPAGE                                                                                                                      VARCHAR2(50)



특정 테이블에 어떤 칼럼이 있는지 조회를 하는 명령어 입니다.

칼럼네임을 알아보거나, 어느정도의 데이터가 있는지를 확인할때 유용할수 있습니다.

DESC는 Describe의 약어 입니다.




2. SELECT

SCOTT>SELECT * FROM professor ;


    PROFNO NAME       ID              POSITION          PAY HIREDATE          BONUS     DEPTNO EMAIL                               HPAGE

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

      1001 조인형     captain         정교수            550 23-JUN-80           100        101 captain@abc.net                     http://www.abc.net

      1002 박승곤     sweety          조교수            380 30-JAN-87            60        101 sweety@abc.net                      http://www.abc.net

      1003 송도권     powerman        전임강사          270 22-MAR-98                      101 pman@power.com                      http://www.power.com

      2001 양선희     lamb1           전임강사          250 01-SEP-01                      102 lamb1@hamail.net

      2002 김영조     number1         조교수            350 30-NOV-85            80        102 number1@naver.com                   http://num1.naver.com

      2003 주승재     bluedragon      정교수            490 29-APR-82            90        102 bdragon@naver.com

      3001 김도형     angel1004       정교수            530 23-OCT-81           110        103 angel1004@hanmir.com

      3002 나한열     naone10         조교수            330 01-JUL-97            50        103 naone10@empal.com

      3003 김현정     only-u          전임강사          290 24-FEB-02                      103 only_u@abc.com

      4001 심슨       simson          정교수            570 23-OCT-81           130        201 chebin@daum.net

      4002 최슬기     gogogo          조교수            330 30-AUG-09                      201 gogogo@def.com

      4003 박원범     mypride         조교수            310 01-DEC-99            50        202 mypride@hanmail.net

      4004 차범철     ironman         전임강사          260 28-JAN-09                      202 ironman@naver.com

      4005 바비       standkang       정교수            500 18-SEP-85            80        203 standkang@naver.com

      4006 전민       napeople        전임강사          220 28-JUN-10                      301 napeople@jass.com

      4007 허은       silver-her      조교수            290 23-MAY-01            30        301 silver-her@daum.net


16 rows selected.


DESC와는 다르게 내용을 보는 명령어 입니다.

자세한 모든 데이터를 조회할때 쓰이는 명령어 입니다.



3. SELECT 내 원하는 칼럼만 조회하기


SCOTT>SELECT name,position,deptno FROM professor ;

NAME       POSITION       DEPTNO
---------- ---------- ----------
조인형     정교수            101
박승곤     조교수            101
송도권     전임강사          101
양선희     전임강사          102
김영조     조교수            102
주승재     정교수            102
김도형     정교수            103
나한열     조교수            103
김현정     전임강사          103
심슨       정교수            201
최슬기     조교수            201
박원범     조교수            202
차범철     전임강사          202
바비       정교수            203
전민       전임강사          301
허은       조교수            301

16 rows selected.

이와같이 칼럼명을 써주므로써 원하는 칼럼만 조회할수 있습니다.
필요한 데이터만 꺼내서 볼수 있는 장점이 있습니다.




4. 칼럼에 별칭을 붙여서 출력하기


SCOTT>SELECT name "이름", position "직급", pay"급여" FROM professor;

이름       직급             급여
---------- ---------- ----------
조인형     정교수            550
박승곤     조교수            380
송도권     전임강사          270
양선희     전임강사          250
김영조     조교수            350
주승재     정교수            490
김도형     정교수            530
나한열     조교수            330
김현정     전임강사          290
심슨       정교수            570
최슬기     조교수            330
박원범     조교수            310
차범철     전임강사          260
바비       정교수            500
전민       전임강사          220
허은       조교수            290

16 rows selected.


컬럼명 대신 원하는 별칭을 써서 컬럼의 데이터를 화면에 출력할수 있습니다.


5. DISTINCT 중복된 값을 제거하고 출력하는방법

SCOTT>SELECT deptno1 FROM student ;

   DEPTNO1
----------
       101
       102
       103
       201
       202
       101
       102
       202
       301
       201
       101
       102
       201
       201
       301
       101
       201
       201
       102
       103

20 rows selected.

SCOTT>SELECT DISTINCT deptno1 FROM student ;

   DEPTNO1
----------
       102
       201
       301
       101
       202
       103

6 rows selected.

위와같이 중복된 데이터를 제거하고 화면에 출력할수 있도록 합니다.

6. 연결연산자를 이용해서 칼럼을 연속으로 출력하기


SCOTT>SELECT name,position
  2  FROM professor;

NAME       POSITION
---------- ----------
조인형     정교수
박승곤     조교수
송도권     전임강사
양선희     전임강사
김영조     조교수
주승재     정교수
김도형     정교수
나한열     조교수
김현정     전임강사
심슨       정교수
최슬기     조교수
박원범     조교수
차범철     전임강사
바비       정교수
전민       전임강사
허은       조교수

16 rows selected.

SCOTT>
SCOTT>SELECT name||position
  2  FROM professor;

NAME||POSITION
--------------------
조인형정교수
박승곤조교수
송도권전임강사
양선희전임강사
김영조조교수
주승재정교수
김도형정교수
나한열조교수
김현정전임강사
심슨정교수
최슬기조교수
박원범조교수
차범철전임강사
바비정교수
전민전임강사
허은조교수

16 rows selected.

연결 연산자를 이용 해서 필요한 두 데이터 칼럼을 연속으로 
화면에 출력 할 수 있도록 합니다.


7. 문자열을 넣어서 출력하기


SCOTT>SELECT name||' is '||position||'sir.'
  2  FROM professor ;

NAME||'IS'||POSITION||'SIR.'
----------------------------
조인형 is 정교수sir.
박승곤 is 조교수sir.
송도권 is 전임강사sir.
양선희 is 전임강사sir.
김영조 is 조교수sir.
주승재 is 정교수sir.
김도형 is 정교수sir.
나한열 is 조교수sir.
김현정 is 전임강사sir.
심슨 is 정교수sir.
최슬기 is 조교수sir.
박원범 is 조교수sir.
차범철 is 전임강사sir.
바비 is 정교수sir.
전민 is 전임강사sir.
허은 is 조교수sir.

16 rows selected.

여러 데이터를 출력할때 중간에 접속사나 수식어가 필요할때 원하는 글자나 기호를 넣어서
데이터를 화면에 출력하실수 있습니다.


8. WHERE 절을 이용해서 원하는 조건만 출력하기

 1  SELECT name,id,length(id)
  2  FROM student
  3* WHERE length(id) > 3
SCOTT>/


NAME       ID                   LENGTH(ID)
---------- -------------------- ----------
서진수     75true                        6
서재수     pooh94                        6
이미경     angel000                      8
김재수     gunmandu                      8
박동호     pincle1                       7
김신영     bingo                         5
신은경     jjang1                        6
오나라     nara5                         5
구유미     guyume                        6
임세현     shyun1                        6
일지매     onejimae                      8
김진욱     samjang7                      8
안광훈     nonnon1                       7
김문호     munho                         5
노정호     star123                       7
이윤나     prettygirl                   10
안은수     silverwt                      8
인영민     youngmin                      8
김주현     kimjh                         5
허우       wooya2702                     9

20 rows selected.

위와같이 WHERE절을 이용해서 ID의 길이가 3 byte 이상되는 사람들만 출력을 할수 있습니다.
이를 이용해서 특정 칼럼값만 출력하실수도 있습니다.


9. LIKE 절을 이용해서 원하는 조건이 들어간 값을 출력하기


SCOTT>SELECT name
  2  FROM student
  3  WHERE name LIKE '김%' ;

NAME
----------
김재수
김신영
김진욱
김문호
김주현

LIKE 절을 이용해서 김씨성을 가진 사람만 출력할수 있습니다.


10. NULL을 조건으로 넣어 출력하기


SCOTT>SELECT name,bonus
  2  FROM professor
  3  WHERE bonus IS NULL ;

NAME            BONUS
---------- ----------
송도권
양선희
김현정
최슬기
차범철
전민

6 rows selected.


  1  SELECT name,bonus
  2  FROM professor
  3* WHERE bonus IS NOT NULL
SCOTT>/

NAME            BONUS
---------- ----------
조인형            100
박승곤             60
김영조             80
주승재             90
김도형            110
나한열             50
심슨              130
박원범             50
바비               80
허은               30

10 rows selected.



NULL값은 값이 0 인것이 아니라 모르는것이기 때문에 " < , > , = " 과 같은 등식기호를 쓸수 없습니다.
그래서 IS NULL 라는 명령어를 쓰고 있으니 주의해주시기 바랍니다. 그 반대로는 IS NOT NULL 을 쓸수 있습니다.


다음 이시간에 2편으로 찾아오겠습니다.

수고하셨습니다!

감사합니다!



By. sTricky

'Database > ORACLE' 카테고리의 다른 글

SQL class #2 SUBSTR  (0) 2013.04.26
Oracle 10g RAC asm setting #3  (0) 2013.04.25
Oracle 10g RAC asm setting #2  (0) 2013.04.17
Oracle 10g RAC asm setting #1  (0) 2013.04.10
Oracle 11g Silent setting in OEL5 설치 안내  (0) 2013.04.09