서버 개발/MySQL

MySQL - (1) SELECT

Johnny Yoon 2019. 8. 8. 19:20
728x90
반응형

 

 

 

MySQL 포스팅

(1) SELECT

(2) 집계함수

(3) VIEW

(4) 윈도우 함수

(5) 데이터 갱신

(6) 조건 분기

(7) JOIN


환경

제가 사용할 환경은 다음과 같습니다.

  • MySQL Ubuntu 5.7.27
  • MySQL Workbench

 

데이터

Select문을 사용해보기 전에 데이터를 준비하겠습니다.

다음 테이블의 데이터는 w3school에서 가져왔습니다.

링크는 아래에 있습니다.

https://www.w3schools.com/sql/sql_select.asp

 

실습을 해보기 위해 위의 링크의 데이터를 조금 변경 했습니다. (인코딩 문제 해결)

아래는 상위 5개의 샘플 데이터 입니다.

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitucion 2222 Mexico D.F. 05021 Mexico
3 Antonio Moreno Taqueria Antonio Moreno Mataderos 2312 Mexico D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbkop Christina Berglund Berguvsvagen 8 Lulea S-958 22 Sweden

위를 Workbench에서 임포트 하기 위해 csv파일을 첨부하겠습니다.

customers.csv
0.01MB

(혹은 mysql에서 임포트를 해주셔도 무관합니다.)

 

SELECT 문

DBMS는 기본적으로 검색 기능을 제공합니다. 이를 query또는 retrieve라고 많이 부릅니다.

select문의 기본 문법은 다음과 같습니다.

SELECT [컬럼명 ...] FROM 테이블명;

MySQL은 기본적으로 대소문자를 구분하지 않기 때문에 자유롭게 작성할 수 있습니다.

 

위의 테이블의 모든 데이터를 가져오려면 다음과 같은 쿼리를 입력하면 됩니다.

SELECT * FROM customers;

위의 쿼리의 상위 5개의 결과는 다음과 같습니다.

 

위 테이블에서 Customer의 이름과 나라만 가져오는 쿼리는 다음과 같습니다.

SELECT CustomerName, Country FROM customers;

위의 쿼리의 결과중 상위 5개는 다음과 같습니다.

 

WHERE 구

select문의 뒤에는 보통 조건을 주기 위한 where문이 붙습니다.

기본적인 문법은 다음과 같습니다.

SELECT [컬럼명 ...] 
FROM 테이블명 
WHERE 조건;

 

WHERE구에서 사용할 수 있는 조건들은 다음과 같습니다.

연산자 의미
= 같다
<> 같지 않다
>= 같거나 크다
> 크다
<= 같거나 작다
< 작다

 

몇가지 예제들을 살펴보겠습니다.

다음은 Customer데이터 중 =를 사용해 나라가 Mexico에 해당하는 Row를 가져오는 쿼리입니다.

SELECT * FROM customers WHERE Country = 'Mexico';

위 쿼리의 결과는 다음과 같습니다.

 

다음은 Customer데이터 중 나라가 Mexico에 해당하지 않는 Row를 가져오는 쿼리입니다.

SELECT * FROM customers WHERE Country <> 'Mexico';

위 쿼리의 결과중 상위 5개는 다음과 같습니다.

 

마지막으로 다음은 Customer데이터 중 id가 3보다 같거나 작은 Row를 가져오는 쿼리 입니다.

SELECT * FROM customers WHERE CustomerID <= 3;

위 쿼리의 결과는 다음과 같습니다.

 

조건 중첩

WHERE구에서는 여러 조건을 중첩해 사용할 수 있습니다.

프로그래밍을 조금 해보셨다면 익숙하겠지만, AND와 OR로 여러 조건을 묶을 수 있습니다.

 

아래는 멕시코에 살면서 ID가 10이하인 Row를 고르는 쿼리 입니다.

SELECT * 
FROM customers 
WHERE Country = 'Mexico' 
  AND CustomerID <= 10;

위 쿼리의  결과는 다음과 같습니다.

 

만약 OR를 사용해 2개 이상의 조건을 중첩하려 한다면,  IN 키워드가 더 나을 수도 있습니다.

아래는 쿼리에 나타난 3개의 나라의 Customer의 이름을 찾는 쿼리입니다.

SELECT CustomerName 
FROM customers
WHERE Country IN ('GERMANY', 'UK', 'Sweden');

위 쿼리의 결과중 상위 5개는 다음과 같습니다.

 

여기까지 기본적인 SELECT문의 기능에 대해서 알아보았습니다.

 

 


MySQL 포스팅

(1) SELECT

(2) 집계함수

(3) VIEW

(4) 윈도우 함수

(5) 데이터 갱신

(6) 조건 분기

(7) JOIN


참고자료

https://www.w3schools.com/sql

SQL 레벨업 : DB 성능 최적화를 위한 SQL 실전 가이드, 한빛미디어

728x90
반응형

'서버 개발 > MySQL' 카테고리의 다른 글

MySQL - (6) 조건분기  (0) 2019.08.10
MySQL - (5) 데이터 갱신  (0) 2019.08.10
MySQL - (4) 윈도우 함수  (0) 2019.08.10
MySQL - (3) VIEW  (0) 2019.08.09
MySQL - (2) 집계함수  (0) 2019.08.08