SQL 연산자 총정리 – 산술, 비교, 논리, 문자열 연산자 한눈에 보기

Posted by heoncode
2025. 4. 14. 22:19 SQL 기초 정리
반응형
SMALL

SQL 연산자 총정리 – 산술, 비교, 논리, 문자열 연산자 한눈에 보기

SQL에서 데이터를 효과적으로 다루기 위해서는 다양한 연산자의 사용법을 이해하는 것이 중요합니다. 이 글에서는 SQL에서 자주 사용되는 연산자들을 정리하고, 각 연산자의 사용 예제를 통해 실무에서 어떻게 활용되는지 알아보겠습니다.

1. 산술 연산자 (Arithmetic Operators)

산술 연산자는 숫자 데이터를 계산할 때 사용됩니다.

연산자 설명 예시
+ 덧셈 SELECT price + tax FROM products;
- 뺄셈 SELECT price - discount FROM products;
* 곱셈 SELECT quantity * price FROM sales;
/ 나눗셈 SELECT total / count FROM statistics;
% 나머지 SELECT amount % 2 FROM payments;

💡 주의: NULL 값이 포함된 산술 연산의 결과는 NULL이 됩니다. 이를 방지하려면 NVL 또는 COALESCE 함수를 사용하세요.

```sql
SELECT price + NVL(discount, 0) AS final_price
FROM products;
```

2. 비교 연산자 (Comparison Operators)

비교 연산자는 두 값을 비교하여 조건을 설정할 때 사용됩니다.

연산자 설명 예시
= 같음 WHERE age = 30
<> 또는 != 같지 않음 WHERE status <> 'active'
> 크다 WHERE score > 80
< 작다 WHERE score < 50
>= 크거나 같다 WHERE salary >= 5000
<= 작거나 같다 WHERE salary <= 3000
BETWEEN ... AND ... 범위 내 포함 WHERE age BETWEEN 20 AND 30
IN (...) 목록 내 포함 WHERE department IN ('HR', 'Sales')
LIKE 패턴 매칭 WHERE name LIKE 'J%'
IS NULL NULL 값 여부 확인 WHERE manager_id IS NULL
IS NOT NULL NULL이 아닌 값 확인 WHERE manager_id IS NOT NULL

📌 BETWEEN은 시작과 끝 값을 포함합니다. LIKE는 와일드카드 %_를 사용하여 패턴을 지정할 수 있습니다.

3. 논리 연산자 (Logical Operators)

논리 연산자는 여러 조건을 조합할 때 사용됩니다.

연산자 설명 예시
AND 모든 조건이 참일 때 WHERE age > 25 AND department = 'HR'
OR 하나 이상의 조건이 참일 때 WHERE role = 'Manager' OR role = 'Director'
NOT 조건의 부정 WHERE NOT status = 'inactive'

🔍 ANDOR를 함께 사용할 때는 괄호 ()를 사용하여 조건의 우선순위를 명확히 하세요.

```sql
SELECT *
FROM employees
WHERE (department = 'Sales' AND age > 30) OR (department = 'HR' AND age < 25);
```

4. 문자열 연산자 (String Operators)

문자열 연산자는 텍스트 데이터를 처리할 때 사용됩니다.

연산자 설명 예시
또는 CONCAT()
LIKE 패턴 매칭 WHERE email LIKE '%@example.com'

🧩 LIKE 연산자에서 %는 0개 이상의 임의의 문자, _는 정확히 하나의 임의의 문자를 의미합니다.

5. 연산자 우선순위

SQL에서는 연산자의 우선순위에 따라 연산이 수행됩니다. 기본적인 우선순위는 다음과 같습니다:

  1. 괄호 ()
  2. 산술 연산자 *, /, %
  3. 산술 연산자 +, -
  4. 비교 연산자
  5. 논리 연산자 NOT
  6. 논리 연산자 AND
  7. 논리 연산자 OR

⚠️ 복잡한 조건을 사용할 때는 괄호를 적절히 사용하여 의도한 순서대로 연산이 수행되도록 하세요.

마무리하며

SQL에서 다양한 연산자를 적절히 활용하면 데이터를 더욱 효과적으로 조회하고 조작할 수 있습니다. 각 연산자의 특성과 사용법을 숙지하여 실무에서 유용하게 활용해보세요.


#sql #연산자 #산술연산자 #비교연산자 #논리연산자 #문자열연산자 #sql기초 #sql정리 #sql공부

반응형
LIST

뷰(View)와 테이블의 차이 – 언제 뷰를 쓰고 언제 테이블을 써야 할까?

Posted by heoncode
2025. 4. 14. 13:13 SQL 기초 정리
반응형
SMALL

SQL을 처음 배우거나 실무에서 활용할 때 자주 혼동되는 개념 중 하나가 뷰(View)와 테이블(Table)의 차이입니다. 두 객체 모두 SELECT 쿼리를 통해 데이터를 가져올 수 있지만, 동작 방식과 사용 목적에는 분명한 차이가 있습니다. 이 글에서는 뷰와 테이블의 기본 개념과 차이점, 그리고 언제 각각을 사용하면 좋은지를 설명합니다.

테이블(Table)의 개념

테이블은 데이터베이스에 실제 데이터를 저장하는 기본적인 객체입니다. 모든 데이터는 테이블에 물리적으로 저장되며, SELECT, INSERT, UPDATE, DELETE와 같은 SQL 명령을 통해 데이터를 조작할 수 있습니다.

예시:

CREATE TABLE employee (
    emp_id     NUMBER PRIMARY KEY,
    emp_name   VARCHAR2(100),
    dept_id    NUMBER,
    salary     NUMBER
);

이 테이블은 직원 정보를 저장하는 실제 데이터 저장소입니다.

뷰(View)의 개념

뷰는 하나 이상의 테이블을 기반으로 한 SELECT 쿼리 결과를 저장한 논리적 객체입니다. 뷰는 물리적으로 데이터를 저장하지 않고, SELECT 쿼리가 실행될 때마다 참조된 테이블에서 데이터를 가져옵니다. 즉, 뷰는 일종의 가상 테이블입니다.

예시:

CREATE VIEW high_salary_emp AS
SELECT emp_id, emp_name, salary
FROM employee
WHERE salary > 5000;

이 뷰는 salary가 5000 이상인 직원만 필터링해 보여주는 가상 테이블입니다.

뷰와 테이블의 주요 차이점

구분 테이블
데이터 저장 실제 데이터를 저장함 데이터는 저장하지 않음
성능 직접 접근하므로 빠름 쿼리 실행 시 원본 테이블 접근
갱신 INSERT/UPDATE/DELETE 가능 제한적으로 가능
목적 데이터 저장 및 관리 특정 쿼리 결과 재사용 목적

뷰는 특정 조건을 반복해서 조회할 때 유용하며, 복잡한 조인을 단순화하거나 민감 정보를 숨기는 데도 사용됩니다.

뷰는 언제 사용하면 좋을까?

  • 자주 사용하는 SELECT 쿼리를 재사용할 필요가 있을 때
  • 복잡한 조인이나 필터 조건을 단순화하고 싶을 때
  • 특정 테이블의 일부만 사용자에게 보여주고 싶을 때
  • 보안이나 권한 관리를 위해 민감 정보를 숨길 필요가 있을 때

예를 들어 외부 사용자에게 salary 컬럼을 숨기고 싶다면 다음과 같이 뷰를 생성할 수 있습니다.

CREATE VIEW public_employee AS
SELECT emp_id, emp_name, dept_id
FROM employee;

테이블이 필요한 상황은?

  • 데이터를 물리적으로 저장해야 할 때
  • DML(INSERT, UPDATE, DELETE)을 빈번히 수행해야 할 때
  • 기본적인 데이터베이스 구조를 설계할 때

실무 팁

  • 뷰를 너무 많이 계층적으로 중첩해서 만들면 오히려 성능 저하의 원인이 될 수 있습니다.
  • 단순한 필터링 뷰라면 성능에 큰 영향을 주지 않지만, 여러 테이블의 조인을 포함한 복잡한 뷰는 실행 계획을 꼭 확인하는 것이 좋습니다.
  • 자주 갱신되는 데이터를 대상으로 하는 경우 뷰보다는 임시 테이블 또는 머티리얼라이즈드 뷰(Materialized View)를 고려하는 것이 좋습니다.

뷰는 테이블과는 다르게 데이터 저장 목적이 아닌 가공과 재사용 목적으로 사용된다는 점이 가장 큰 차이입니다. SQL을 효율적으로 사용하기 위해서는 이 차이를 정확히 이해하고, 상황에 맞는 선택을 하는 것이 중요합니다.

#SQL #테이블 #뷰 #SQL기초 #가상테이블 #데이터베이스기초

반응형
LIST

LIKE 연산자의 와일드카드(%, _) 정확히 알고 쓰기

Posted by heoncode
2025. 4. 12. 16:01 SQL 기초 정리
반응형
SMALL

LIKE 연산자는 SQL에서 문자열 패턴을 검색할 때 자주 사용되는 조건입니다. 특히 %_ 와 같은 와일드카드(wildcard) 문자를 적절히 활용하면 유연한 문자열 검색이 가능합니다. 그러나 이러한 와일드카드의 의미를 명확히 이해하지 못하면, 원하지 않는 결과를 얻을 수 있습니다.

1. 와일드카드 종류와 의미

LIKE 조건에서 사용 가능한 와일드카드는 다음과 같습니다:

  • %: 길이에 상관없이 모든 문자열을 의미합니다. 0자 이상.
  • _: 임의의 한 글자를 의미합니다.

예시:

SELECT * FROM employee
WHERE name LIKE '김%';

→ 이름이 '김'으로 시작하는 모든 직원 검색

SELECT * FROM employee
WHERE name LIKE '_현우';

→ 앞에 어떤 한 글자가 있고, 뒤에 '현우'가 오는 이름 검색 (예: '이현우', '박현우')

2. 실제 사용 예시

다음은 %_를 함께 사용하는 예시입니다:

SELECT * FROM product
WHERE code LIKE 'A__%';

→ 'A'로 시작하고, 그 뒤에 정확히 두 글자가 있으며, 그 이후에 문자열이 이어지는 상품 코드 검색

3. ESCAPE 문자를 활용한 예외 처리

만약 검색하려는 문자열에 %_가 포함되어 있다면, 이를 문자 그대로 검색하기 위해 ESCAPE 절을 사용할 수 있습니다.

SELECT * FROM memo
WHERE content LIKE '%!%%' ESCAPE '!';

→ 메모 내용에 실제 % 문자가 포함된 항목 검색

4. 주의할 점

  • %는 넓은 범위의 검색을 유도하기 때문에, 인덱스를 잘 타지 않습니다.
  • 문자열 앞에 %가 오면 인덱스 미사용이 될 가능성이 높습니다.
  • 성능 최적화가 중요한 상황에서는 가급적 LIKE 조건 대신 FULLTEXT 검색이나 정규표현식 등을 사용하는 것이 유리할 수 있습니다.

SQL에서 LIKE 연산자를 단순히 ‘포함 조건’ 정도로만 이해하고 사용하는 경우가 많습니다. 하지만 와일드카드의 특성과 인덱스 영향까지 고려하면 보다 정확하고 성능 좋은 쿼리를 작성할 수 있습니다.

#SQL기초 #LIKE연산자 #SQL와일드카드 #문자열검색 #SQL쿼리팁

반응형
LIST