1) 일반
SELECT 테이블.컬럼, 테이블.컬럼
FROM 테이블1,테이블2
WHERE 조건
ORDER BY 순서
검색기능
SELECT * FROM 테이블명
selcet 조회하고싶은 컬럼 from 테이블명
(..) as 조건에 맞는 컬럼명 재지정
특정 칼럼을 기준으로 집계 함수를 사용하여 건수(COUNT), 합계(SUM), 평균(AVG) 등 집 계성 데이터를 추출할 때 사용한다.
SELECT job, SUM(sal) AS sum_sal
FROM emp
WHERE deptno IN (20, 30)
GROUP BY job
조건문
SELECT * FROM 테이블명 WHERE 조건 and 조건
and 으로 중복되는 조건을 명시가능
(~로 시작,포함,끝나는 단어)
SELECT * FROM 테이블명 WHERE Name LIKE '김%'
% 로 묶어서 표현가능
(~이거나)
SELECT * FROM 테이블명 WHERE Age IN(20,24,26)
// Ex
select NAME from ANIMAL_INS
WHERE DATETIME IN ( SELECT MIN (DATETIME)
FROM ANIMAL_INS)
(x부터 y까지)
조건이 1000이라면,
SELECT * FROM My_Table WHERE Age Between 20 AND 24
SELECT MAX(DATETIME) FROM ANIMAL_INS; //최대시간
SELECT MIN(DATETIME) FROM ANIMAL_INS; // 최소시간
SELECT COUNT(*) FROM ANIMAL_INS
DISTINCT NAME; // 중복 제거
SELECT AVG(DATETIME) FROM ANIMAL_INS;
SELECT * FROM EMPLOYEES e
ORDER BY EMPLOYEE_ID ASC; //ASC 생략가능
SELECT * FROM EMPLOYEES e
ORDER BY EMPLOYEE_ID DESC;
주로 UNIQUE(중복을 제거)한 컬럼이나 레코드를 조회하는 경우 사용
IS NULL 절을 사용하면 컬럼이 NULL과 일치하는지 여부의 조건식을 작성가능
응용
SELECT 컬럼명, ... FROM 테이블명 WHERE 컬럼 IS NOT NULL;
JOIN 의 종류
1. Inner Join
기준 테이블과 조인 테이블 모두에 조인 컬럼 데이터가 존재해야 조회됨 (ON절)
즉, 공통된 값을 기준으로 테이블을 합치는 구문
Natural Join
두 테이블에서 동일한 컬럼명을 갖는 컬럼은 모두 조인이 되며,
두 테이블이 동시에 가지고 있는 컬럼의 값이 전부 같은 것만 골라낸다.
Outer Join
공통된 부분만 골라 결합하는 Inner Join 과 다르게 공통되지 않은 행도 유지한다.
이때 두 테이블 모두의 값을 유지하면 Full Outer Join
왼쪽 테이블 값만 유지하면 Left Outer Join
오른쪽 테이블 값만 유지하면 Right Outer Join
조건에 따라서 값을 지정해 준다
CASE 컬럼 WHEN 조건1 THEN 값1
WHEN 조건2 THEN 값2
ELSE 값3 END
컬럼이 조건1 일때는 값1 을 조건2일때는 값2를 반환하고 조건에 맞지 않는 경우에는 값3 을 반환하는 것
조건에 따라서 날짜 및 시간 값을 넣어준다.
Date
DateTime
Timestamp
DATETIME과 TIMESTAMP의 차이는 Timezone이 적용되는지의 여부
Timezone이란?
타임존은 동일한 로컬 시간을 따르는 지역을 의미하며, 해당 국가에 의해 법적으로 지정된다.
시간대는 지구의 자전에 따른, 지역 사이에 생기는 낮과 밤의 차이를 인위적으로 조정하기 위해 고안된 시간의 구분선을 말한다 이는 영국의 그리니치 천문대를 기준으로 지역에 따른 시간의 차이를 계산하여 적용한다.
UTC, KST 등의 표기법을 많이 보셨을 텐데, 이 표기법이 바로 해당 시간이 어느 로컬 기준으로 작성했는지를 명시하기 위함이다.
특정 행을 입력할때 생성 시간을 자동으로 기록해두고 싶을 때 데이터 타입에 Timestamp를 넣고 Defalut에 CURRENT_TIMESTAMP()를 쓰면 된다.
혹은 CURRENT_TIMESTAMP, NOW() 모두 같은 값, 이렇게 하면 행을 생성할 때 생성 시간이 자동으로 같이 입력된다.
사용법
1. CREATE TABLE시 '{칼럼이름} DATETIME DEFAULT CURRENT_TIMESTAMP'
2. ALTER TABLE시 'ALTER COLUMN {칼럼이름} SET DEFAULT CURRENT_TIMESTAMP'
자세한 사항은 여기
References (참고 자료)