안녕하세요!
이번주는 드디어 SQL 강의가 시작되었습니다! SQL은 데이터 분석가에게 있어서 필수적으로 필요한 Tool 인데요, 저처럼 처음 시작하는 분이라면 꼭 알아야하는 기본 개념을 소개해보려고 합니다 :)
데이터 : 컴퓨터가 처리할 수 있는 문자, 숫자, 소리, 그림 등의 형태로 된 정보
MySQL 데이터 타입
: MySQL 에서는 데이터를 저장하기 전에 저장 공간의 데이터 타입을 미리 정해줘야 함
정수형 | 소수점이 없는 숫자 데이터 |
실수형 | 소수점이 있는 숫자 데이터 |
문자형 | 텍스트로 구성된 문자열 데이터 |
날짜형 | 날짜와 시간 데이터 |
숫자형 데이터 타입
: 데이터 간 연산이 가능함
구분 | 데이터 타입 | 표현 가능한 숫자 범위 |
정수형 | TINYINT | -128 ~ 127 |
SMALLINT | -32,768 ~ 32,767 | |
MEDIUMINT | 약 -838백만 ~ 838백만 | |
INT | 약 -21억 ~ 21억 | |
BIGINT | 약 -900경 ~ 900경 | |
실수형 | FLOAT | 소수점 아래 7자리까지 표현 |
DOUBLE | 소수점 아래 15자리까지 표현 |
문자형 데이터 타입
: ' ' 또는 " " (따옴표)와 함께 써야 함
따옴표가 없는 문자는 키워드나 함수, 데이터베이스/테이블/컬럼의 이름으로 인식됨
데이터 타입 | 최대 바이트 수 | 특징 |
CHAR(n) | 255 | n을 1부터 255까지 지정 가능, 지정 안할 시 1 자동 입력 고정 길이로 문자열 저장 |
VARCHAR(n) | 65535 | n을 1부터 65535까지 지정 가능, 지정 안할 시 사용 불가 변동 길이로 문자열 저장 |
TINYTEXT | 255 | 255 바이트의 문자열까지 표현 가능 |
TEXT | 65535 | 65535 바이트의 문자열까지 표현 가능 |
MEDIUMTEXT | 약 1600만 | 약 1600백만 바이트의 문자열까지 표현 가능 |
LONGTEXT | 약 42억 | 약 42억 바이트의 문자열까지 표현 가능 |
날짜형 데이터 타입
데이터 타입 | 바이트 수 | 표현 가능 범위 |
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:599 ~ 838:59:59 |
YEAR | 1 | 1901 ~ 2155 |
테이블
: 데이터베이스에서 데이터를 형태를 정해 모아 놓은 저장공간
: 행과 열로 이루어진 데이터 표
데이터베이스
: 여러 사람이 공유하고 사용할 목적으로 통합 관리되는 데이터 저장소
: 테이블을 저장해두는 저장소 = 스키마 (Schema)
테이블과 데이터베이스의 생성 순서
: 보통 데이터베이스를 생성한 후에 그 안에 테이블을 생성함
기초 쿼리 문법
데이터베이스 만들기
CREATE DATABASE [데이터베이스 이름] ;
데이터베이스 목록 보기
SHOW DATABASES ;
데이터베이스 사용하기
USE [데이터베이스 이름] ;
테이블 만들기
CREATE TABLE [테이블 이름] ([컬럼이름] [데이터 타입], [컬럼이름] [데이터 타입] , ... ) ;
테이블 이름 변경하기
ALTER TABLE [테이블 이름] RENAME [새로운 테이블 이름] ;
테이블에 새로운 컬럼 추가하기
ALTER TABLE [테이블 이름] ADD COLUMN [컬럼 이름] [데이터 타입] ;
기존 컬럼 타입 변경하기
ALTER TABLE [테이블 이름] MODIFY COLUMN [컬럼 이름] [새로운 데이터 타입] ;
기존 컬럼 이름과 타입 변경하기
ALTER TABLE [테이블 이름] CHANGE COLUMN [컬럼 이름] [새로운 컬럼 이름] [새로운 데이터 타입] ;
컬럼 지우기
ALTER TABLE [테이블 이름] DROP COLUMN [컬럼 이름] ;
데이터베이스 지우기
DROP DATABASE [데이터베이스 이름] ;
DROP DATABASE IF EXISTS [데이터베이스 이름] ;
- 데이터베이스가 존재한다면 지우기 (데이터베이스가 없더라도 오류 안생김)
테이블 지우기
DROP TABLE [테이블 이름] ;
DROP TABLE IF EXISTS [테이블 이름] ;
- 테이블이 존재한다면 지우기 (테이블이 없더라도 오류 안생김)
테이블 값만 지우기
TRUNCATE TABLE [테이블 이름] ;
테이블에 데이터 하나 삽입하기
INSERT INTO [테이블이름]([컬럼1 이름], [컬럼2 이름], [컬럼3 이름])
VALUES ( [컬럼1 값], [컬럼2 값], [컬럼3 값]) ;
테이블에 데이터 여러개 삽입하기
INSERT INTO [테이블이름]([컬럼1 이름], [컬럼2 이름], [컬럼3 이름])
VALUES ( [컬럼1 값], [컬럼2 값], [컬럼3 값]), ( [컬럼1 값], [컬럼2 값], [컬럼3 값]), ..., ( [컬럼1 값], [컬럼2 값], [컬럼3 값]) ;
데이터 삭제하기
DELETE FROM [테이블 이름] WHERE [조건 값] ;
데이터 수정하기
UPDATE [테이블 이름] SET [컬럼 이름] = [새 값] WHERE [조건 값] ;
테이블에서 데이터 가져오기 (1개의 컬럼)
SELECT [컬럼 이름] FROM [테이블 이름] ;
테이블에서 데이터 가져오기 (여러개의 컬럼)
SELECT [컬럼 이름], [컬럼이름], ... , [컬럼 이름] FROM [테이블 이름] ;
테이블에서 데이터 가져오기 (전체 컬럼)
SELECT * FROM [테이블 이름] ;
데이터 일부만 가져오기
SELECT * FROM [테이블 이름] LIMIT [행의 수] ;
* LIMIT 특징 *
쿼리의 가장 마지막에 위치함
만약 입력한 숫자가 전체 행 수보다 크면, 있는 것들만 가져옴
'Data > SQL' 카테고리의 다른 글
SQL 기초_ 조건에 맞는 데이터 가져오기 / 데이터 그룹화/ 데이터 합치기 (0) | 2024.04.08 |
---|