AND, OR, NOT
AND
βANDβ μ°μ°μλ SQLμμ μ¬λ¬ 쑰건μ λμμ λ§μ‘±ν΄μΌ ν λ μ¬μ©λ©λλ€.
- μ¦, βANDβ λ₯Ό μ¬μ©νλ 쿼리λ λͺ¨λ μ‘°κ±΄μΈ μ°Έ(TRUE)μΌ λλ§ κ²°κ³Όλ₯Ό λ°νν©λλ€.
- μ΄λ λ°μ΄ν°λ² μ΄μ€μμ λ μΈλ°ν νν°λ§μ μννκ³ μ ν λ μ μ©νλ©°, νΉν 볡μ‘ν λ°μ΄ν° μ§ν©μμ κΈ°μ€μ λΆν©νλ μ νν λ°μ΄ν°λ₯Ό μ°Ύκ³ μ ν λ μ€μν μν μ ν©λλ€.
βANDβ μ¬μ© μ
-
μ¬λ¬ κΈ°μ€μ λ°λ₯Έ λ°μ΄ν° κ²μ : λμ΄κ° 30μΈ μ΄μμ΄λ©΄μ βNew Yorkβμ κ±°μ£Όνλ λͺ¨λ μ¬λμ μ°Ύκ³ μΆμ λ
SELECT * FROM people WHERE age >= 30 AND city = 'New York' ;
μ΄ μΏΌλ¦¬λ βageβ μ΄μ΄ 30 μ΄μμ΄λ©΄μ λμμ βcityβ μ΄μ΄ βNew YorkβμΈ λͺ¨λ νμ λ°νν©λλ€.
-
λ μ§ λ²μμ νΉμ 쑰건μ λμμ λ§μ‘±νλ λ°μ΄ν° κ²μ : 2023λ
1μ 1μΌλΆν° 2023λ
3μ 31μΌ μ¬μ΄μ λ±λ‘λκ³ , μνκ° βνμ±νβμΈ λͺ¨λ κ³μ μ μ°Ύκ³ μΆμ λ
SELECT * FROM account WHERE registration_date BETWEEN '2023-01-01' AND '2023-03-31' AND status = 'Active';
μ΄ μΏΌλ¦¬λ βregistration_dateβ κ° μ§μ λ λ μ§ λ²μ λ΄μ μμΌλ©°, βstatusβ κ° βActiveβ μΈ νμ λ°νν©λλ€.
βANDβ μ°μ°μμ νΉμ§
- βANDβ μ°μ°μλ₯Ό μ¬μ©ν λλ κ° μ‘°κ±΄μ΄ μλ‘ μ΄λ€ κ΄κ³μ μλμ§ κ³ λ €ν΄μΌ ν©λλ€. μλ₯Ό λ€μ΄, μνΈ λ°°νμ μΈ μ‘°κ±΄μ βANDβ λ‘ μ°κ²°νλ©΄ κ²°κ³Όκ° νμ λΉμ΄ μμ κ²μ λλ€.
- μ±λ₯μ μν₯μ λ―ΈμΉ μ μλ ν° λ°μ΄ν° μΈνΈμμλ μΈλ±μ€μ 쑰건μ ν¨μ¨μ μΈ μ¬μ©μ΄ μ€μν©λλ€. κ°λ₯ν ν, μ±λ₯μ μν₯μ λ λ―ΈμΉλ 쑰건μ λ¨Όμ μ μ©νλ κ²μ΄ μ’μ΅λλ€.
βANDβ μ°μ°μλ 볡μμ 쑰건μ μ‘°ν©νμ¬ λ°μ΄ν°λ₯Ό νν°λ§νκ³ μ ν λ νμμ μΈ λꡬμ
λλ€.
μ΄λ₯Ό ν΅ν΄ λ μ ννκ³ μλ―Έ μλ λ°μ΄ν° μ§ν©μ μ»μ μ μμΌλ©°, SQL 쿼리 μμ± μ λ€μν μν©μ λ§μΆ° μ μ°νκ² μ μ©ν μ μμ΅λλ€.
OR
βORβ μ°μ°μλ SQLμμ μ£Όμ΄μ§ 쑰건 μ€ νλ μ΄μμ΄ μ°Έ(TRUE)μΌ λ κ²°κ³Όλ₯Ό λ°ννκ³ μ ν λ μ¬μ©λ©λλ€.
- βORβ μ μ¬μ©νλ©΄ μ¬λ¬ 쑰건 μ€ νλλΌλ λ§μ‘±νλ λ°μ΄ν°λ₯Ό μ νν μ μμ΄, λ°μ΄ν°λ² μ΄μ€ 쿼리μ μ μ°μ±μ ν¬κ² ν₯μμν¬ μ μμ΅λλ€.
- βORβ μ λ€μν μλ리μ€μμ μ μ©νκ² μ¬μ©λλ©°, νΉν μ¬λ¬ λ€λ₯Έ κ°λ₯μ±μ λͺ¨λ ν¬ν¨ν΄μΌ ν λ μ€μν μν μ ν©λλ€.
βORβ μ¬μ© μ
-
μ¬λ¬ λ€λ₯Έ κ° μ€ νλλ₯Ό λ§μ‘±νλ λ°μ΄ν° κ²μ : βManagerβ λλ βSalesβ λΆμμ μν λͺ¨λ μ§μμ μ°Ύκ³ μΆμ λ
SELECT * FROM employees WHERE department = 'Manager' OR department = 'Sales';
μ΄ μΏΌλ¦¬λ βdepartmentβ μ΄μ΄ βManagerβμ΄κ±°λ βSalesβμΈ λͺ¨λ νμ λ°νν©λλ€.
-
μ¬λ¬ 쑰건 μ€ νλ μ΄μμ λ§μ‘±νλ λ°μ΄ν° κ²μ : λμ΄κ° 18μΈ λ―Έλ§μ΄κ±°λ 65μΈ μ΄μμΈ λͺ¨λ μ¬λμ μ°Ύκ³ μΆμ λ
SELECT * FROM people WHERE age < 18 OR age >= 65;
μ΄ μΏΌλ¦¬λ βageβ μ΄μ΄ 18μΈ λ―Έλ§μ΄κ±°λ 65μΈ μ΄μμΈ λͺ¨λ νμ λ°νν©λλ€.
βORβ μ°μ°μμ νΉμ§
- βORβ μ°μ°μλ₯Ό μ¬μ©ν λλ μ£Όμ΄μ§ 쑰건 μ€ νλλΌλ μ°Έμ΄λ©΄ κ²°κ³Ό μ§ν©μ ν΄λΉ νμ΄ ν¬ν¨λ©λλ€. λͺ¨λ μ‘°κ±΄μ΄ κ±°μ§(FALSE)μΈ κ²½μ°μλ§ κ²°κ³Όμμ μ μΈλ©λλ€.
- μ¬λ¬ κ°μ λ€λ₯Έ κ°λ₯μ±μ νμ©νλ λ° μ μ©νλ©°, νΉν μ¬μ©μμ μ λ ₯μ΄λ μ νμ λ°λΌ λ€μν κ²°κ³Όλ₯Ό 보μ¬μ€μΌ ν λ μμ£Ό μ¬μ©λ©λλ€.
- βANDβ μ°μ°μμ ν¨κ» μ¬μ©λ μ μμΌλ, μ΄ κ²½μ° μ°μ μμμ μ£Όμν΄μΌ νλ©°, κ΄νΈλ₯Ό μ¬μ©νμ¬ μ°μ°μ κ°μ μ°μ μμλ₯Ό λͺ ννκ² κ΅¬λΆν΄μΌ ν©λλ€.
μ¬μ© μ κ³ λ €μ¬ν
- βORβ μ°μ°μλ₯Ό μ¬μ©ν λλ 쿼리μ μ±λ₯μ μ£Όμν΄μΌ ν©λλ€. νΉν λκ·λͺ¨ λ°μ΄ν° μ μμλ βORβ μ‘°κ±΄μ΄ λ§μ μλ‘ μΏΌλ¦¬ μ±λ₯μ΄ μ νλ μ μμ΅λλ€.
- κ°λ₯ν κ²½μ°, βORβ μ μ¬μ©νλ λμ λ€λ₯Έ μ κ·Ό λ°©μμ κ³ λ €ν΄λ³΄λ κ²λ μ’μ΅λλ€. μλ₯Ό λ€μ΄, βINβ μ°μ°μλ₯Ό μ¬μ©νλ©΄ βORβ κ³Ό μ μ¬ν κ²°κ³Όλ₯Ό λ ν¨μ¨μ μΌλ‘ μ»μ μ μμ λκ° λ§μ΅λλ€.
- 볡μ‘ν 쿼리μμλ βORβ κ³Ό βANDβ λ₯Ό νΌν©νμ¬ μ¬μ©ν λ κ΄νΈλ₯Ό μ μ ν μ¬μ©νμ¬ λͺ νν λ Όλ¦¬ ꡬ쑰λ₯Ό μ μ§νλ κ²μ΄ μ€μν©λλ€.
βORβ μ°μ°μλ λ€μν 쑰건μ μ μ°νκ² μ²λ¦¬νκ³ μ ν λ λ§€μ° μ μ©νλ©°, SQL 쿼리λ₯Ό μμ±νλ κ³Όμ μμ νμν κ²°κ³Όλ₯Ό μ»κΈ° μν΄ λ€μν μλ리μ€λ₯Ό κ³ λ €ν μ μκ² ν΄μ€λλ€.
NOT
βNOTβ μ°μ°μλ SQLμμ 쑰건μ λ Όλ¦¬λ₯Ό λΆμ ν λ μ¬μ©λ©λλ€.
- μ¦, βNOTβ μ νΉμ μ‘°κ±΄μ΄ κ±°μ§(FALSE)μΌ λ μ°Έ(TRUE)μΈ κ²°κ³Όλ₯Ό λ°ννλλ‘ ν©λλ€.
- μ΄λ₯Ό ν΅ν΄ νΉμ 쑰건μ λ§μ‘±νμ§ μλ λ°μ΄ν°λ₯Ό κ²μνκ³ μ ν λ λ§€μ° μ μ©νκ² νμ©ν μ μμ΅λλ€.
- βNOTβ μ°μ°μλ βWHEREβ μ λ΄μμ λ€λ₯Έ μ°μ°μ(μ: βINβ, βBETWEENβ, βLIKEβ, βEXISTSβ)μ ν¨κ» μ¬μ©λμ΄, ν΄λΉ 쑰건μ λ°λλλ κ²°κ³Όλ₯Ό μ»κ³ μ ν λ μ¬μ©λ©λλ€.
βNOTβ μ¬μ© μ
-
νΉμ 쑰건μ λ§μ‘±νμ§ μλ λ°μ΄ν° κ²μ : βSalesβ λΆμμ μνμ§ μλ λͺ¨λ μ§μμ μ°Ύκ³ μΆμ λ
SELECT * FROM employees WHERE NOT department = 'Sales';
μ΄λ βdepartmentβ κ° βSalesβ κ° μλ λͺ¨λ νμ λ°νν©λλ€.
-
νΉμ λ²μμ μνμ§ μλ λ°μ΄ν° κ²μ : 20μΈμμ 30μΈ μ¬μ΄κ° μλ μ¬λμ μ°Ύκ³ μΆμ λ
SELECT * FROM people WHERE NOT age BETWEEN 20 AND 30;
μ΄λ λμ΄κ° 20μΈ μ΄μ 30μΈ μ΄νκ° μλ λͺ¨λ μ¬λμ μ°Ύμ΅λλ€.
-
μ§μ λ λͺ©λ‘μ ν¬ν¨λμ§ μλ λ°μ΄ν° κ²μ : βManagerβμ βSalesβ λΆμμ μνμ§ μμ λͺ¨λ μ§μμ μ°Ύκ³ μΆμ λ
SELECT * FROM employee WHERE department NOT IN ('Manager', 'Sales');
μ΄ μΏΌλ¦¬λ βdepartmentβ κ° βManagerβ λλ βSalesβκ° μλ λͺ¨λ νμ λ°νν©λλ€.
βNOTβ μ°μ°μμ νΉμ§.
- βNOTβ μ°μ°μλ 쑰건μ λ Όλ¦¬λ₯Ό λΆμ νμ¬, μ‘°κ±΄μ΄ κ±°μ§μΌ λ μ°Έμ λ°νν©λλ€.
- βNOTβ μ βWHEREβ μ μμ λ€μν μ°μ°μμ ν¨κ» μ¬μ©λ μ μμΌλ©°, νΉμ 쑰건μ μ μΈν λ°μ΄ν°λ₯Ό μ ννκ³ μ ν λ μ μ©ν©λλ€.
- 볡μ‘ν 쑰건μμλ βNOTβ μ μ¬μ©νμ¬ μμΈμ μΈ κ²½μ°λ₯Ό μ½κ² νν°λ§ν μ μμ΅λλ€.
μ¬μ© μ κ³ λ €μ¬ν.
- βNOTβ μ°μ°μλ₯Ό μ¬μ©ν λλ 쿼리μ μ±λ₯μ μ£Όμν΄μΌ ν©λλ€. νΉν, βNOTβ μ΄ ν¬ν¨λ 쑰건μ μΈλ±μ€ νμ©μ΄ μ΄λ €μ μ±λ₯ μ νλ₯Ό μΌμΌν¬ μ μμ΅λλ€.
- λͺ ννμ§ μμ λ Όλ¦¬λ₯Ό νΌνκΈ° μν΄, κ°λ₯ν ν βNOTβ μ μ¬μ©μ μ΅μννκ³ , λμ λͺ νν 쑰건μ μ¬μ©νμ¬ μνλ κ²°κ³Όλ₯Ό μ»λ κ²μ΄ μ’μ΅λλ€.
βNOTβ μ°μ°μλ SQL 쿼리μμ νΉμ 쑰건μ λ§μ‘±νμ§ μλ λ°μ΄ν°λ₯Ό νν°λ§νκ³ μ ν λ μ μ©νκ² μ¬μ©λ©λλ€.
νμ§λ§, 쿼리μ λͺ
νμ±κ³Ό μ±λ₯μ κ³ λ €νμ¬ μ μ€νκ² μ¬μ©ν΄μΌ ν©λλ€.