안녕하세요. 이번시간에는 MySQL기초 데이터 가져오기 편입니다. 데이터 베이스과 테이블을 생성했다면 이제 꺼내서 사용해야겠죠? 원하는 데이터를 가져오는 방법을 배워보도록 하겠습니다.
오늘 배울 내용의 목차입니다.
- 데이터 가져오기 (SELECT)
- 테이블에서 데이터 가져오기 (FROM)
- 별명 붙이기 (ALIAS)
- 데이터 일부만 가져오기 (LIMIT)
- 중복 제거하기 (DISTINCT)
데이터 가져오기 (SELECT)
데이터를 가져오는 문법의 키워드는 SELECT 입니다. 꼭 기억해야할 키워드입니다.
SELECET의 특징과 활용방법은 아래와 같습니다.
- 숫자, 문자 데이터를 가져올 수 있습니다.
- SELECT 데이터 형식으로 사용합니다.
- 컬럼을 선택해 컬럼의 값을 가져올 수 있습니다.
- SELECT [컬럼 이름] 형식으로 사용합니다.
- *(별포)를 통해 컬럼 전체를 가져올 수 있습니다.
- SELECT * 형식으로 사용합니다.
그러면 몇가지 기본적인 SELECT 기본예제를 살펴보겠습니다.
SELECT 123; 결과 : 123
SELECT 1+2+3; 결과 : 6
SELECT "ABC"; 결과 : "ABC"
조금 더 나아가서 설명드리면 SELECT 문의 기본 구문은 다음과 같습니다.
SELECT 구문
SELECT column1, column2, ...
FROM 테이블 명
WHERE 조건
ORDER BY 정렬 순서;
SELECT 문은 SELECT, FROM, WHERE, ORDER BY 절 이렇게 네 부분으로 나눌 수 있습니다. 테이블에 있는 데이터를 조회하기 위해서는 먼저 데이터를 가져올 테이블이 필요하고, 그 테이블의 어떤 컬럼을 가져올 것인지 결정해야 합니다. 그리고 모든 데이터를 가져올 것인지 아니면 어떤 조건에 맞는 데이터만 가져올 것인지도 결졍해야 하죠. 마지막으로 가져온 데이터를 입맛에 맞게 정렬할 수도 있습니다. 이 네가지 요건을 충족하기 위해 필요한 구문이 SELECT 문장을 이루고 있습니다. 하나씩 좀 더 살펴보겠습니다.
SELECT 절에는 테이블에서 선택할 컬럼이나 표현식을 명시합니다. 컬럼 명 대신 *를 명시하면 테이블에 있는 전체 컬럼을 선택하며, 테이블 생성 시 명시한 컬럼 순서대로 데이터를 가져옵니다. 각각의 컬럼과 표현식은 콤마로 구분합니다.
컬럼은 알겠는데 표현식은 무엇을 말하는 것일까요? 표현식이란 하나 이상의 값, 연산자, SQL 함수가 결합된 식을 말합니다. 가령 '1+1'이나 '2*2" 같은 것이 표현식이 될 수 있습니다. 여기서 1과 2는 값, +와 *는 연산자입니다. 값뿐만 아니라 컬럼 자체도 연산 대상이 될 수 있습니다. 예를 들어 column1과 column2라는 컬럼에 1과 2라는 값이 들어 있다면 'column1 + column2'라는 표현식을 사용할 수 있고, 이를 SELECT 절에 놓으면 3이라는 값이 조회됩니다.
FROM 절에는 조회하고자 하는 테이블을 명시합니다. 보통은 테이블 한 개만 조회하는 경우가 많지만, 때로는 여러개의 테이블을 결합해 SELECT 문을 만들기도 합니다. 이때는 가져올 여러 테이블을 콤마로 구분해 FROM 절을 명시합니다.
WHERE 절에는 테이블의 데이터 중 특정 조건에 맞는 데이터를 가져오고자 할 때 그 조건을 기술합니다. WHERE 절은 생략이 가능한데 생략하면 해당 테이블의 모든 데이터를 가져옵니다.
ORDER BY 절은 조회한 데이터를 정렬해서 보여주는 역할을 하며, 생략 가능합니다. 생략하면 무작위로 데이터가 조회됩니다. ORDER BY 절은 SELECT 절에 명시한 컬럼을 그대로 사용할 수 있으며, 정렬하고자 하는 컬럼을 순서대로 콤마로 구분해 명시합니다. 정렬은 크게 두 가지 방식으로 구현할 수 있습니다. 하나는 오름차순, 다른 하나는 내림차순입니다. 보통 오름차순에 익숙하기 때문에 기본적으로 오름차순으로 정렬됩니다만 내림차순으로 정렬할 수 있습니다. 오름차순 정렬 시에는 정렬하고자 하는 커럼 끝에 ASC, 내림차순 정렬 시에는 DESC를 명시하는데 ASC는 생략이 가능합니다.
테이블에서 데이터 가져오기 (FROM)
데이터를 가져올 때 테이블을 지정하는 키워드는 FROM 입니다. 데이터베이스 안에는 여러개의 테이블이 존재하는데 원하는 FROM을 사용하여 원하는 테이블 하나를 지정할 수 있는 것입니다.
FROM의 특징은 아래와 같습니다.
- FROM [테이블 이름] 형식으로 사용합니다.
- 테이블이 어떤 데이터베이스 안에 있는지 데이터베이스 이름도 같이 명시해야 합니다.
- 단, USE 키워드를 통해 사용할 데이터베이스를 지정해 주었다면 생략이 가능합니다.
이제 SELECT와 FROM을 조합한 문법에 대해서 알아보겠습니다.
컬럼을 하나만 선택하는 경우의 문법은 아래와 같습니다.
SELECT [컬럼 이름]
FROM [데이터베이스 이름].[테이블 이름];
여기서 점을 통해 데이터베이스와 테이블을 분리 표현해줍니다.
다음으로 컬럼을 여러개 선택하는 경우의 문법은 아래와 같습니다.
SELECT [컬럼 이름], [컬럼 이름], ... [컬럼 이름]
FROM [데이터베이스 이름].[테이블 이름];
다음으로 컬럼 전체 선택하는 경우의 문법은 아래와 같습니다.
SELECT *
FROM [데이터베이스 이름].[테이블 이름];
만약 USE 키워드를 통해 데이터베이스를 지정해주었다면 FROM에서 데이터베이스 이름을 지정하지 않아도 됩니다. 이미 USE 키워드를 통해 데이터베이스를 지정해주었기 때문입니다.
USE [데이터베이스 이름]
SELECT [컬럼 이름]
FROM [테이블 이름];
예제 쿼리문을 살펴보겠습니다.
SELECT name
FROM pokemon.mypokemon;
위 쿼리문을 실행하면 pokemon 데이터베이스의 mypokemon이라는 테이블에서 name 열의 데이터를 가져오게 됩니다.
별명 붙이기 (ALIAS)
가져온 데이터에 별명을 지정하는 키워드 AS입니다. 컬럼 이름에 부가 설명을 하거나 불필요한 내용을 제거할 때 사용합니다. AS [컬럼 별명] 형식으로 쓰입니다. 테이블 내의 실제 컬럼 이름은 변하지 않으며, 별명은 쿼리 내에서만 유효합니다. 만약 실제 컬럼 이름을 변경하고 싶다면, ALTER TABLE 구문을 사용하면 됩니다.
어떨때 별칭을 사용하면 좋을까요? 별칭은 하나의 SELECT SQL에 여러 개의 테이블이 사용되었을 때 혼선을 줄여주고 긴 테이블명이나 컬럼명을 짧게 만들어 SQL 작성에 효율성을 높여주게 됩니다.
문법의 형식은 아래와 같습니다.
SELECT [컬럼 이름] AS [컬럼 별명]
FROM [테이블 이름];
사용 예제를 추가적으로 설명드리겠습니다.
SELECT number AS national_number
FROM pokemon.mypokemon;
이렇게 실행을 하면 실제 데이터베이스 테이블의 열 이름은 number 이지만, 실행 후 가져온 열의 이름은 national_number로 가져옵니다. 실제 컬럼의 이름은 변하지 않는다는 점 다시 한번 참고하시기 바랍니다.
데이터 일부만 가져오기 (LIMIT)
가져올 데이터의 로우 개수를 지정하는 키워드 LIMIT 입니다. 데이터의 일부만 확인하고 싶을 때 사용합니다. 어떤 데이터가 들어가있는지 샘플로 몇 행만 보고 싶은데 모든 데이터를 가져온다면 시간도 오래걸리고 비효율적이겠죠? 이럴때는 LIMIT 구문을 사용하여 효율적으로 데이터 분석을 진행하시면 좋을 것 같습니다.
LIMIT의 특징
- LIMIT [로우 수] 형식으로 사용합니다.
- 쿼리의 가장 마지막에 위치합니다.
- 만약 입력한 숫자가 전체 row 수보다 크다면, 있는 row까지만 가져옵니다.
예시 쿼리를 가지고 설명드리면
SELECT number.name
FROM pokemon.mypokemon
LIMIT 2;
맨 아랫줄에 LIMIT 2 구문이 있으므로 위에서부터 2번째까지의 행만 가져오게 됩니다.
중복 제거하기 (DISTINCT)
중복된 데이터는 제외하고 같은 값은 한 번만 가져오는 키워드 DISTINCT 입니다. 컬럼에 어떤 값들이 있는 지 확인하고 싶을 때 사용합니다.
DISTINCT 특징
- DISTINCT [컬럼 이름] 형식으로 사용합니다.
- SELECT 절에 위치하여 컬럼의 유일한 값들을 가져옵니다.
예시 쿼리를 가지고 설명드리면
SELECT DISTINCT type
FROM pokemon.mypokemon;
type이라는 컬럼의 값들 중에서 중복은 제외하고 데이터를 가져오게 됩니다.
이상으로 SQL 기초 데이터 가져오기편 정리를 마치겠습니다.
읽어주셔서 감사합니다. 오늘도 성장하는 하루 되세요!
'데이터 분석 및 업무 자동화' 카테고리의 다른 글
슈퍼차지 파워 BI - Power BI DAX 입문자 추천 책 (0) | 2022.01.06 |
---|---|
adsp (데이터분석 준전문가) 나의 합격 수기 (0) | 2022.01.04 |
MySQL 기초 - 조건에 맞는 데이터 가져오기 (WHERE, LIKE, IS NULL) (0) | 2022.01.03 |
Power BI (파워비아이) 자격증 DA-100 알아보기 (0) | 2021.12.30 |
MySQL에서 데이터베이스는 어떻게 다루면 될까요? (CREATE, ALTER, DROP, TRUNCATE, INSERT, DELETE, UPDATE) (0) | 2021.12.29 |
댓글