본문 바로가기

Database

SELECT

SELECT 컬럼명 FROM 테이블명

원하는 테이블의 원하는 컬럼을 조회할 수 있는 쿼리문 

컬럼명 자리에 * 를 쓰는 것은 '모든 컬럼'을 의미한다. 

여러 컬럼을 조회하고 싶을 때는 , 를 사용한다. .

 

 

컬-테-쿼 

컬럼명테이블명은 대소문자를 구분하지 않는다. 

쿼리문도 대소문자를 구분하지 않는다. 

 

하지만 데이터는 대소문자를 구분한다. 

 

 

 

HR계정에 등록돼 있는 연습용 테이블들
- EMPLOYEES       : 모든 사원 정보를 저장한 테이블
- DEPARTMENTS   : 모든 부서 정보를 저장한 테이블
- JOBS                : 모든 직급 정보를 저장한 테이블
- LOCATIONS       : 지역 정보를 저장한 테이블
- REGIONS          : 대륙 정보를 저장한 테이블 

 

 

 

DESC

    - 해당 테이블의 컬럼 정보를 자세히 볼 수 있다.
    - 유형 : 해당 컬럼에 저장될 수 있는 타입 = 컬럼타입 (괄호 안의 숫자는 글자수) 

ex. 

DESC locations

 

어 쟤는 왜 ; 안 써줘요?? 

DESC 는 ; 없어도 됨
쿼리문은 ; 있어야 한다.  / 오라클 명령어는  ; 필요 없을 수 있다.

 

 

 

컬럼타입 

  • NUMBER(n), NUMBER(n, m)
        - 숫자 데이터만 저장할 수 있는 컬럼타입   

    - NUMBER(n)

      n : 정수의 길이를 나타냄

                         NUMBER(8) : 정수 8자리까지 저장할 수 있는 컬럼


    - NUMBER(n, m)

      n : 실수의 전체길이  m : 소수점 자릿수
                         NUMBER(8, 2) : 정수 6자리와 소수 2자리를 저장할 수 있는 컬럼
                         NUMBER(2, 2) 면 정수는 못 입력하고 소수2자리만 입력 가능 

 

 

  • VARCHAR2(n) 
        - 가변길이 문자데이터를 저장할 수 있는 컬럼타입 
        - 최대 길이 지정하되 실제 데이터 크기대로 저장됨

         비교 >> VARCHAR2(n)  가변길이 문자타입 (최대 길이 지정하되 실제 데이터 크기대로 저장됨) 
                       CHAR(n) 고정크기 문자타입  (자릿수를 다 채우지 않아도 되긴 함)

                       NUMBER(n) 가변길이 숫자타입( 최대자릿수 지정)
                     

 

 

  • CHAR(n)
        - 고정 길이 문자 데이터를 저장할 수 있는 컬럼 타입
            >> 성능은 고정인게 더 좋겠지?  
        - 설정된 컬럼 크기보다 적은 양의 데이터가 들어오더라도 설정된 크기를 모두 차지한다. 
        - 그래서 해당 컬럼의 성격에 따라 데이터 공간낭비가 심해질 수 있다. 

 

 

DATE
    - 날짜 및 시간 데이터를 저장할 수 있는 컬럼 타입

 

 

 

이외에 데이터타입은 컬럼타입이 될 수 없음. ( ex. BOOLEAN 불가능)

 

 

 

AS

AS 를 이용해 해당 컬럼을 원하는 이름으로 조회할 수 있다.
SELECT
    first_name AS 이름,
    last_name  AS 성,
    hire_date  AS 고용일
FROM
    employees;

 

 

조회 결과에 산술 연산자를 활용할 수 있다.
SELECT
    last_name,
    salary * 12 AS 연봉
FROM
    employees;

 

 

 

 

null

정상적인 값과 null을 연산하면 null이 된다. 

null이 낀 연산의 의도치 않은 결과는  nvl() 함수 가 해결할 수 있지~

 

nvl(col, value)
    - 계산에 사용되는 컬럼에 null이 있는 경우 null 대신 사용할 값을 지정하는 함수
    - 컬럼자리에는 컬럼을 활용한 계산식이 들어가도 된다. 

ex. 

SELECT
    first_name,
    salary,
    salary * nvl(commission_pct, 0)  AS "커미션 금액",     띄어쓰기 하려면 큰따 안에 넣기 ★
    salary + nvl(salary * commission_pct, 0) AS 총액
FROM
    employees;

 

 

 

DISTINCT

SELECT DISTINCT : 중복되는 데이터는 한번만 출력한다
SELECT DISTINCT job_id FROM employees;