영국 척척석사 유학생 일기장👩🏻‍🎓

(SQL) SELECT, FROM, ORDER BY, WHERE 등 기본 개념 정리 본문

코딩공부/SQL

(SQL) SELECT, FROM, ORDER BY, WHERE 등 기본 개념 정리

life-of-nomad 2024. 5. 9. 11:51
728x90
반응형

1) SELECT & FROM

  • SELECT : 데이터를 받을 열
  • FROM : 열을 선택하려는 테이블 지정
  • 테이블의 모든 열에 있는 데이터를 제공받으려면 * 사용
SELECT *
FROM orders

2) LIMIT

  • LIMIT : 테이블의 처음 몇 행만 보고 싶을 때 유용
  • 전체 데이터 불러오는 것 보다 속도 훨씬 빠름
  • 항상 쿼리의 맨 마지막 부분
SELECT *
FROM orders
LIMIT 10; (처음 10개의 행만 표시)

 

3) ORDER BY

  • 모든 열의 데이터를 사용하여 결과를 정렬
  • SELECT, FROM 뒤 LIMIT 앞
  • 기본값은 오름차순/ ORDER BY 뒤에 DESC 추가 시 내림차순 정렬
SELECT *
FROM orders
ORDER BY occurred_at
LIMIT 1000;
  • 한 번에 두 개 이상의 열을 정렬 가능/ 맨 왼쪽 열 부터 차례대로 정렬
SELECT account_id, total_amt_usd
FROM orders
ORDER BY total_amt_usd DESC, account_id

 

4) WHERE

  • 충족되어야 하는 조건에 따라 테이블의 하위 세트를 표시/ 데이터 필터링
  • Comparison Operators (비교 연산자) : >, <, >=, <=, = , !=(같지 않음)
SELECT *
FROM orders
WHERE account_id = 4251
ORDER BY occurred_at (굳이 정렬 안해도 됨)
LIMIT 1000;

 

  • 숫자가 아닌 데이터에서 = 및 ! = 연산자 사용/ 작은 따옴표 사용
SELECT *
FROM accounts
WHERE name != ‘United Technologies’
  • Arithmetic Operators (산술 연산자) : *, +, - / ⇒ Derived Column(파생 열) 생성 가능
    • AS 를 사용하여 새 열의 이름을 지정
SELECT id, (standard_amt_usd/total_amt_usd)*100 AS std_percent. total_amt_usd
FROM orders
LIMIT 10;

5) 논리 연산자 : LIKE, IN, NOT, AND, BETWEEN, OR

  • LIKE : WHERE 및 = 를 사용하는 것과 유사한 연산을 수행하지만 찾고 있는 내용을 정확히 모를 경우 사용
    • 텍스트 작업에 매우 유용, %(특정 문자 집합으로 시작하거나 뒤에 오는 임의의 수나 문자) 와 함께 사용
SELECT *
FROM accounts
WHERE website LIKE ‘%google%’;

 

  • IN : WHERE 및 = 를 사용하는 것과 유사한 연산 수행하지만 둘 이상의 조건에 대해 수행 가능
    • 숫자 열과 텍스트 열 모두 유용 (텍스트는 따옴표 사용하기)
    • 데이터를 가져오려는 열 값을 동일 쿼리 내에서 여러개 확인 가능
SELECT *
FROM orders
WHERE account_id IN (1001, 1021);

 

  • NOT : IN 및 LIKE 와 함께 사용되어 특정 조건을 충족하지 않는 NOT LIKE 또는 NOT IN인 행을 모두 선택
SELECT sales_rep_id, name
FROM accounts
WHERE sales_rep_id NOT IN (321500, 321570)
ORDER BY sales_rep_id;
SELECT *
FROM accounts
WHERE website NOT LIKE ‘%com%’;
  • AND : WHERE 문에서 한 번에 둘 이상의 논리 절을 고려
    • AND를 사용하여 새 명령문을 연결할 때마다 보려는 열을 지정해야 함
    • 산술 연산자(+, *, -, /)를 포함해 모든 연산(LIKE, IN, NOT) 과 함께 연동
SELECT *
FROM orders
WHERE occurred_at >= ‘2016-04-01’ AND occurred_at <= ‘2016-10-01’
ORDER BY occurred_at;

 

  • BETWEEN : AND 보다 더 깔끔한 문장 사용 가능, 특히 동일한 열 사용 할 때
WHERE column >= 6 AND column <= 10
⇒ WHERE column BETWEEN 6 AND 10 (양 끝값 포함)
SELECT *
FROM orders
WHERE occurred_at BETWEEN ‘2016-04-01’ AND ‘2016-10-01’
ORDER BY occurred_at;

 

  • OR : 결합된 조건 중 하나 이상이 true여야 하는 연산 결합
    • AND와 유사하게 여러 문 결합 가능, 새 명령문을 연결할 때마다 보려는 열을 지정해야 함
    • 산술 연산자(+, *, -, /)를 포함해 모든 연산(LIKE, IN, NOT, AND, BETWEEN) 과 함께 연동
    • 여러 개 결합할 때 수행하려는 논리가 올바르게 실행되고 있는지 확인하기 위해 종종 괄호(parentheses) 사용
SELECT *
FROM orders
WHERE (standard_qty = 0 OR gloss_qty = 0 OR poster_qty = 0)
AND occurred_at = ‘2016-10-01’;

 

 

728x90
반응형