개발일지
이번 주는 SQL에 대해 좀 더 깊게 학습하였습니다. 다양한 상황에 유연하게 대처할 수 있는 쿼리를 작성하면서 여러 상황에서의 경험을 쌓고 있습니다. SQL 문법과 기능을 더 자세히 이해하고 활용함으로써 데이터베이스 관리 및 조회에 대한 역량을 향상시키고 있습니다.
이번 글에서 정리할 내용은 WHERE, 연산자, AS, LIMIT, DISTINCT 입니다. 학습한 내용을 간략하게 정리하고 복습하는 시간을 갖고자 합니다.
WHERE 절
WHERE 절은 SQL 쿼리에서 데이터를 필터링하고 특정 조건을 만족하는 행만을 선택하는 역할을 합니다. 이를 통해 데이터베이스에서 필요한 정보만을 검색할 수 있습니다.
단일 조건 사용
WHERE 절은 단일 조건을 지정하여 특정 열의 값을 기준으로 행을 선택할 수 있습니다. 예를 들어, 월급이 50000 이상인 사원을 선택하려면 다음과 같이 사용할 수 있습니다.
SELECT *
FROM employees
WHERE salary >= 50000;
SQL다중 조건 사용
WHERE 절에서는 AND, OR, NOT 등의 논리 연산자를 사용하여 여러 조건을 결합할 수 있습니다. 예를 들어, 월급이 50000 이상이면서 부서가 ‘IT’인 사원을 선택하려면 다음과 같이 사용할 수 있습니다.
SELECT *
FROM employees
WHERE salary >= 50000 AND department = 'IT';
SQL패턴 매칭
LIKE 연산자를 사용하여 문자열 패턴에 일치하는 행을 선택할 수 있습니다. 예를 들어, 이름이 ‘김’으로 시작하는 사원을 찾으려면 다음과 같이 사용할 수 있습니다.
SELECT *
FROM employees
WHERE name LIKE '김%';
SQL범위 지정
BETWEEN 연산자를 사용하여 값의 범위를 지정하여 행을 선택할 수 있습니다. 예를 들어, 월급이 50000에서 80000 사이인 사원을 선택하려면 다음과 같이 사용할 수 있습니다.
SELECT *
FROM employees
WHERE salary BETWEEN 50000 AND 80000;
SQLNULL 값 확인
IS NULL 또는 IS NOT NULL을 사용하여 특정 열이 NULL인지 또는 NULL이 아닌지를 확인할 수 있습니다.
SELECT *
FROM employees
WHERE email IS NULL;
SQL💡WHERE 절은 다양한 조건을 조합하여 원하는 결과를 얻을 수 있도록 유연성을 제공합니다. 데이터베이스에서 필요한 정보를 정확하게 추출하려면 적절한 조건을 사용하여 WHERE 절을 작성해야 합니다.
연산자
비교연산자
비교 연산자 | 설명 | 예제 |
---|---|---|
= | 두 값이 동일한지를 확인합니다. | salary = 50000 |
< | 왼쪽 값이 오른쪽 값보다 작은지를 확인합니다. | salary < 50000 |
> | 왼쪽 값이 오른쪽 값보다 큰지를 확인합니다. | salary > 50000 |
<= | 왼쪽 값이 오른쪽 값보다 작거나 같은지를 확인합니다. | salary <= 50000 |
>= | 왼쪽 값이 오른쪽 값보다 크거나 같은지를 확인합니다. | salary >= 50000 |
LIKE | 문자열 패턴에 대한 일치 여부를 확인합니다. % : 1개 이상의 모든 문자열을 나타냅니다. | name LIKE ‘김%’ |
LIKE | 문자열 패턴에 대한 일치 여부를 확인합니다. ‘_’ : 정확히 한 문자를 나타냅니다. | name LIKE ‘김_’ |
BETWEEN | 값이 주어진 범위 내에 있는지를 확인합니다.(이상,이하) | salary BETWEEN 50000 AND 80000 |
IS NULL | 특정 열의 값이 NULL인지를 확인합니다. | email IS NULL |
IS NOT NULL | 특정 열의 값이 NULL이 아닌지를 확인합니다. | email IS NOT NULL |
💡이 표는 주로 WHERE 절에서 사용되는 일반적인 비교 연산자에 대한 설명과 각각의 예제를 보여줍니다. 이러한 연산자를 조합하여 SQL 쿼리를 작성하면 데이터베이스에서 원하는 조건을 충족하는 데이터를 검색할 수 있습니다.
논리연산자
논리 연산자 | 설명 | 예제 |
---|---|---|
AND | 모든 조건이 참일 때 전체 조건이 참이 됩니다. | salary > 50000 AND department = ‘IT’ |
OR | 여러 조건 중 하나만 참이면 전체 조건이 참이 됩니다. | department = ‘IT’ OR department = ‘인사’ |
NOT | 주어진 조건을 부정하여 조건이 거짓이면 참이 됩니다. | NOT department = ‘재무’ |
IN | 주어진 값 목록 중 하나와 일치하는 경우 참이 됩니다. | department IN (‘IT’, ‘인사’) |
💡이 표는 주로 사용되는 논리 연산자에 대한 설명과 각각의 예제를 나타냅니다. 논리 연산자를 조합하여 SQL 쿼리를 작성하면 여러 조건을 고려한 복잡한 검색을 수행할 수 있습니다.
집합연산자 (SET OPERATOR)
SQL 집합 연산자는 두 개 이상의 SELECT 문의 결과를 결합하거나 조작하는 데 사용됩니다. 주요 집합 연산자에는 UNION, INTERSECT, EXCEPT 등이 있습니다.
UNION
UNION 연산자는 두 개 이상의 SELECT 문의 결과를 합치고 중복된 행을 제거합니다. 각 SELECT 문의 열의 수와 데이터 유형이 일치해야 합니다.
SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;
SQLUNION ALL
UNION ALL 연산자는 UNION과 유사하지만 중복된 행을 제거하지 않고 모든 결과를 포함합니다.
SELECT column1, column2 FROM table1
UNION ALL
SELECT column1, column2 FROM table2;
SQLINTERSECT
INTERSECT 연산자는 두 개 이상의 SELECT 문의 결과에서 교집합을 찾아 반환합니다. 열의 수와 데이터 유형이 일치해야 합니다.
SELECT column1, column2 FROM table1
INTERSECT
SELECT column1, column2 FROM table2;
SQLEXCEPT 또는 MINUS
EXCEPT 또는 MINUS 연산자는 첫 번째 SELECT 문의 결과에서 두 번째 SELECT 문의 결과를 제외한 결과를 반환합니다.
SELECT column1, column2 FROM table1
EXCEPT
SELECT column1, column2 FROM table2;
SQL💡각 집합 연산자는 특정한 사용 사례에 따라 유용합니다. UNION ALL은 중복 행을 제거하지 않고 모든 결과를 합치기 때문에, 경우에 따라서는 UNION보다 더 적절한 선택일 수 있습니다.
AS (별칭)
별칭(Alias)은 SQL 쿼리에서 열 이름이나 테이블 이름에 대한 대체 명칭을 부여하는 기능입니다. 주로 쿼리 결과의 가독성을 높이거나 코드를 간결하게 만들기 위해 활용됩니다.
열 별칭
열 별칭은 특정 열에 대해 사용되며, AS 키워드를 통해 정의됩니다. 주로 다음과 같은 상황에서 활용됩니다.
SELECT first_name AS "이름", last_name AS "성"
FROM employees;
SQL테이블 별칭
테이블 별칭은 특정 테이블에 대한 간소화된 이름을 제공합니다. 주로 긴 테이블 이름을 간결하게 표현하거나 여러 테이블을 조인할 때 사용됩니다.
SELECT e.first_name, e.last_name, d.department_name
FROM employees AS e
JOIN departments AS d ON e.department_id = d.department_id;
SQL별칭의 활용
- 의미 부여: 결과를 더 의미 있게 표현하기 위해 사용됩니다. 가독성을 향상시켜 쿼리 결과를 이해하기 쉽게 만듭니다.
- 계산된 열: 복잡한 계산 결과에 대해 간결한 이름을 부여하여 사용합니다.
- 테이블 조인: 여러 테이블을 조인할 때 테이블에 대한 간단하면서 명료한 별칭을 사용하여 쿼리를 간결하게 작성할 수 있습니다.
SELECT e.first_name, e.salary * 1.1 AS "인상된 급여"
FROM employees AS e;
SQL💡별칭을 사용하면 SQL 쿼리의 가독성을 향상시키고 코드를 더 간결하게 만들 수 있습니다.
LIMIT 과 DISTINCT
LIMIT, DISTINCT는 각각 데이터 검색, 중복 제거와 관련된 기능을 수행하는 명령어 및 키워드입니다.
LIMIT (제한)
- LIMIT는 SELECT 문에서 검색된 결과의 행 수를 제한하는데 사용됩니다.
- 일반적으로 특정 범위의 결과만 필요할 때 사용됩니다.
SELECT 열1, 열2, ...
FROM 테이블명
WHERE 조건
LIMIT 개수;
SQL✔️예시: 처음 5개의 결과만 선택하는 경우
SELECT * FROM 테이블명 LIMIT 5;
SELECT * FROM 테이블명 LIMIT 5,2; --5부터 2개까지만 출력
SQLDISTINCT (중복 제거)
- DISTINCT는 SELECT 문에서 중복된 값을 제거하여 고유한 값을 반환하는 데 사용됩니다.
- 하나 이상의 열에 대해 중복을 제거할 수 있습니다.
SELECT DISTINCT 열1, 열2, ...
FROM 테이블명
WHERE 조건;
SQL✔️예시: 특정 열에서 중복을 제거한 고유한 값들을 선택하는 경우
SELECT DISTINCT 열명 FROM 테이블명;
SQL💡이러한 명령어들은 데이터베이스에서 유용하게 사용됩니다. LIMIT를 사용하여 원하는 개수만큼의 결과를 얻을 수 있고, DISTINCT를 사용하여 중복된 값을 제거한 고유한 값들을 얻을 수 있습니다.
마무리
이번 주는 SQL에 대한 깊은 학습으로 실전적인 능력을 키워나가는 데에 큰 도움이 되었습니다. WHERE, 연산자, AS, LIMIT, DISTINCT 등의 개념을 정리하고 복습함으로써 데이터베이스 관리에 대한 기초를 더욱 견고하게 다졌습니다. 앞으로도 다양한 프로젝트와 학습을 통해 SQL을 더욱 전문적으로 활용해 나가겠습니다.🚀