DB/sql

2. Select 기본

wooweee 2023. 4. 16. 12:00
728x90

1. select

 

SELECT (DISTINCT) column명 (ALIAS) FROM table;
  • SELECT
    • () 부분 생략 가능
    • 원본을 변경하지 않는다. 

 

1.1. column명

SELECT * FROM STUDENT.S_EMP; -- 모든 column 출력
SELECT NAME FROM STUDENT.S_EMP; -- name column만 출력 
SELECT NAME, SALARY FROM STUDENT.S_EMP; -- 여러 column 출력 가능

SELECT 'a' from s_dept;
--각 행마다 'a' 라는 문자열 값을 가지는 새로운 열을 생성하고 반환
--반환되는 행의 수는 s_dept 테이블의 행 수와 동일

 

1.2. column명에 산술식

  • 해당 column이 숫자일 때 가능, 사칙연산 + ()
  • 그리고 산술을 한 column명은 SALARY/10/10 산술한 형태 그대로 변경됨
SELECT NAME, SALARY/10/10 FROM STUDENT.S_EMP;



1.3. ALIAS 매우 중요

 

  • ALIAS
    • column명을 바꿀 수 있다.
      • 중복 사용 가능
      • column명 다음에 AS 변경원하는이름으로 변경 가능
    • 산술연산 수행하는 경우 유용하게 사용

    • AS라는 기호로 ALIAS를 표현하는데 생략 가능

    • 변경하고 싶은 명이 영어 대소문자 구분이 필요하거나 두 단어 일때 "" 꼭 사용
SELECT NAME "changeName", SALARY/10/10 "change Sarary" FROM STUDENT.S_EMP; -- , 위치 주의



1.4. column의 합성

 

  • column 내용은 합쳐질지 몰라도 column 명은 NAME||'&'||TITLE로 나온다.
  • --as를 사용해서 column명 또한 이쁘게 꾸며준다. 
SELECT name || '&' || title "name & title" from STUDENT.S_EMP; --as를 사용해서 column명 또한 이쁘게 꾸며준다.



1.5. 중복행 제거 사용 권장 안함 부담이 크다. 

  • 개수 제한 없음
  • 각 row의 2개의 column이 동일 한 경우만 제거
SELECT DISTINCT MANAGER_ID , TITLE  from STUDENT.S_EMP; -- 각 row의 2개의 column이 동일 한 경우만 제거

 

  • select from 마지막에 정렬, 조건 붙이기
    1. 정렬         : ORDER BY
    2. 조건 검색 : WHERE

 

1.6. ORDER BY

 

  • asc(오름차순, default), desc(내림차순)
SELECT * FROM STUDENT.S_EMP
ORDER BY name -- ASC 생략
;

SELECT * FROM STUDENT.S_EMP
ORDER BY name DESC
;