프로그래밍 언어/SQL

SQL 함수 간단 실습 :: SELECT문

gamjadori 2024. 1. 11. 16:55
728x90

<SELECT 문>

  • SELECT * FROM 테이블 이름
  • *: 모든 컬럼
SELECT customername FROM customers;
>> 테이블 customers에서 customername를 가져와라

<결과>

 

SELECT customername, contactname, country FROM customers;
>> customers에서 customername, contactname, country를 가져와라

<결과>

SELECT `CustomerName`, '님 안녕하세요?' FROM customers;
>> customers에서 CustomerName에 해당하는 항목을 가져와라.
'님 안녕하세요?'는 존재하지 않는 항목이라도 자동으로 붙여짐.

<결과>

 

<WHERE: 조건식 지정>

1. SELECT * FROM employees
WHERE `LastName` = 'Leverling';
>> employees에 있는 항목 중, `LastName`이 'Leverling'인 항목을 모두 불러와라.
2. SELECT * FROM orders
WHERE `EmployeeID` = 3;
>> orders 중, EmployeeID가 3인 데이터를 모두 불러와라.
3. SELECT * FROM orderdetails
WHERE `Quantity` < 3 AND `ProductID` = 56
>> orderdetails 중, Quantity이 3보다 작고, ProductID가 56인 데이터를 불러와라.

<1 결과>

<2 결과>

<3 결과>

 

<ORDER BY: 데이터의 순서 지정>

  • 오름차순 (ASC): 작은 것에서 큰 것 >> 디폴트 설정되어 있어 따로 적지 않으면 오름차순으로 정리되어 출력
  • 내림차순 (DESC): 큰 것에서 작은 것
SELECT * FROM customers
ORDER BY `ContactName` ASC;
>> customers에 있는 ContactName를 오름차순 (작 > 큰)으로 가져와라.

<결과>

 

<LIMIT: 원하는 만큼만 데이터를 가져오는 방법>

  • LIMIT (가져올 개수)
  • LIMIT (건너 뛸 개수), (가져올 개수)
SELECT * FROM orderdetails
ORDER BY `Quantity` DESC
LIMIT 10;
>> orderdetails에서 Quantity를 내림차순으로 (큰 > 작) 10개 가져와라.

<결과>

SELECT * FROM customers
LIMIT 11, 10;
>> customers를 11개씩 건너뛰어 10개 가져와라.

<결과>

 

<AS: 별명으로 데이터 가져오기>

  • 함수 변수 지정과 비슷
SELECT customerid as id,
    customername as name,
    address as addr
FROM customers;
>> customers에서 customerid를 id로,
   customername를 name이라는 이름으로,
   address를 addr이라는 이름으로 가져와라.

<결과>

SELECT customername,
    '님 안녕하세요?' as '인사'
FROM customers;
>> customers에서 customername과
'님 안녕하세요?'를 '인사'라는 항목으로 가져와라.
(없는 항목은 알아서 생성)

<결과>

SELECT
    customerid as '아이디',
    customername as '고객명',
    city as '도시',
    country as '국가'
FROM customers
WHERE
    city = 'London' OR country = 'Mexico'
ORDER BY customername
LIMIT 0, 5;

>>테이블 customers에서
    customerid를 '아이디',
    customername를 '고객명',
    city를 '도시',
    country를 '국가'로 가져오는데,
city이 'London'이거나, country이 'Mexico'인 데이터를 가져오고,
customername를 오름차순으로 해서 
0개씩 건너뛰어 5개를 가져와라.

<결과>

<GROUP BY>

  • 특정 칼럼을 기준으로 집계 함수를 사용하여 건수(COUNT), 합계(SUM), 평균(AVG) 등 집계성 데이터를 추출할 때 사용
  • 만약 SELECT 문에 집계 함수를 사용하지 않거나 GROUP BY 절에 언급되지 않은 열이 존재한다면 오류가 발생
SELECT country, city,
    CONCAT_WS(', ', city, country)
FROM customers
GROUP BY country, city;
>> customers에서 country와 city를 출력하고,
city, country를 ', '로 이어서 출력하는데
country와 city를 그룹화하라. 

<결과>