띵유로그

SQL 언어 (헷갈림사전) 본문

데이터베이스

SQL 언어 (헷갈림사전)

띵유 2019. 12. 6. 22:37
반응형

문법을 자꾸 잊어버려 정리한다,,!



정렬)

SELECT * FROM 테이블 ORDER BY 컬럼1;
SELECT * FROM 테이블 ORDER BY 컬럼1 DESC;

=> ORDERB BY (띄어쓰기 해주기!)
=> 여러 칼럼 기준일 때, 괄호 없이 그냥 ' , ' 로 구분  
 ex)
SELECT * from 테이블 ORDER BY 칼럼1, 칼럼2 DESC;
-> 칼럼1에대해 오름차순, 칼럼2에대해 내림차순으로 정렬

TOP) 
-sql server
SELECT TOP n
FROM 테이블

-MySQL
SELECT * 
FROM 테이블
LIMIT n

-오라클
SELECT *
FROM 테이블
WHERE ROWNUM<=n



검색)

where문 ) 
- 문자 검색 시 " " 
- 비교 연산자 != 가능


개수세기_COUNT ) 

- 중복제거 후 개수 셀때 COUNT( DISTINCT NAME)

ex)
SELECT COUNT(*) FROM (SELECT DISTINCT NAME from ANIMAL_INS where NAME IS NOT NULL) as a;
위 sql문과 아래 는 결과가 같음
SELECT COUNT(DISTINCT NAME) from ANIMAL_INS where NAME IS NOT NULL

 

- group by 후 개수샐 때

=> having 문
ex) SELECT NAME, COUNT(*) as count from ANIMAL_INS where name is not null group by NAME having count(*)>=2 



EXTRACT)
연도 extract
=> EXTRACT (YEAR from '1993-03-21')


ex ) SELECT EXTRACT(HOUR from DATETIME) as HOUR , count(*) 

from ANIMAL_OUTS 

where EXTRACT(HOUR from DATETIME) between 9 and 19

group by (EXTRACT(HOUR from DATETIME))
-> 시간대별로 묶고 9시부터 19시 사이에서의 시간과 사건수 count 해서 출력 


변수 설정 )
SET @variable=8;

@variable:=@variable+1;

ex) 프로그래머스 입양시각 구하기
SET @hour:=-1;
SELECT @hour:=@hour+1 as HOUR,

 (select count(*) from ANIMAL_OUTS where EXTRACT(HOUR from DATETIME)=@hour) as COUNT
FROM ANIMAL_OUTS
where @hour<23;


Null 처리)

ifnull(col1, "null입니다.");

coalesce(col1, col2, "null입니다.");

 

ex)
SELECT ANIMAL_TYPE, ifnull(NAME,"No name"), SEX_UPON_INTAKE from ANIMAL_INS;

반응형
Comments