728x90

1. 데이터베이스의 데이터 유형

데이터 유형은 테이블에 저장할 데이터의 형식과 속성을 정의합니다. 잘못된 유형의 데이터를 삽입하려고 하면 데이터베이스는 오류를 발생시킵니다.

데이터 유형의 특징

  1. 숫자형:
    • 정수와 실수 데이터를 저장.
    • 예: NUMERIC, DECIMAL, SMALLINT, BIGINT, FLOAT, NUMBER.
  2. 문자형:
    • 텍스트 데이터를 저장.
    • 예: CHAR, VARCHAR, VARCHAR2.
  3. 날짜/시간형:
    • 날짜와 시간 데이터를 저장.
    • 예: DATE, DATETIME, TIMESTAMP.
  4. 기타:
    • 이진 데이터나 특수 데이터를 저장.
    • 예: BLOB, CLOB, JSON.

2. 주요 데이터 유형 설명

데이터 유형설명

CHAR(s) - 고정 길이 문자열
- 길이가 부족하면 공백으로 채움
- 최대 길이: Oracle 2000바이트, SQL Server 8000바이트
VARCHAR(2) - 가변 길이 문자열
- 실제 데이터 크기만큼 저장
- 최대 길이: Oracle 4000바이트, SQL Server 8000바이트
NUMERIC - 정수, 실수와 같은 숫자 데이터
- Oracle에서는 NUMBER로 표현
- 예: NUMBER(8, 2) (정수 6자리, 소수점 2자리)
DATE - 날짜와 시간 데이터
- Oracle: 1초 단위 관리
- SQL Server: 3.33밀리초 단위 관리

3. CHAR와 VARCHAR (VARCHAR2)의 비교

1) 저장 방식

  • CHAR:
    • 고정 길이 문자열.
    • 선언된 길이에 미달하는 데이터는 공백으로 채워짐.
    • 예: CHAR(5)에 'A'를 저장하면 실제 데이터는 'A '(공백 포함).
    • 적합한 경우: 고정 길이 데이터(예: 사번, 우편번호).
  • VARCHAR (또는 VARCHAR2):
    • 가변 길이 문자열.
    • 선언된 길이에 미달해도 공백을 추가하지 않음.
    • 예: VARCHAR(5)에 'A'를 저장하면 실제 데이터는 'A'.
    • 적합한 경우: 길이가 변할 수 있는 데이터(예: 이름, 주소).

2) 비교 방식

  • CHAR:
    • 공백을 포함하여 비교.
    • 예: 'AA'와 'AA '는 동일('AA ' == 'AA ').
  • VARCHAR:
    • 공백을 다른 문자로 간주하여 비교.
    • 예: 'AA'와 'AA '는 다름.

3) 저장 공간 효율성

  • CHAR:
    • 선언된 길이만큼 공간을 차지.
    • 길이가 고정된 데이터에 적합.
  • VARCHAR:
    • 데이터의 실제 길이만큼 공간을 사용.
    • 저장 공간 효율성이 높음.

4. 사용 사례

데이터 유형적합한 데이터

CHAR - 고정 길이 데이터 (사번, 우편번호, 주민등록번호 등)
VARCHAR - 가변 길이 데이터 (이름, 주소, 이메일 등)

5. 예제 코드

1) CHAR

CREATE TABLE fixed_data (
    id CHAR(10),  -- 고정 길이 10
    code CHAR(5)  -- 고정 길이 5
);

2) VARCHAR

CREATE TABLE variable_data (
    name VARCHAR(50),  -- 최대 50자
    address VARCHAR(100)  -- 최대 100자
);

3) 데이터 비교

-- CHAR 비교
SELECT * FROM fixed_data WHERE id = '12345    '; -- 공백 포함해 동일하게 판단

-- VARCHAR 비교
SELECT * FROM variable_data WHERE name = 'John '; -- 공백 포함 시 다른 값으로 판단

6. 데이터 유형 선택 시 고려사항

  1. 데이터 길이:
    • 고정 길이 → CHAR.
    • 가변 길이 → VARCHAR.
  2. 저장 공간:
    • 저장 공간 최적화가 필요하면 VARCHAR 추천.
  3. 데이터 비교:
    • 공백 무시 → CHAR.
    • 공백 고려 → VARCHAR.

요약

  • CHAR: 고정 길이 문자열, 저장 공간 낭비 가능, 공백 포함 비교.
  • VARCHAR: 가변 길이 문자열, 저장 공간 효율적, 공백은 다른 문자로 취급.
  • 데이터의 특성에 따라 적합한 유형을 선택하는 것이 중요합니다.
728x90
728x90

1. MySQL Monitor란?

  • 정의:
    MySQL 서버에 기본적으로 제공되는 명령어 기반 프로그램으로, 데이터베이스 관리 및 명령 실행에 사용됩니다.
  • 접속 방법:
    명령줄에서 mysql 명령어를 사용하여 MySQL 서버에 연결.

2. MySQL 접속 명령어

mysql -u[사용자 이름] -p[비밀번호]

예시:

mysql -uroot -p
비밀번호 입력: 1234

호스트와 포트 지정:

mysql -h[호스트 주소] -P[포트 번호] -u[사용자 이름] -p[비밀번호]

3. 데이터베이스 관리

a. 데이터베이스 생성

CREATE DATABASE music CHARACTER SET utf8 COLLATE utf8_general_ci;
  • music: 생성할 데이터베이스 이름.
  • CHARACTER SET utf8: UTF-8 인코딩 설정.
  • COLLATE utf8_general_ci: 대소문자를 구분하지 않는 일반적인 정렬 설정.

b. 데이터베이스 선택

USE music;

4. 테이블 관리

a. 테이블 생성

CREATE TABLE `favorite_music` (
    `title` varchar(255) NOT NULL,
    `musician` varchar(20) NOT NULL,
    `duration` varchar(20) NOT NULL,
    `album` varchar(30) NOT NULL
) ENGINE=innodb;
  • title: 곡 제목 (최대 255자).
  • musician: 가수 이름 (최대 20자).
  • duration: 곡 길이 (최대 20자).
  • album: 앨범 이름 (최대 30자).
  • ENGINE=innodb: 테이블의 스토리지 엔진 설정.

b. 테이블에 데이터 추가

INSERT INTO favorite_music (`title`, `musician`, `duration`, `album`) 
VALUES ('Chasing Pavements', '아델', '3:30', '19');
  • INSERT INTO: 데이터를 추가.
  • VALUES: 열에 추가할 값 설정.

c. 데이터 조회

SELECT * FROM favorite_music;
  • 모든 데이터를 조회.

5. MySQL 종료

  • 명령어:
exit;
  • 단축키:
    • Ctrl + C: MySQL Monitor 종료.

6. 유용한 참고 사항

  • MySQL 명령어는 대소문자를 구분하지 않지만, 관례적으로 SQL 키워드는 대문자로 작성.
  • 테이블 및 데이터베이스 이름은 소문자로 작성하는 것이 일반적.
  • 에러가 발생할 경우 세미콜론(;) 누락 여부 확인.

예제 코드

-- 데이터베이스 생성
CREATE DATABASE music CHARACTER SET utf8 COLLATE utf8_general_ci;

-- 데이터베이스 선택
USE music;

-- 테이블 생성
CREATE TABLE `favorite_music` (
    `title` varchar(255) NOT NULL,
    `musician` varchar(20) NOT NULL,
    `duration` varchar(20) NOT NULL,
    `album` varchar(30) NOT NULL
) ENGINE=innodb;

-- 데이터 삽입
INSERT INTO favorite_music (`title`, `musician`, `duration`, `album`) 
VALUES ('Chasing Pavements', '아델', '3:30', '19');

-- 데이터 조회
SELECT * FROM favorite_music;

-- MySQL 종료
EXIT;
728x90
728x90

1. 데이터베이스란?

  • 정의:
    데이터베이스는 구조화된 데이터 저장소로, 정보를 저장, 관리, 수정, 삭제할 수 있는 어플리케이션.
    • : 엑셀 파일은 간단한 데이터베이스로 볼 수 있음.
  • 특징:
    • 방대한 데이터를 체계적이고 간편하게 분류 가능.
    • 데이터를 효율적으로 저장하고 접근 가능.

2. 데이터베이스의 구성 요소

  1. 데이터베이스 서버:
    • 데이터를 저장, 관리, 수정, 삭제하는 역할.
  2. 데이터베이스 클라이언트:
    • 서버에 요청을 보내 데이터를 검색하거나 명령 실행.
    • : 웹브라우저(크롬, 인터넷 익스플로러)와 웹서버의 관계와 유사.

3. 데이터베이스의 구조

  • 데이터베이스:
    • 연관된 테이블들을 모아둔 데이터 저장 공간.
  • 테이블 구조:
    • Column(열): 데이터의 성격과 타입을 정의.
    • Row(행): 연관된 데이터의 세트.
    • 필드(Field): 행과 열의 교차점.
    • 레코드(Record): 필드에 담긴 구체적인 데이터.

4. 데이터베이스의 종류

a. 관계형 데이터베이스 (RDBMS)

  • 특징:
    • 데이터를 테이블 형식으로 저장.
    • 데이터 간 관계를 명확히 정의.
    • SQL(Structured Query Language)을 사용하여 데이터 관리.
  • :
    • MySQL, Oracle, Microsoft SQL Server (MSSQL).

b. NoSQL 데이터베이스

  • 특징:
    • 비정형 또는 방대한 데이터를 처리하는 데 적합.
    • 관계형 모델이 아닌 데이터 구조 사용 (문서, 키-값, 그래프 등).
  • :
    • MongoDB, Cassandra, Redis.

5. 관계형 데이터베이스 vs NoSQL

특징관계형 데이터베이스 (RDBMS)NoSQL

구조 테이블 (행과 열) 문서, 키-값, 그래프 등
언어 SQL NoSQL 전용 API
유연성 고정된 스키마 동적 스키마
확장성 수직적 확장 수평적 확장
사용 사례 전통적인 데이터 처리 빅데이터, 실시간 분석

6. 데이터베이스 활용 사례

  1. 웹 애플리케이션:
    • 사용자 정보, 게시글, 상품 정보 등 저장.
  2. 빅데이터 분석:
    • 소셜 네트워크(Facebook, Twitter) 데이터를 NoSQL로 처리.
  3. 금융 및 의료:
    • 관계형 데이터베이스를 활용해 거래 기록, 환자 데이터를 관리.

7. 데이터베이스 관리의 주요 작업

  1. CRUD 작업:
    • Create: 데이터 생성.
    • Read: 데이터 조회.
    • Update: 데이터 수정.
    • Delete: 데이터 삭제.
  2. 데이터 정의:
    • 테이블 생성 및 스키마 정의.
  3. 백업 및 복구:
    • 데이터 손실 방지를 위한 백업 작업.

8. 데이터베이스 용어 정리

  • Column (열):
    • 데이터의 속성 또는 타입.
    • 예: 이름, 나이, 주소.
  • Row (행):
    • 하나의 데이터 세트.
    • 예: 특정 사람의 이름과 나이.
  • Field (필드):
    • 행과 열의 교차점에서 값을 저장.
    • 예: 이름-홍길동.
  • Record (레코드):
    • 행에 저장된 구체적인 데이터.
    • 예: 홍길동, 25세, 서울.

요약

  • 데이터베이스는 방대한 데이터를 효율적으로 저장, 관리, 검색하는 도구.
  • 관계형 데이터베이스(RDBMS)는 SQL 기반, NoSQL은 비정형 데이터를 처리.
  • 데이터베이스는 테이블(Column, Row, Field)로 구성되어 데이터를 구조적으로 저장.
  • 웹 애플리케이션, 빅데이터 분석, 금융 등 다양한 분야에서 활용.
728x90

+ Recent posts