SELECT는 테이블에 있는 데이터를 조회하는 명령어입니다.
-- 모든 컬럼을 조회한다.
SELECT * FROM TABLE_NAME ;
-- 특정 컬럼만 조회한다.(EX > ID, AGE, NAME을 조회)
SELECT ID, AGE, NAME FROM TABLE_NAME ;
컬럼명 대신 임의로 이름을 붙일 수 있습니다.
이는 컬럼명이 너무 길거나 두 개 이상의 컬럼을 합칠 때 유용합니다.
SELECT ID, NAME_REGTATE AS NR FROM TABLE_NAME ;
이때 AS는 생략을 해도 된다.
그리고 테이블 이름도 똑같이 별칭을 줄 수 있습니다.
조건문을 지정해서 조건에 맞는 row만 출력하기 위한 구문.
-- 나이가 20살 검색한다면
SELECT * FROM TABLE_NAME WHERE AGE = 20 ;
-- 나이가 20살 이상인 사람의 이름과 ID 를 조회한다면
SELECT ID, NAME FROM TABLE_NAME WHERE AGE >= 20 ;
-- ID가 '15' 이고 나이가 25살보다 작거나 이름이 'KIM'인 사원 조회
SELECT * FROM TABLE_NAME WHERE ID = '15' AND (Age<25 OR NAME = 'KIM') ;
-- 이름이 KIM으로 시작하는 사람 검색
SELECT * FROM TABLE_NAME WHERE NAME LIKE 'KIM%' ;
-- 이름이 KIM으로 끝나는 ID와 나이 검색
SELECT ID, AGE FROM TABLE_NAME WHERE NAME LIKE '%KIM' ;
-- 이름에 KIM을 포합하는 사람 검색
SELECT * FROM TABLE_NAME WHERE NAME LIKE '%KIM%' ;
-- 나이가 20살, 24살, 28살인 사람 검색
SELECT * FROM TABLE_NAME WHERE AGE IN (20, 24, 28) ;
-- 20살 부터 30살 사이의 사람들 검색
SELECT * FROM TABLE_NAME WHERE AGE BETWEEN 20 AND 30 ;
-- 20살이 아닌 사람의 데이다 모두 검색
SELECT * FROM TABLE_NAME WHERE NOT AGE = 20 ;
특정 컬럼에 저장된 데이터에 대한 NULL 여부 확인
IS NULL : 컬럼 값 중에서 NULL을 포함하는 행을 검색하기 위해 사용
IS NOT NULL : NULL을 포함하지 않는 행을 검색하기 위해 사용
지정된 컬럼을 기준으로 정렬하고 기본은 오름차순(ASC)이며 내림차순(DESC)도 있다.
-- 나이를 오름차순으로 정렬
SELECT * FROM TABLE_NAME ORDER BY AGE ASC ;
-- 나이를 내림차순으로 정렬 후 이름을 오름차순으로 정렬
SELECT name, age FROM table_name ORDER BY age DESC, name ;
-- 상위 4개의 레코드 가져오기
SELECT * FROM TABLE_NAME LIMIT 4 ;
-- 4번째부터 10개의 레코드 가져오기
SELECT * FROM TABLE_NAME LIMIT 3,10 ;
데이터의 최대값과 최소값을 가져올떄 사용, 숫자뿐 아니라 문자에도 사용합니다.
문자열을 사용할 경우 MAX는 데이터베이스가 해당 열에 정의한 정렬 순서에서 가장 높은 값을 찾습니다. MIN은 그 반대.
한글의경우 자음 < 한글 < 모음순으로 큰 값이 되고,
영문의 경우 A<Z, 같은 알파벳일경우 소문자 < 대문자 순으로 대문자영문이 가장 큰 값이 됩니다.
MIN, MAX 날짜에 적용 시 MIN은 먼저 들어온 데이타, MAX는 최신
-- 가장 높은 나이값 가져오기
SELECT MAX(AGE) FROM TABLE_NAME ;
--컬럼 범주 조회
SELECT DISTINCT 컬럼 FROM TABLE_NAME;
--조건 처리 후에 컬럼 범주 조회
SELECT DISTINCT 컬럼 FROM TABLE_NAME WHERE 조건식;
--컬럼 범주 개수 조회
SELECT COUNT(DISTINCT 컬럼) FROM TABLE_NAME;
CASE WHEN 조건절 THEN 참일때 값 ELSE 거짓일때 값 END 컬럼명
--테이블(user)에서 나이(GENDER)가 36이면 X, 37이면 Y 그리고 나머지 다른 값은 Z
SELECT NAME,CASE WHEN AGE = 36 THEN 'X'
WHEN AGE =37 THEN 'Y'
ELSE 'Z' END AS AGE
FROM user GROUP BY AGE;