[SQL]데이터베이스 다루기

Shy·2024년 1월 2일

MySQL

목록 보기
2/7

데이터 타입

이 외에도 무수한 종류의 데이터가 존재한다.

MySQL에서 사용할 수 있는 데이터 타입

MySQL에서 사용할 수 있는 주요 데이터 타입은 다음과 같다.

  1. 숫자형 데이터 타입
    • 정수형:
      • TINYINT: 매우 작은 정수 값을 저장한다.
      • SMALLINT: 작은 정수 값을 저장한다.
      • MEDIUMINT: 중간 크기의 정수 값을 저장한다.
      • INT 또는 INTEGER: 표준 정수 값을 저장한다.
      • BIGINT: 큰 정수 값을 저장한다.
    • 실수형:
      • FLOAT: 단정밀도 부동 소수점 숫자를 저장한다.
      • DOUBLE: 배정밀도 부동 소수점 숫자를 저장한다.
      • DECIMAL 또는 NUMERIC: 고정 소수점 숫자를 저장한다. 정확한 값을 필요로 하는 금융 계산에 유용하다.
  2. 날짜 및 시간 데이터 타입
    • DATE: 날짜를 'YYYY-MM-DD' 형식으로 저장한다.
    • TIME: 시간을 'HH:MM:SS' 형식으로 저장한다.
    • DATETIME: 날짜와 시간을 'YYYY-MM-DD HH:MM:SS' 형식으로 저장한다.
    • TIMESTAMP: 유닉스 타임스탬프로 날짜와 시간을 저장한다.
    • YEAR: 연도를 2자리 또는 4자리 숫자로 저장한다.
  3. 문자열 데이터 타입
    • CHAR: 고정 길이의 문자열을 저장한다.
    • VARCHAR: 가변 길이의 문자열을 저장한다.
    • BLOB: 이진 데이터를 저장하는 데 사용됩니다. TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB 등의 크기 변형이 있다.
    • TEXT: 텍스트 데이터를 저장한다. TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT 등의 크기 변형이 있다.
  4. 논리형 데이터 타입
    • BOOLEAN: 논리적인 값(TRUE 또는 FALSE)을 저장합니다. MySQL에서는 TINYINT(1)로 표현된다.
  5. 열거형 및 세트 데이터 타입
    • ENUM: 열거된 값 중 하나를 저장한다.
    • SET: 열거된 값들의 조합을 저장한다.

이러한 데이터 타입을 알아야 하는 이유는 다음과 같다.

데이터의 종류에 관한 설명은 다음과 같다.

기본적인 데이터 다루기

MySQL에서 데이터를 다루는 방법은 엑셀과 유사하다.

숫자형 데이터 기본 특징

문자형 데이터의 기본 특징

  • 문자형 데이터에는 반드시 " "또는 ' '와 같은 따옴표와 함께 쓰여야 한다.
  • 따옴표가 없으면 키워드나 함수, 데이터베이스/테이블/컬럼의 이름으로 인식 된다.

데이터간 타입 변화

숫자형, 문자형, 날짜형 데이터는 함수를 사용하여 서로 타입 변환이 가능하다.

테이블 만들고 변경하기

테이블

데이터베이스의 의미

  1. 여러 사람이 공유하고 사용할 목적으로 통합 관리되는 데이터 저장소
  2. 테이블을 저장해두는 저장소 = 스키마(Schema)
  3. 데이터베이스 관리 시스템(DBMS)을 통해 관리된다.

데이터베이스는 데이터베이스를 먼저 만든 후에, 특정 데이터베이스 내에 테이블을 생성하는 형식으로 만들어진다.

데이터베이스 생성

CREATE DATABASE [데이터베이스이름];
// [데이터베이스이름]의 데이터베이스를 생성
// 쿼리가 끝날 때는 항상 '명령을 마친다.'는 의미의 ; (세미콜론)을 꼭 붙혀야 한다.

데이터베이스 목록 보기

SHOW DATABASES;
// 현재 존재하는 모든 데이터베이스 목록 보기

데이터베이스 사용하기

USE [데이터베이스이름];
// [데이터베이스이름] 데이터베이스를 사용

테이블 만들기

CREATE TABLE [테이블 이름] (
	[컬럼이름] [데이터타입],
    [컬럼이름] [데이터타입],
... );

  • 컬럼(열): 데이터를 저장하기 위한 틀
    • 컬럼의 이름과 데이터 타입은 테이블을 만들 때 미리 정해진다.
    • 컬럼의 이름은 동일한 테이블 내에서 중복될 수 없다.
    • 테이블은 반드시 1개 이상의 컬럼을 가져야 한다.

테이블 이름 변경하기

새로운 컬럼 추가하기

ALTER TABLE [테이블 이름] ADD COLUMN [컬럼 이름] [데이터 타입];
ALTER TABLE customers ADD COLUMN age INT;

기존 컬럼 타입 변경하기

ALTER TABLE [테이블 이름] MODIFY COLUMN [컬럼 이름] [새로운 데이터 타입];
ALTER TABLE customers MODIFY COLUMN age FLOAT;

기존 컬럼 이름과 타입 변경하기

ALTER TABLE [테이블 이름]
CHANGE COLUMN [컬럼 이름] [새로운 컬럼 이름] [새로운 데이터 타입];

ALTER TABLE customers
CHANGE COLUMN age new_age FLOAT;

컬럼 지우기

ALTER TABLE [테이블 이름] DROP COLUMN [컬럼 이름];
ALTER TABLE customers DROP COLUMN new_age;

지우기

데이터베이스 지우기

DROP DATABASE [데이터베이스 이름];
// [데이터베이스 이름]을 지운다

테이블 지우기

DROP TABLE [테이블 이름];
// [테이블 이름]을 지운다.

테이블 값만 지우기

TRUNCATE TABLE [테이블 이름];
// [테이블 이름]을 지운다.

DROP과 TRUNCATE의 차이점

데이터베이스/테이블이 존재한다면 지우기

※ 만약 IF EXISTS 가 없이, 존재하지 않는 데이터베이스/테이블를 삭제한다면, ERROR가 발생한다.

DROP DATABASE IF EXISTS [데이터베이스 이름];
// [데이터베이스 이름] 데이터베이스가 존재한다면 지운다.

DROP TABLE IF EXISTS [테이블 이름];
// [테이블 이름] 테이블이 존재한다면 지운다.

데이터베이스 삽입/삭제/수정

데이터 하나 삽입하기

INSERT INTO [테이블 이름] ([컬럼1 이름], [컬럼2 이름], [컬럼3 이름]) VALUES ([컬럼1], [컬럼2], [컬럼3]);
// 컬럼이 3개라고 가정한 경우이므로, 컬럼이 더 많다면 추가로 작성한다.

INSERT INTO idol (name, age, group) VALUES (“제니”, 27, “블랙핑크”);

데이터 여러개 삽입하기

INSERT INTO [테이블 이름] ([컬럼1 이름], [컬럼2 이름], [컬럼3 이름])
VALUES ([컬럼1], [컬럼2], [컬럼3]), 
		([컬럼1], [컬럼2], [컬럼3]),
		...
		([컬럼1], [컬럼2], [컬럼3]);

데이터 삭제하기

DELETE FROM [테이블 이름] WHERE [조건 값];

데이터 수정하기

UPDATE [테이블 이름] SET[컬럼이름]=[새값] WHERE [조건 값];

데이터베이스, 테이블, 컬럼 이름 규칙

  1. 문자,숫자,_를사용한다.
  2. 이름에 쓰이는 문자는 주로 영문 소문자를 사용한다.
    • 한글도 사용은 가능하지만 인코딩 이슈로 주로 영문 사용
    • 보통 키워드나 함수명은 대문자, 사용자가 정의한 이름에는 소문자 사용
  3. 예약어는 사용할 수 없다.
    • 예약어:이미 키워드, 함수명 등의 문법적인 용도로 사용되고 있기 때문에 이름으로 사용할 수 없는 단어
  4. 단어와 단어 사이에는 빈칸 대신 _ 를사용한다.
  5. 문자로 시작한다.
    • 숫자, _ 로 시작하지 않는다.
  6. 데이터베이스의 이름은 중복될 수 없다.
    • 테이블 이름은 하나의 데이터베이스 내에서는 중복될 수 없다.
    • 컬럼 이름은 하나의 테이블 내에서는 중복될 수 없다.
profile
신입사원...

0개의 댓글