와일드카드 문자
와일드카드 문자는 단어를 찾을 때 패턴 매칭을 해주는 기능입니다.
% (퍼센트): 여러 문자를 대체합니다.
ex) 'Mar%'는 Mark, Martin, Margaret 등을 매칭합니다.
ex) 'Mar_'는 Mark, Marv, Marl 등을 매칭합니다.
IS NULL - IS NOT NULL
IS NULL은 특정 열의 값이 NULL인지 확인하는 데 사용됩니다.
-- employees 테이블의 NULL값인 데이터를 모두 가져온다.
SELECT
*
FROM
employees
WHERE
first_name IS NULL;
반대로 IS NOT NULL은 특정 열의 값이 NULL이 아닌 경우를 확인하는 데 사용됩니다.
-- dept_name에서 Null값이 아닌 모든 데이터를 가져온다.
SELECT
dept_name
FROM
departments
WHERE
dept_no IS NOT NULL;
BETWEEN AND
SQL에서 BETWEEN 연산자는 특정 범위 내에 있는 값을 검색하는 데 사용됩니다.
-- salaries 테이블에서 salary 66000 ~ 70000 사이의 데이터 값이 있으면 모두 가져오는 쿼리이다.
SELECT
*
FROM
salaries
WHERE
salary BETWEEN 66000 AND 70000;
즉, BETWEEN은 특정 범위 내의 값을 검색하는 데 유용한 SQL 연산자입니다.
SELECT DISTINCT
DISTINCT는 SELECT 문과 함께 사용되며, 특정 열 또는 열 조합에서 중복된 값을 제거합니다.
-- gender 값의 중복제거 해준다. 그래서 결국 'M'과 'F' 값만 나오게 된다.
SELECT DISTINCT
gender
FROM
employees;
즉, DISTINCT는 SQL에서 중복된 값을 제거하고 고유한 결과를 반환하는 데 사용됩니다.
Aggregate Function
SQL에서 집계 함수(Aggregate Function)는 여러 행의 데이터를 하나의 값으로 요약하는 데 사용됩니다.
-- first_name의 갯수를 세어주는 쿼리이다.
SELECT
COUNT(DISTINCT first_name) -- distinct는 select 옆에 쓰는 것이 아닌 컬럼명 옆에 쓰는 것!!
FROM
employees;
1. COUNT(): 행의 수를 계산합니다.
2. SUM(): 지정된 열의 합계를 계산합니다.
3. AVG(): 지정된 열의 평균을 계산합니다.
4. MIN(): 지정된 열의 최소값을 반환합니다.
5. MAX(): 지정된 열의 최대값을 반환합니다.
즉, 집계 함수는 여러 행의 데이터를 요약하여 하나의 값으로 반환합니다.
GROUP BY
SQL에서 GROUP BY 절은 결과 집합을 특정 열의 값에 따라 그룹화하는 데 사용됩니다.
-- salary가 80000이 넘는 데이터 끼리 그룹화하고 해당 salary값에 데이터가 몇개있는지 출력하는 쿼리이다.
SELECT
salary, COUNT(salary) AS emps_with_same_salary
FROM
salaries
WHERE
salary > 80000
GROUP BY salary
ORDER BY salary;
즉, GROUP BY는 결과 집합을 특정 열의 값에 따라 그룹화하는 데 사용됩니다.
HAVING
HAVING 절은 GROUP BY 절과 함께 사용되어 그룹화된 결과에 조건을 추가하는 데 사용됩니다.
HAVING을 사용하면 집계 함수의 결과에 대해 필터링할 수 있으며, 이는 WHERE 절과는 다릅니다.
-- 같은 emp_no끼리 그룹화하고 그룹화한 데이터들의 salary의 평균을 구하고 120000을 넘는 데이터들만 출력.
SELECT
emp_no, AVG(salary)
FROM
salaries
GROUP BY emp_no
HAVING AVG(salary) > 120000
ORDER BY emp_no;
즉, HAVING 절은 GROUP BY 절과 함께 사용되어 그룹화된 결과에 조건을 추가하는 데 사용됩니다.
여러 조건을 결합하여 더욱 복잡한 필터링이 가능합니다.
HAVING vs WHERE
WHERE 절은 그룹화 이전의 행에 적용되는 반면, HAVING은 그룹화 이후의 결과에 적용됩니다. 아래는 HAVING에 대한 설명과 예시입니다.
LIMIT
LIMIT 절은 쿼리 결과의 행 수를 제한하는 데 사용됩니다.
이를 통해 결과 집합에서 원하는 수만큼의 행만 반환할 수 있으며, 특히 대량의 데이터에서 특정 범위의 결과를 가져올 때 유용합니다.
-- emp_no를 내림차순으로 출력하며, 10개만 출력하는 쿼리이다.
SELECT
*
FROM
salaries
ORDER BY emp_no DESC
LIMIT 10;
즉, LIMIT 절은 쿼리 결과의 행 수를 제한하는 데 사용됩니다.
'Data Analyst > SQL' 카테고리의 다른 글
SQL - DELETE, TRUNCATE, Aggregate functions(집계함수), IFNULL - COALESCE (0) | 2024.08.29 |
---|---|
SQL - The INSERT Statement, The UPDATE Statement, COMMIT and ROLLBACK (0) | 2024.08.28 |
SQL - SELECT, WHERE, AND, OR, IN-NOT IN (0) | 2024.08.26 |
SQL - MySQL Constraints - 2 (0) | 2024.08.22 |
SQL - MySQL Constraints - 1 (0) | 2024.08.22 |