※ 하기 내용은 class101 비전공자도 쉽게 배워 바로 써먹는 실무 활용 SQL을 정리한 내용입니다.
가장 많이 사용하는 문이 SELECT 문! DB중 필요한 정보를 원하는 형태로 만들어서 꺼내올 때 사용되기 때문에 가장 많이 사용됨~
회사에 있는 사원중에서 월급이 1000$이상인 사원들의 직업군별 집계 정보를 보고자함. (단, 인원이 3명 이상인 직업군만 유효직업으로 봄). 보고자하는 집계정보는 직업군별 인원수, 월급 합계, 최종 입사자의 입사일자임. 결과는 직업군의 이름 순으로 정렬하고자 함
먼저, 어디에서 데이터를 가져와야할지 봐야함.
-> 사원 테이블에 있는 정보를 봐야겠다 -> 월급이 1000$이상인 사원들 -> 직업군별 집계 정보(GROUP BY ~?) -> 인원이 3명 이상인 직업군만 유효(COUNT로 CUT) -> 집계정보는 직업군별 인원수, 월급 합계, 최종 입사자의 입사일자 -> 직업군의 이름 순
1) EMP TABEL에서 시작
2) SAL 가 1000$ 이상
3) JOB COL로 그룹을 짓는다
4) COUNT 3이상의 조건만 갖는(HAVING) 그룹을
5) 3COL 만 SELECT
6) JOB COL 값으로 정렬(ORDER BY)
SELECT문은 DB의 데이터를 조회하는 구문
기본적으로 SELECT 절과 FROM 절로 구성
,
로 구분하여 기술SELECT TABLE_NAME, TABLESPACE_NAME
FROM USER_TABLES A ;
*
를 기술하면 테이블의 전체 COLUMN이 조회됨SELECT *
FROM USER_TABLES A ;
*
을 사용하면 조회 성능이 크게 느려질 수 있으므로 주의해야함! SELECT절에 필요한 COL만 기술SELECT 절에 DISTINCT 키워드를 기술하면 중복 값이 제거된 결과가 반환됨 (카테고리, 종류를 나타낼 때 사용됨. EX.어떤 종류의 아이템이 있는지)
SELECT DISTINCT TABLE_NAME
FROM USER_TABLES A ;
SELECT 절의 컬럼에 별칭(COLUMN ALIAS)을 지정할 수 있음
AS
키워드 사용(생략할 수 있으나 가독성을 위해 기술하는 게 좋음)"
)을 사용하면 별칭에 공백, 특수문자, 대소문자 포함이 가능하다('
은 다른 용도로 사용됨)SELECT TABLE_NAME AS "부서 명 Table"
FROM USER_TABLES A ;
FROM 절의 테이블에도 별칭(TABLE ALIAS)을 지정할 수 있음
SELECT A.TABLE_NAME -- A테이블의 TABLE_NAME 컬럼
FROM USER_TABLES A ; -- USER_TABLES를 A라고 별칭
SELECT 절에 컬럼과 함께 리터럴(Literal)을 기술할 수 있음
'
)으로 감싸 기술하고, 날짜 리터럴은 DATE 키워드와 함께 기술''
안에 들어가는 값을 넣는 거네...ㅎSELECT A.TABLE_NAME,
'Chabbo' AS char_literal, 0823 AS num_literal, DATE'2023-01-03' AS date_literal
FROM USER_TABLES A ;
DATE'20230103'
이런식으로 입력하면 오류남. 숫자도 '0823'
으로 하면 0823으로 왼쪽정렬되서 나타남SELECT 절의 컬럼이나 리터럴에 대해 연산자를 사용할 수 있음
산술 연산자는 숫자값과 날짜 값에대해 사용할 수 있음
✨✨연결연산자는 문자값에 대해 사용할 수 있음 (많이 사용!!!)
NULL
' '
과는 다름''
을 동일하게 처리함DUAL 테이블 (오라클 한정 사용, 오라클에서 많이 사용)
주석(Comments)
--
뒤에 내용 기술 (줄이 바뀌기 전까지 유지)/*
~ */
사이에 주석 기술 (줄이 바뀌어도 주석 유지)뭐든지 경험하면서 익숙해지면 할 수 있다!!!
WHERE절
비교조건
!=
을 많이 사용하지 않음(가능은 함)논리조건
AND, OR 논리 간 우선 순위
논리조건