SQL문 기본 구조
- SQL 문법 순서: SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY
- SQL 실행 순서: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
1. SELECT 절 ()
- 데이터를 조회할 때 사용되는 절 중 하나로, *를 사용하여 모든 열을 선택 가능
- 특정 열(column)이나 표현식(expression)을 사용하여 데이터를 선택 후 결과를 반환
- employees 테이블에서 first_name과 last_name 열을 선택하여 조회
SELECT first_name, last_name
FROM employees;
2. FROM 절 ()
- 데이터를 조회할 테이블을 지정
- 테이블은 데이터가 저장된 공간이며, 데이터베이스에는 여러 테이블이 존재 가능
- products 테이블에서 product_name과 price 열을 선택
SELECT product_name, price
FROM products;
3. WHERE 절 ()
- 특정 조건을 지정하여 그 조건을 만족하는 행(row)만을 조회
- WHERE 절은 선택 사항이며, 생략 가능
- products 테이블에서 price가 100보다 큰 제품의 product_name과 price를 선택
SELECT product_name, price
FROM products
WHERE price > 100;
4. GROUP BY 절 ()
- 그룹화하려는 열의 이름을 지정하며, 집계 함수와 함께 사용
- GROUP BY절은 선택 사항이며, 생략 가능
- GROUP BY로 그룹화한 열은 SELECT 절에 명시적으로 포함시키는 것이 좋습니다.
- employees 테이블에서 부서별 평균 연봉을 추출
SELECT department, AVG(salary) as average_salary
FROM employees
GROUP BY department;
5. HAVING 절 ()
- 그룹화된 결과에 대한 조건을 지정하며, 일반적으로 집계 함수와 함께 사용
- HAVING절은 선택 사항이며, 생략 가능
- 부서별 평균 연봉이 50,000보다 큰 경우에 대한 결과를 선택
SELECT department, AVG(salary) as average_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000;
6. ORDER BY 절 ()
- 정렬 기준이 되는 열의 이름을 지정하고, 필요에 따라 오름차순(ASC) 또는 내림차순(DESC)을 명시
- ORDER BY절은 선택 사항이며, 생략 가능
- products 테이블에서 price를 기준으로 내림차순으로 정렬된 product_name과 price를 선택
SELECT product_name, price
FROM products
ORDER BY price DESC;
7. LIMIT 절 ()
- 반환할 행의 최대 수를 지정
- LIMIT절은 선택 사항이며, 생략 가능
- products 테이블에서 상위 10개 제품의 product_name과 price를 선택
SELECT product_name, price
FROM products
LIMIT 10;
본 게시글은 ChatGPT의 도움을 받아 작성하였습니다.
'Language > MySQL' 카테고리의 다른 글
CONCAT 함수 (0) | 2024.01.05 |
---|---|
재귀 함수 (0) | 2024.01.04 |
DataBase (데이터베이스) (2) | 2024.01.03 |
REGEXP (정규 표현식) (2) | 2024.01.02 |
SQL 집합 연산자 (0) | 2023.12.29 |