Data Base_Oracle/SQL

SQL Select 개요 & Desc & Distinct

pathas 2019. 12. 31. 21:11

Select 사용법 및 예제

해당 계정의 모든 table 확인

▶ SQL> select * from tab;

TNAME TABTYPE CLUSTERID
BONUS(보너스 정보) TABLE  
DEPT(부서 정보) TABLE  
EMP(직원 정보) TABLE  
SALGRADE(급여 등급 정보) TABLE  

desc 테이블 구조 확인

▷ 형식) SQL> desc 테이블명
▶ SQL> desc emp

이름 널? 유형
EMPNO(사원 번호) NOT NULL(필수 입력) NUMBER(4) : 숫자, 4자리수
ENAME(사원 이름)   VARCHAR2(10) : 문자열, 10byte
JOB(직책/업무)   VARCHAR2(9)
MGR(직속상관 사원 번호)   NUMBER(4)
HIREDATE(입사일)   DATE : 날짜
SAL(급여)   NUMBER(7,2) : 전체 7자리중에서
소수점 2자리까지 표현    
COMM(보너스)   NUMBER(7,2)
DEPTNO(부서 번호)   NUMBER(2)

테이블 내의 모든 필드 조회

▶ SQL> select * from emp;
emp 테이블의 모든 값을 보여줌

EMPNO ENAME JOB HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 80/12/17 800  
7499 ALLEN SALESMAN 7698 81/02/20 1600 300
중략 ... ... ... ... ... ...

테이블에서 특정 필드 조회

▷ 형식) SQL> select 필드명1, 필드명2, 필드명3,,,,,,(순서 상관 X) from 테이블명
▶ SQL> select empno,ename,job from emp;

EMPNO ENAME JOB
7369 SMITH CLERK
7499 ALLEN SALESMAN
... ... ...

DISTINCT

distinct : 중복된 데이터를 한 번만 출력 ex) 회사 내 직책
▷ 형식 SQL> distinct 필드명, 필드명,,,,
▶ emp테이블에서 직책의 종류만 나오도록 출력
SQL> select distinct job from emp;

JOB
CLERK
SALESMAN
...

날짜 데이터 조회

※ 값은 문자형으로 저장, 범위는 숫자형으로 처리

▶ '81/02/22'이후에 입사한 직원의 이름과, 입사일을 emp테이블에서 조회
SQL> select ename,hiredate from emp where hiredate >= '81/02/22';

ENAME HIREDATE
WARD 81/02/22
JONES 81/04/02
... ...

※ 별칭[가상필드]부여 : 연산 가능, 영어 데이터를 한글로 표현하는 것도 가능

  • " " : 대소문자를 구분하거나 특수기호(#, _ , $ 등), 공백을 표현하고 싶을 때 사용

  • ▷ 형식) SQL> select 필드명 as 별칭명 from 테이블명 // as 생략 가능

  • ▶ 예제) emp테이블에서 ename에 "사원이름", job에 '업무'라는 별칭을 지정하고,
    사원 번호, 이름, 업무순으로 조회
    SQL> select empno,ename as "사원이름",job 업무 from emp ;

    EMPNO 사원이름 업무
    7369 SMITH CLERK
    7499 ALLEN SALESMAN
    ... ... ...

select는 테이블 내의 자료를 검색/조회할 때 사용하다보니 가장 많이 쓰인다고 합니다.

구체적으로 알아두면 공부하는 데에 도움이 될 것 같습니다.