STUDY/DataBase

SQL | SELECT | DISTINCT | WHERE | AND, OR and NOT | ORER BY

nicesugi 2022. 11. 11. 14:01

예시 : Customers 테이블

 

SELECT

데이터베이스에서 데이터를 선택하는 데 사용

반환된 데이터는 결과 집합이라고 하는 결과 테이블에 저장

 

1. "Customers" 테이블의 모든 레코드를 선택

SELECT * FROM Customers;

2. "Customers" 테이블에서 "CustomerName" 및 "City" 열을 선택

SELECT CustomerName, City FROM Customers;

3. "Customers" 테이블에서 "CustomerName" 열을 선택

SELECT CustomerName FROM Customers;

 

SELECT DISTINCT

고유한(다른) 값만 반환하는 데 사용

테이블 내부의 열에는 종종 많은 중복 값이 ​​포함되는데 다른(고유한) 값만 선택할 때 사용

Microsoft Access 데이터베이스에서 지원 X

 

1. "Customers" 테이블의 "Country" 열에서 DISTINCT 값만 선택 

SELECT DISTINCT Country FROM Customers;

2. "Customers" 테이블의 "Country" 열에서 DISTINCT 값만 선택의 

SELECT COUNT(DISTINCT Country) FROM Customers;

 

WHERE

레코드를 필터링하는 데 사용

지정된 조건을 충족하는 레코드만 추출하는 데 사용

  • 텍스트 값은 작은따옴표로 묶어야 함(대부분의 데이터베이스 시스템에서는 큰따옴표도 허용)
  • 숫자 값은 따옴표로 묶지 않음
  • 연산자를 사용할 수 있음
    • =  |  >  |  <  |  >=  |  <=  |  <>  |  BETWEEN  |  LIKE  |  IN
                                                👆 Not equal

 

1. "Customers" 테이블에서 "Mexico" 국가의 모든 고객을 선택

SELECT * FROM Customers
WHERE Country='Mexico';

2. "Customers" 테이블에서 "CustomerID" 열에서 1의 값만 선택

SELECT * FROM Customers
WHERE CustomerID=1;

 

AND, OR and NOT

WHERE절에서 연산자를 사용할 수 있음

AND및 OR연산자는 둘 이상의 조건을 기반으로 레코드를 필터링하는 데 사용

  • AND 연산자는 AND로 구분된 모든 조건이 TRUE인 경우 레코드를 표시합니다.
  • OR 연산자는 OR로 구분된 조건 중 하나라도 TRUE인 경우 레코드를 표시합니다.
  • NOT 연산자는 조건이 NOT TRUE가 아닌 경우 레코드를 표시합니다.

1. 국가가 "독일"이고 도시가 "베를린"인 "고객"의 모든 필드를 선택

SELECT * FROM Customers
WHERE Country='Germany' AND City='Berlin';

2. 도시가 "Berlin" 또는 "München"인 "Customers"의 모든 필드를 선택

SELECT * FROM Customers
WHERE City='Berlin' OR City='München';

3. 국가가 "독일" 또는 "스페인"인 "고객"의 모든 필드를 선택

SELECT * FROM Customers
WHERE Country='Germany' OR Country='Spain';

4. 국가가 "독일"이 아닌 "고객"의 모든 필드를 선택

SELECT * FROM Customers
WHERE NOT Country='Germany';

5. 국가가 "독일"이고 도시가 "베를린" 또는 "뮌헨"이어야 하는 "고객"의 모든 필드를 선택

SELECT * FROM Customers
WHERE Country='Germany' AND (City='Berlin' OR City='München');

6. 국가가 "독일"이 아니고 "미국"이 아닌 "고객"의 모든 필드를 선택

SELECT * FROM Customers
WHERE NOT Country='Germany' AND NOT Country='USA';

 

ORER BY 

결과 집합을 오름차순 또는 내림차순으로 정렬하는 데 사용

기본적으로 레코드를 오름차순으로 정렬

레코드를 내림차순으로 정렬하려면 DESC 키워드를 사용

 

1. "국가" 열을 기준으로 정렬된 "고객" 테이블에서 모든 고객을 선택

SELECT * FROM Customers
ORDER BY Country;

2. "국가" 및 "고객 이름" 열을 기준으로 정렬된 "고객" 테이블에서 모든 고객을 선택

    (국가별로 정렬되지만,  일부 행에 동일한 국가가 있는 경우 CustomerName별로 정렬)

SELECT * FROM Customers
ORDER BY Country, CustomerName;

3. "국가" 열을 기준으로 내림차순으로 정렬된 "고객" 테이블에서 모든 고객을 선택

SELECT * FROM Customers
ORDER BY Country DESC;

4. "국가"를 기준으로 오름차순으로 정렬되고 "CustomerName" 열을 기준으로 내림차순으로 정렬된 "Customers" 테이블에서 모든 고객을 선택

    (ASC -> 오름차순  /  DESC -> 내림차순)

SELECT * FROM Customers
ORDER BY Country ASC, CustomerName DESC;

 

 

 

 

 

참고링크 : https://www.w3schools.com/sql/

반응형

'STUDY > DataBase' 카테고리의 다른 글

SQL | DELETE  (0) 2022.11.11
SQL | UPDATE  (0) 2022.11.11
SQL | INSERT INTO | NULL  (0) 2022.11.11
SQL  (0) 2022.11.11
RDB & NoSQL  (0) 2022.09.15