데이터 가져오기

오상윤·2023년 1월 25일
0

SQL

목록 보기
2/10

데이터 가져오기(SELECT)

  • 데이터베이스에서 원하는 데이터를 가져오는 방법

SELECT

  1. 숫자, 문자 데이터를 가져올 수 있다.
    • SELECT 데이터 형식을 사용
  2. 컬럼을 선택해 컬럼의 값을 가져올 수 있습니다
    • SELECT[컬럼 이름] 형식으로 사용
  3. *(별표)를 통해 컬럼 전체를 가져올 수도 있습니다.
    • SELECT* 형식으로 사용
      • (별표)는 컬럼 전체(ALL)를 의미합니다
  • 컬럼을 선택하기 위해서는 테이블을 먼저 선택
  • SELECT123; => 123
  • SELECT1+2+3; => 6
  • SELECT"ABC; => ABC

테이블에서 데이터 가져오기 (FROM)

FROM

  • 데이터를 가져올 테이블을 지정하는 키워드
  • FROM[테이블 이름]형식으로 사용
  • 테이블이 어떤 데이터베이스 안에 있는지 데이터베이스 이름도 같이 명시해야 한다.
    - USE 키워드를 통해 사용할 데이터베이스를 지정해 주엇다면 생략 가능
  • 컬럼을 하나만 선택하는 경우
    - SELECT[컬럼 이름]
    FROM [데이터베이스 이름].[테이블 이름];
    • USE[데이터베이스 이름]
      SELECT[컬럼 이름]
      FROM[테이블 이름];
  • 컬럼을 여러개 선택하는 경우
    - SELECT[컬럼 이름],[컬럼 이름],...[컬럼 이름]
    FROM [데이터베이스 이름].[테이블 이름];
  • 컬럼을 전체 선택하는 경우
    - SELECT*
    FROM[데이터베이스 이름].[테이블 이름];

별명 붙이기 (ALIAS)

AS

  • AS[컬럼 별명]형식으로 사용
  • 테이블 내의 실제 컬럼 이름은 변하지 않으며, 별명은 쿼리 내에서만 유효
    - 만약 실제 컬럼 이름을 변경하고 싶다면, ALTER TABLE구문 사용
  • SELECT[컬럼이름]AS[컬럼 별명]
    FROM[테이블 이름];

데이터 일부만 가져오기(LIMIT)

LIMIT

  • 가져올 데이터의 로우 개수를 지정하는 키워드
  • LIMIT[로우 수]형식으로 사용
  • 쿼리의 가장 마지막에 위치
  • 만약 입력한 숫자가 전체 row수보다 크다면, 있는 row까지만 가져온다.

중복 제거하기(DISTINCT)

DISTINCT

  • 중복된 데이터는 제거하고 같은 값은 한 번만 가져오는 키워드

  • DISTINCT[컬럼 이름]형식으로 사용

  • SELECT절에 위치하여 컬럼의 유일한 값들을 가져온다.

    실습

    포켓몬 테이블 만들기

DROP DATABASE IF EXISTS pokemon;
CREATE DATABASE pokemon;
USE pokemon;
CREATE TABLE mypokemon(
		number int,
        name varchar(20),
        type varchar(20),
        height float,
        weight float,
        attack float,
        defense float,
        speed float
        );
INSERT INTO mypokemon(number, name, type, height, weight, attack, defense, speed)
VALUES (10,'caterpie', 'bug',0.3,2.9,.30,35,45),
	(25,'picachu','electric',0.4,6,55,40,90),
    (27,'raichu','electric',0.8,30,90,55,110),
    (133,'eevee','normal',0.3,6.5,55,50,55),
    (152,'chikoirita','grass',0.9,6.4,49,65,45);
  1. 123 곱하기 456을 가져와 주세요
SELECT 123*456
  1. 2310 나누기 30을 가져와 주세요
SELECT 2310/30
  1. '피카츄'라는 문자열을 '포켓몬'이라는 이름의 컬럼 별명으로 가져와 주세요
SELECT '피카츄' AS '포켓몬';
  1. 포켓몬 테이블에서 모든 포켓몬들의 컬럼과 값 전체를 가져와 주세요
USE pokemon;
SELECT *
FROM mypokemon;
  1. 포켓몬 테이블에서 모든 포켓몬들의 이름을 가져와 주세요
SELECT name
FROM mypokemon;
  1. 포켓몬 테이블에서 모든 포켓몬들의 이름과 키, 몸무게를 가져와 주세요
SELECT name, height, weight
FROM mypokemon;
  1. 포켓몬 테이블에서 포켓몬들의 키를 중복 제거하고 가져와 주세요
SELECT DISTINCT height
FROM mypokemon;
  1. 포켓몬 테이블에서 모든 포켓몬들의 공격력을 2배 해 'attack2'라는 별명으로 이름과 함께 가져와 주세요
SELECT attack*2 AS attack2
FROM mypokemon;
  1. 포켓몬 테이블에서 모든 포켓몬들의 이름을 '이름'이라는 한글 별명으로 가져와 주세요
SELECT name AS 이름
FROM mypokemon;
  1. 포켓몬 테이블에서 모든 포켓몬들의 공격력은 '공격력'이라는 한글 별명으로, 방어력은 '방어력'이라는 한글 별명으로 가져와 주세요
SELECT attack as 공격력, defense AS 방어력
FROM mypokemon;
  1. 현재 포켓몬 테이블의 키 컬럼은 m단위 입니다(1m = 100cm) 포켓몬 테이블에서 모든 포켓몬들의 키를 cm단위로 환산하여 'height(cm)'라는 별명으로 가져와 주세요.
SELECT height * 100 AS 'height(cm)'
FROM mypokemon;
  1. 포켓몬 테이블에서 첫번째 로우에 위치한 포켓몬 데이터만 컬럼 값 전체를 가져와 주세요
SELECT *
FROM mypokemon
LIMIT 1;
  1. 포켓몬 테이블에서 2개의 포켓몬 데이터만 이름은 '영문명'이라는 별명으로, 키는 '키(m)'라는 별명으로, 몸무게는 '몸무게(kg)'라는 별명으로 가져와 주세요
SELECT name AS 영문명, height AS '키(m)", weight AS '몸무게(kg)'
FROM mypokemon
LIMIT 2;
  1. 포켓몬 테이블에서 모든 포켓몬들의 이름과 능력치의 합을 가져오고, 이 때 능력치의 합은 'total'이라는 별명으로 가져와 주세요.
    조건 : 능력치의 합은 공격력, 방어력, 속도의 합을 의미
SELECT name, attack + defense + speed AS total
FROM mypokemon;
  1. 포켓몬 테이블에서 모든 포켓몬들의 BMI 지수를 구해서 'BMI'라는 별명으로 가져와 주세요. 이 때, 포켓몬을 구분0하기위해 이름도 함께 가져와 주세요.
    조건1. BMI지수 = 몸무게(kg) / (키(m))^2
    조건2. 포켓몬 테이블 데이터의 체중은 kg단위, 키는 m 단위 입니다
SELECT name, weight / height^2 AS BMI
FROM mypokemon;
profile
가보자가보자~

0개의 댓글