Data/SQL

SQL 기초 _ 데이터/데이터베이스/테이블 이해하기

SE_TORY 2024. 4. 3. 16:45
728x90

안녕하세요!

이번주는 드디어 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 특징 *

쿼리의 가장 마지막에 위치함

만약 입력한 숫자가 전체 행 수보다 크면, 있는 것들만 가져옴

728x90