※무단 사용 및 펌을 절대 금지합니다 이 페이지에서만 봐주세요※
사용되는 곳 | 명령어 | 정의 | 사용 예시 | 관련 명령어 및 참고 사항 |
테이블에서 데이터 검색 | SELECT | 질의, 쿼리 | SELECT 열명 FROM 테이블명 | '*' : 열명에 기입 시 모든 열 반환 |
WHERE | 조건에 만족하는 행만 반환 | SELECT col1, col2 FROM 테이블명 WHERE 조건식 | 비교연산자('=', '<>', '<', '>' ...) IS NULL / IS NOT NULL AND / OR / NOT IN |
|
LIKE | 특정 패턴과 일치하는 문자열 찾기 | SELECT 열명 FROM sampletable WHERE text LIKE '%SQL%' | '%' : 임의의 문자열, 빈 문자열에도 매치 '_' : 임의의 문자 하나!만 의미 |
|
정렬 | ORDER BY | 결과 정렬 | SELECT 열명 FROM 테이블명 (WHERE 조건식) ORDER BY 열명 | DESC : 내림차순 정렬 ASC : 오름차순 정렬 (default) |
복수 열 지정 | SELECT 열명 FROM 테이블명 (WHERE 조건식) ORDER BY 열명1 [ASC | DESC], 열명2 [ASC | DESC] | (참고) NULL: MY SQL에서는 NULL값을 가장 작은 값 취급 | ||
LIMIT | [MYSQL에서] 지정된 개수의 행만 반환 |
SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명 LIMIT 행수 | OFFSET : 'OFFSET 위치'를 추가하면 표기된 위치부터 시작 |
|
TOP | [SQL Server에서] 지정된 개수의 행만 반환 |
SELECT TOP 숫자 열명 FROM 테이블명 | ||
ROWNUM | [Oracle에서] 지정된 개수의 행만 반환 |
SELECT 열명 FROM 테이블명 WHERE ROWNUM <= 숫자 | **주의할 점** 정렬 전에 ROWNUM이 먼저 실행되어 위의 두개와 결과가 다름!! |
|
연산 | 사칙연산 | 열끼리의 사칙연산 수행 | SELECT *, 가격*수량 FROM 테이블명 | (참고) NULL은 연산해도 NULL |
AS | 별칭(alias) 짓기 | SELECT *, 가격*수량 AS 총계 FROM 테이블명 | (참고) AS는 생략가능 (참고) 한글로 별명 지정 시 더블쿼트 (MYSQL에서는 백쿼트) 두르기 |
|
ROUND | 반올림 | SELECT amount, ROUND (amount, 1) FROM 테이블명; 소수점 둘째 자리에서 반올림 | ||
+ / || / CONCAT | 문자열 합치기 | (순서대로) SQL server/ Oracle / MYSQL에서 적용되는 명령어 | ||
DATEDIFF | [MYSQL에서] 두 날짜 간의 차이 계산 |
DATEDIFF('2014-02-28', '2014-01-01') | ||
TO_DATE | 날짜를 특정 형식으로 바꿔줌 | TO_DATE('2014/01/25', 'YYYY/MM/DD') | ||
집계 | COUNT | 데이터의 개수 | SELECT COUNT(열명) FROM 테이블명 | (참고) NULL은 집계되지 않는다 ALL 열명 : 중복을 포함해 모두 카운트 (default) DISTINCT 열명 : 중복을 제외함 |
SUM | 합계 | SELECT SUM(열명) FROM 테이블명 | ||
AVG | 평균 | SELECT AVG(열명) FROM 테이블명 | ||
MIN | 최소값 | SELECT MIN(열명) FROM 테이블명 | ||
MAX | 최대값 | SELECT MAX(열명) FROM 테이블명 | ||
GROUP BY | 동일한 값을 가진 데이터를 그룹으로 묶어 집계나 조회 | SELECT * 테이블명 GROUP BY 열1, 열2,... | ||
HAVING | 그룹화할 때의 조건절 | SELECT name, COUNT(name) FROM 테이블명 |
(참고) 데이터 처리 순서 WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY |
|
데이터 변환 | COALESCE | NULL 값 변환 | SELECT 열명, COALESCE(열명, 0) FROM 테이블명 | |
검색 CASE | 조건에 맞춰 변환 | SELECT 열명, CASE WHEN 열명 IS NULL THEN 0 ELSE 열명 END "열명(null=0)" FROM 테이블명 |
(참고) WHEN 뒤에 식이 들어간다. | |
단순 CASE | CASE 이용한 인코드, 디코드 | SELECT 열명 AS `코드` CASE 열명 WHEN 0 THEN "여자" WHEN 1 THEN "남자" ELSE "미지정" END AS "성별" FROM 테이블명 |
(참고) WHEN 뒤에 단순한 값이 들어간다. | |
데이터의 추가, 삭제, 갱신 |
INSERT | 행 추가 | INSERT INTO 테이블명 (열1, 열2, 열3,...) VALUES (값1, 값2, 값3,...) | (참고) 암묵적 디폴트 지정 : 열을 지정하지 않으면 디폴트 값으로 행 추가 |
DEFAULT | INSERT 시에 디폴트 값으로 설정 | INSERT INTO 테이블명 (열1, 열2) VALUES (값1, DEFAULT) |
||
DELETE | 행 삭제 | DELETE FROM 테이블명 WHERE 조건식 | (참고) 조건식이 없으면 모든 행 삭제하므로 주의!! | |
UPDATE | 셀 갱신 | UPDATE 테이블명 SET 열명=값 WHERE 조건식 | ||
복수열 갱신 | UPDATE 테이블명 SET 열명1=값1, 열명2=값2,... WHERE 조건식 | |||
NULL로 갱신 | UPDATE 테이블명 SET 열명=NULL | |||
서브쿼리 | SELECT() | SELECT 구에서의 서브쿼리 | SELECT (SELECT COUNT(*) FROM 테이블명) AS sq1, (SELECT COUNT(*) FROM 테이블명) AS sq2 |
(참고) Oracle에서는 왼쪽의 명령어 뒤에 ';FROM DUAL'을 붙인다. |
FROM() | FROM 구에서의 서브쿼리 | SELECT * FROM ( SELECT * FROM 테이블명 ORDER BY 열명 DESC ) sq WHERE ROWNUM <= 2 |
||
SET ~ | SET 구에서의 서브쿼리 | UPDATE 테이블명 SET a=(SELECT MAX(a) FROM 테이블명) | ||
VALUES ~ | INSERT 에서 사용 | INSERT INTO 테이블명 VALUES( (SELECT COUNT(*) FROM 테이블명1), (SELECT COUNT(*) FROM 테이블명2) ) |
||
상관 서브쿼리 |
EXISTS | 괄호 안의 컬럼 존재 유무 판단 | UPDATE 테이블1 SET a='있음' WHERE EXISTS (SELECT * FROM 테이블2 WHERE 조건식) |
(참고) EXISTS는 괄호 안에 서브쿼리만! 사용 가능하다. |
IN | 괄호 안의 조건 존재 유무 판단 | SELECT * FROM 테이블1 WHERE no IN(SELECT no2 FROM 테이블2) |
(참고) IN은 괄호 안에 서브 쿼리와 특정 값 모두 사용 가능하다. |
'IT Anthology > dictionary' 카테고리의 다른 글
자연어처리(NLP) 직무 면접 대비용 개념 한 줄 정리 (6) | 2020.03.01 |
---|---|
데이터 관련 직무 면접 대비용 개념 한 줄 정리 (0) | 2020.03.01 |