새발블로그

[SQL] SQL 기본 명령어 본문

Server/DB

[SQL] SQL 기본 명령어

EUG 2025. 6. 25. 16:16

1. SQL 명령어 종류

분류 명령어 설명
DDL CREATE, ALTER, DROP 데이터베이스 객체(테이블 등) 정의/수정/삭제
DML INSERT, UPDATE, DELETE 데이터 조작
DQL SELECT 데이터 조회
DCL GRANT, REVOKE 권한 제어
TCL COMMIT, ROLLBACK, SAVEPOINT 트랜잭션 제어

2. SELECT 구문의 구조 및 순서

SELECT 컬럼명
FROM 테이블명
[WHERE 조건]
[GROUP BY 그룹기준]
[HAVING 그룹조건]
[ORDER BY 정렬기준]

  • 처리 순서: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY

3. 자료형

  • 숫자형: INT, FLOAT, DECIMAL(전체,소수)
  • 문자형: CHAR(n), VARCHAR(n)
  • 날짜형: DATE, DATETIME, TIMESTAMP

4. 연산자 정리

종류 예시
산술연산자 +, -, *, /, %
비교연산자 =, !=, >, <, >=, <=
논리연산자 AND, OR, NOT
관계연산자 BETWEEN, IN, LIKE, IS NULL

5. 조건식 예제

WHERE salary BETWEEN 150000 AND 200000
WHERE title LIKE 'S____'
WHERE salary NOT IN (SELECT salary FROM ...)

6. 정렬

ORDER BY first_name DESC, last_name ASC
ORDER BY 1 DESC -- 1번째 컬럼 기준 정렬

7. 별칭

SELECT emp_no AS "사번", CONCAT(first_name, '-', last_name) AS 성명
FROM employees;

8. 함수

단일행 함수

종류 함수
형변환 CAST(), CONVERT()
제어 IF(), IFNULL(), NULLIF(), CASE WHEN THEN END
문자 CONCAT(), LENGTH(), SUBSTRING(), UPPER()
숫자 ROUND(), FLOOR(), CEIL()
날짜 NOW(), CURDATE(), DATEDIFF(), LAST_DAY()

집계함수 (다중행)

  • COUNT(), SUM(), AVG(), MIN(), MAX()

9. GROUP BY / HAVING

SELECT YEAR(hire_date), COUNT(*)
FROM employees
GROUP BY YEAR(hire_date)
HAVING COUNT(*) < 5000
ORDER BY 2 DESC;

10. WITH ROLLUP (집계 추가)

SELECT YEAR(hire_date), IFNULL(gender, '사원수'), COUNT(*)
FROM employees
GROUP BY YEAR(hire_date), gender
WITH ROLLUP;

11. 집합 연산

연산자 설명
UNION 중복 제거 합집합
UNION ALL 중복 허용 합집합

12. JOIN vs 집합

  • JOIN: 열을 결합 (수평 확장)
  • UNION: 행을 결합 (수직 확장)

13. 서브쿼리

종류 예시
스칼라 SELECT (SELECT MAX(salary) FROM salaries)
인라인뷰 FROM (SELECT ...) sub
WHERE절 WHERE emp_no IN (SELECT ...)
  • = ANY ≒ IN

14. NULL 주의

WHERE col IS NULL
WHERE col IS NOT NULL
-- NOT IN 사용 시 NULL 포함되면 결과 없음 → IFNULL() 사용

'Server > DB' 카테고리의 다른 글

[DB] MongoDB  (0) 2025.06.25
[DB] 인덱스 , 쿼리 최적화, 트랜잭션  (0) 2025.06.25
[SQL] 테이블, 뷰  (1) 2025.06.25
[SQL] SQL 심화 명령어  (0) 2025.06.25
DBMS 개념  (0) 2025.06.25