[ 2-1. 데이터 종류 ]
○ 숫자형
(1) 정수형 : 소수점이 없는 숫자 데이터 (ex. 7)
데이터 타입 | 바이트 수 | 표현 가능한 숫자 범위 |
TINYINT | 1 | -128 ~ 127 |
SMALL | 2 | -32,768 ~ 32,767 |
MEDIUMINT | 3 | 약 -838백만 ~ 838백만 |
INT | 4 | 약 -21억 ~ 21억 |
BIGINT | 8 | 약 -900경 ~ 900경 |
(2) 실수형 : 소수점이 있는 숫자 데이터 (ex. 1.14)
데이터 타입 | 바이트 수 | 표현 가능한 숫자 범위 |
FLOAT | 4 | 소수점 아래 7자리까지 표현 |
DOUBLE | 8 | 소수점 아래 15자리까지 표현 |
○ 문자형 (ex. "ABC", "가나다라")
데이터 타입 | 최대 바이트 수 | 특징 |
CHAR(n) | 255 | 고정 길이로 문자열 저장 / n을 255까지 지정 가능 / 지정 안할 시 "1" 자동입력 |
VARCHAR(n) | 65535 | 변동 길이로 문자열 저장 / n을 1부터 65535까지 지정 가능 / 지정 안할 시 사용불가 |
○ 날짜형 (ex. "2021-12-15 01:02:03")
데이터 타입 | 바이트 수 | 표현 가능한 숫자 범위 |
DATE | 3 | 0000-00-00 ~ 9999-12-31 |
DATETIME | 3 | 0000-00-00 00:00:00 ~ 9999-12-31 23:59:59 |
TIME | 4 | -838:59:59 ~ 838:59:59 |
YEAR | 1 | 1901 ~ 2155 |
[ 2-2. 기본적인 데이터 다뤄보기 ]
○ MySQL에서 데이터를 다루는 방법은 '엑셀'과 유사
· ex. 성 | 이름 | CONCAT("디", "비빅")
디 비빅 디비빅
○ 문자형 데이터 기본 특징
· 문자형 데이터는 반드시 " " 또는 ' '(따옴표)와 함께 쓰여야함
· 따옴표가 없는 문자는 '키워드'나 '함수', 데이터베이스/테이블/컬럼의 '이름'으로 인식됨
○ 데이터 타입 변환
· 숫자형, 문자형, 날짜형 데이터는 '함수'를 사용하여 서로 '타입 변환'이 가능함`
/* 1-1. 숫자 → 문자 */
SELECT CAST(123 AS CHAR(5));
/* 1-2. 문자 → 숫자 */
SELECT CONVERT('1234', INT);
/* 1-3. 문자 → 날짜 */
SELECT DATE_FORMAT('20211225', '%Y-%m-%d')
[ 2-3. 테이블 만들고 변경하기 ]
○ 테이블
· 데이터베이스에서 데이터를 형태를 정해 모아 놓은 저장 공간
= 행과 열로 이루어진 데이터 표
○ 테이블 구성요소
구분 | 내용 |
컬럼(열) | · 컬럼의 이름과 데이터 타입은 테이블을 만들 때 미리 정해진다. · 컬럼의 이름은 동일한 테이블 내에서 중복될 수 없다. · 테이블은 반드시 1개 이상의 컬럼을 가져야 한다. |
값 | · 컬럼에 속한 실제 데이터 값 · 컬럼의 데이터 타입만을 값으로 가질 수 있다. |
로우(행) | · 하나의 로우는 하나의 관계된 데이터를 의미 (ex. 하나의 로우가 한 사람의 데이터) · 같은 테이블 안에서 로우는 항상 동일한 구조를 가진다. · 로우를 단위로 데이터를 삽입한다. |
○ 데이터베이스의 의미
· (넓은 의미) 여러 사람이 공유하고 사용할 목적으로 통합 관리되는 데이터 저장소
· (좁은 의미) 테이블을 저장해두는 저장소
○ 테이블과 데이터베이스의 생성 순서
· 보통의 경우, 데이터베이스를 생성한 후에 특정 데이터베이스 내에 테이블을 생성
○ 데이터베이스, 테이블, 컬럼 이름 정하기 규칙
1. 문자, 숫자, _를 사용
2. 이름에 쓰이는 문자는 주로 영문 소문자를 사용
· 한글도 사용은 가능하지만 인코딩 이슈로 주로 영문 사용
· 보통 키워드나 함수명은 대문자, 사용자가 정의한 이름에는 소문자 사용
3. 예약어는 사용할 수 없습니다.
· 예약어 : 이미 키워드, 함수명 등의 문법적인 용도로 사용되고 있기 때문에
이름으로 사용할 수 없는 단어
· 예약어 리스트
4. 단어와 단어 사이에는 빈칸 대신 _를 사용
5. 문자로 시작합니다.
· 숫자, _로 시작하지 않습니다.
6. 데이터베이스 이름은 중복될 수 없습니다.
○ 데이터베이스 생성 / 목록보기 / 사용
/* 1-1. 데이터베이스 생성 */
CREATE DATABASE [데이터베이스 이름];
ex) CREATE DATABASE pokemon;
/* 1-2. 데이터베이스 목록 보기 */
SHOW DATABASES;
/* 1-3. 데이터베이스 사용하기 */
USE DATABASE [데이터베이스 이름]
ex) USE DATABASE pokemon;
○ 테이블 생성 / 이름 변경
/* 1-1. 테이블 생성 */
CREATE TABLE [테이블 이름] (
[컬럼 이름] [데이터 타입],
[컬럼 이름] [데이터 타입]
);
ex) CREATE TABLE mypokemon (
number INT
name VARCHAR(20)
);
/* 1-2. 테이블 이름 변경 */
ALTER TABLE [테이블 이름] RENAME [새로운 테이블 이름];
ex) ALTER TABLE mypokemon RENAME yourpokemon;
○ 컬럼 변경 / 컬럼 삭제
/* 1-1. 새로운 컬럼 추가 */
ALTER TABLE [테이블 이름] ADD COLUMN [컬럼 이름] [데이터 타입];
ex) ALTER TABLE mypokemon ADD COLUMN age INT;
/* 1-2. 기존 컬럼 타입 변경하기 */
ALTER TABLE [테이블 이름] MODIFY COLUMN [컬럼 이름] [새로운 데이터 타입];
ex) ALTER TABLE mypokemon MODIFY COLUMN age FLOAT;
/* 1-3. 기존 컬럼 명칭·타입 변경하기 */
ALTER TABLE [테이블 이름] CHANGE COLUMN [컬럼 이름] [새로운 컬럼 이름] [새로운 데이터 타입];
ex) ALTER TABLE mypokemon CHANGE COLUMN age new_age FLOAT;
/* 1-4. 컬럼 지우기 */
ALTER TABLE [테이블 이름] DROP COLUMN [컬럼 이름];
ex) ALTER TABLE mypokemon DROP COLUMN new_age;
[ 2-4. 테이블 지우기 ]
○ 테이블 지우기(DROP-TRUNCATE)
/* 1-1. 데이터베이스 지우기 */
DROP DATABASE [데이터베이스 이름];
ex) DROP DATABASE pokemon;
/* 1-2. 테이블 지우기 */
DROP TABLE [테이블 이름];
ex) DROP TABLE mypokemon;
/* 1-3. 테이블 값만 지우기 */
TRUNCATE TABLE [테이블 이름];
ex) TRUNCATE TABLE mypokemon;
/* 1-4. 데이터베이스/테이블이 존재한다면 지우기 */
-- 데이터베이스 --
DROP DATABASE IF EXISTS [데이터베이스 이름];
ex) DROP DATABASE IF EXISTS pokmeon;
-- 테이블--
DROP TABLE IF EXISTS [테이블 이름];
ex) DROP TABLE IF EXISTS mypokemon;
[ 2-5. 데이터 삽입, 삭제, 수정하기(INSERT, DELETE, UPDATE) ]
○ 데이터 삽입(INSERT)
/* 1-1. 데이터 삽입 */
INSERT INTO [테이블 이름] ([컬럼1 이름], [컬럼2 이름], [컬럼3 이름])
VALUES ([컬럼1 값], [컬럼2 값], [컬럼3 값]),
([컬럼1 값], [컬럼2 값], [컬럼3 값]);
ex) INSERT INTO mypokemon (number, name, age)
VALUES (1, "pikachu", 10),
(2, "raichu", 20);
○ 데이터 삭제(DELETE)
/* 1-1. 데이터 삭제 */
DELETE FROM [테이블 이름]
WHERE [조건값]
ex) DELETE FROM mypokemon
WHERE number = 1;
○ 데이터 수정(UPDATE)
/* 1-1. 데이터 수정 */
UPDATE [테이블 이름]
SET [컬럼 이름] = [새 값]
WHERE [조건값];
ex) UPDATE mypokmeon
SET number = 999
WHERE number = 1;
[ 2-6. (실습) 데이터를 만들고 데이터를 넣어보자(create, insert) ]
< MISSION >
'포켓몬'(poketmon) 데이터베이스와 '나의 포켓몬'(mypoketmon)테이블을 만들고,
캐터피, 피카츄, 이브이의 포켓몬 번호, 영문 이름, 타입 데이터를 넣어주세요.
· STEP1. 포켓몬 데이터베이스를 만드시오. (데이터베이스 이름 : poketmon)
· STEP2. 포켓몬 데이터베이스 안에 나의 포켓몬 테이블을 만들어 주세요. (테이블 이름 : mypoketmon)
이 때, 컬럼은 (1)포켓몬 번호, (2)포켓몬 영문 이름, (3)포켓몬 타입, 총 3가지로 하고,
이름과 데이터 타입을 지정해 주세요.
· STEP3. 포켓몬 테이블 안에 포켓몬 데잍를 각각의 로우로 넣어주세요.
[ 2-7. (실습) 테이블을 변경하고 지워보자(ALTER, DROP) ]
< MISSION 1 >
'포켓몬'(poketmon) 데이터베이스 안에 있는 '나의 포켓몬'(mypoketmon)테이블이
아래와 같이 될 수 있게 변경해 주세요.
※ 테이블을 새로 생성하지 말고, 기존의 테이블에서 변경
· STEP1.'mypokemon' 테이블의 이름을 'myoldpokemon'으로 변경해 주세요.
· STEP2. 'myoldpokemon' 테이블의 'name' 컬럼의 이름을 'eng_nm'으로 변경해 주세요.
< MISSION 2 >
'포켓몬'(poketmon) 데이터베이스 안에 있는 'myoldpokemon' 테이블은 값만 지우고,
'mynewpokemon' 테이블은 전부 지워 주세요.
· STEP1. 'pokemon' 데이터베이스 안에 있는 'myoldpokemon' 테이블은 값만 지우기
· STEP2. 'pokemon' 데이터베이스 안에 있는 'myoldpokemon' 테이블 전체 지우기
· STEP3. 'pokemon' 데이터베이스 지우기 및 조회
'📒 교육 및 공부 > [교육] SQL 데이터분석 첫걸음' 카테고리의 다른 글
[SQL 데이터분석 첫걸음] Day06. 데이터 그룹화하기 (0) | 2023.12.14 |
---|---|
[SQL 데이터분석 첫걸음] Day05. 원하는 데이터 만들기 (0) | 2023.12.04 |
[SQL 데이터분석 첫걸음] Day04. 조건에 맞는 데이터 가져오기 (1) | 2023.11.25 |
[SQL 데이터분석 첫걸음] Day03. 데이터 가져오기 (1) | 2023.11.21 |
[SQL 데이터분석 첫걸음] Day01. 오리엔테이션 (0) | 2023.11.09 |