SELECT
SELECT 찾을 컬럼들
FROM 테이블명
WHERE 조건
[ ORDER BY 정렬기준 컬럼명 ( 내림차순 DESC 오름차순 ASC ) ]
마지막엔 꼭 세미콜론으로 마무리 하기
- 개수 제한
select *
from (
SELECT name
from animal_ins
order by datetime asc
)
where rownum <= 1
SUM, MAX, MIN
- 최댓값
SELECT MAX(컬럼)
FROM 테이블명
- 최솟값
SELECT MIN(컬럼)
FROM 테이블명
- 개수
SELECT count(컬럼)
FROM 테이블명
중복제거 컬럼 앞에 DISTINCT
GROUP BY
- group by 에 있는 컬럼 개수
SELECT 컬럼, count(*)
FROM 테이블명
group by 컬럼
- group by로 사용하는 컬럼에 조건 걸기
SELECT 컬럼, count(*)
FROM 테이블명
GROUP BY 컬럼 HAVAING 조건
- 없는 데이터 만들기
SELECT hour, count(o.datetime) as COUNT
from
(
select level-1 as hour
from dual
connect by level <= 24
)a -- 계층형 쿼리를 이용해 새로운 테이블을 만들어서 사용가능하다.
left join animal_outs o -- 새로운 테이블과 기존 테이블을 조인 시켜서 사용한다.
on a.hour = to_char(o.datetime, 'HH24')
group by hour
order by hour
JOIN
- inner join 교집합
SELECT *
FROM SAWON A INNER JOIN LICENCE B
ON A.SABUN = B.SABUN;
SELECT *
FROM SAWON A, LICENSE B
WHERE A.SABUN = B.SABUN;
- left outer join 왼쪽 메인
SELECT *
FROM TABLE_A T1 LEFT OUTER JOIN TABLE_B T2
ON T1.COULMN = T2.COLUMN;
SELECT *
FROM SAWON A, LICENSE B
WHERE A.SABUN = B.SABUN(+);
- right outer join 오른쪽 메인
SELECT *
FROM TABLE_A T1 RIGHT OUTER JOIN TABLE_B T2
ON T1.COULMN = T2.COLUMN;
SELECT *
FROM SAWON A, LICENSE B
WHERE A.SABUN(+) = B.SABUN;
- Cross join
SELECT *
FROM SAWON A, SAWON B;
- Self join
SELECT *
FROM SAWON A, SAWON B
WHERE A.SABUN = B.SABUN;
IS NULL
- null 값을 조건으로 찾을 때
where 컬럼 is null
where 컬럼 is not null
- null 값을 치환 할때
SELECT NVL(컬럼, 숫자 or 문자 or date)
String, Date
- 포함된 데이터 검색
where 컬럼 in (데이터 1, 데이터 2....)
- 포함된 단어 검색
where 컬럼 like '%단어%' - 단어를 포함하는 데이터
where 컬럼 like '%단어' - 단어로 끝나는 데이터
where 컬럼 like '단어%' - 단어로 시작하는 데이터
where 컬럼 like '%단어%단어%' - 두 단어를 포함하는 데이터
where lower(컬럼) like '%단어%' - 단어를 포함하는 데이터 ( 대소문자 구분없이 - upper를 써도 상관없다. )
where 컬럼 not like '%단어%' - 단어를 포함하지 않는 데이터
where 컬럼 like '%단어' or 컬럼 like '%단어' - 여러 조건의 단어를 포함하는 데이터
where 컬럼 like '%_____' - 언더바 길이만큼의 길이의 데이터
where 컬럼 like '%____단어' - 언더바 길이만큼의 길이의 데이터 중에 단어로 끝나는 데이터
where 컬럼 like '%____단어%' - 언더바 길이만큼의 길이의 데이터 중에 단어로 끝나는 데이터가 포함된 데이터
WHERE ename LIKE '%\_%' ESCAPE '\' - 언더바 검색 시 ( escape 문자는 데이터에 존재하지않는 임의 문자 )
- 컬럼에서 조건 나누기
select case when 조건 then 조건이 맞을 때 출력 else 조건이 다를 때 출력 end as 컬럼명출력
- datetime 변경
HOUR(datetime) - 변경할 날짜형식(컬럼) // mySQL
to_char(컬럼, 'HH24') - to_char(컬럼, 날짜형식) // oracle 'YYYY-MM-DD-HH-MI-SS-FF'