데이터의 저장소.
데이터베이스를 운영하고 관리하는 소프트웨어.
계층형, 망형, 관계형 DBMS 중 대부분의 DBMS가 테이블로 구성된 관계형 DBMS(RDMBS) 형태로 사용됨.
구조화된 질의 언어라는 뜻으로 관계형 데이터베이스에서 사용되는 언어.
표준 SQL을 배우면 대부분의 DBMS를 사용할 수 있음.
DBMS | 제작사 | 작동 운영체제 | 기타 | |
MySQL | Oracle | 관계형 데이터베이스 관리 시스템(RDMS) Unix, Linux, Windows, Mac |
오픈 소스(무료), 상용 | |
◦ 대규모 DB일 경우 시간이 많이 소요 ◦ 사용자 관리 시스템 존재 ◦ 쉽게 확장 가능 ◦ 내장된 보안 기능 존재 |
◦ 강력한 보안 및 인증 기능이 필요한 경우 ◦ 다중 사용자와 다중 스레드 지원 |
|||
MariaDB | MariaDB | 관계형 데이터베이스 관리 시스템(RDBMS) Unix, Linux, Windows |
오픈 소스(무료), MySQL 초기 개발자들이 독립해서 만듦 |
|
◦ MySQL에 비해 애플리케이션 부분 속도가 약 4~5천 배 빠르고, 성능면에선 70% 향상을 보임 | ◦ MySQL과 동일한 소스 코드를 기반 |
|||
PostgreSQL | PostgreSQL | 오픈 소스 객체-관계형 데이터베이스 시스템 (ORDBMS) Unix, Linux, Windows, Mac |
오픈 소스(무료) | |
◦ 다양한 데이터베이스 객체를 사용자가 임의로 만들 수 있는 기능을 SQL 차원에서 제공 ◦ 테이블 상속 기능을 이용해 하위 테이블 생성 가능 |
◦ 상용 RDBMS급의 기능을 제공 ◦ 기본적인 CRUD 성능이 경쟁 DB에 비해 좋지 않음. |
|||
Oracle | Oracle | 관계형 데이터베이스 관리 시스템(RDBMS) Unix, Linux, Windows |
상용 시장 점유율 1위 | |
◦ 대량의 정보관리를 할 때 타 DBMS에 비해 좋은 성능을 보임. ◦ 오라클 자체 SQL 쿼리를 사용해 표준 형식과 약간 다름 |
◦ 기업용 (비IT업종) 으로 주로 사용 |
|||
SQL Server | Microsoft | Windows | 주로 중/대형급 시장에서 사용 | |
MS-SQL | Microsoft | 관계형 데이터베이스 관리 시스템(RDBMS) | ||
◦ 데이터베이스 관리 시스템 툴(서버 관리 스튜디오)제공 ◦ 모든 버전의 Windows에서 문제없이 잘 작동됨 ◦ 중앙 집중식 테이버 베이스 제어로 통신 누락, 오류 발◦ 생 최소화 ◦ .Net 언어 구현에만 초점을 맞춰 설계됨 |
◦ 분산된 기업환경에서의 집중된 서버 관리 도구 제공 | |||
Redis | (Remote Dictionary Server) 모든 데이터를 메모리로 불러와서 처리하는 메모리 기반 DBMS |
메인프레임 시장 점유율 1위 | ||
◦ Key-Value 구조의 비정형 데이터를 저장하고 관리 ◦ 비 관계형 데이터베이스 관리 시스템 ◦메모리 기반이기에 속도가 빠르고 간편 ◦문자열, 리스트, 해시, 셋, 정렬된 셋과 같은 다양한 자료구조의 지원 |
최고의 성능이 필요한 웹, 모바일, 게임, 광고 기술 및 IoT 애플리케이션에서 널리 사용 |
|||
MongoDB | 크로스 플랫폼 도큐먼트 지향 데이터베이스 시스템 |
|||
◦ ACID 대신 BASE를 택해 성능과 가용성을 우선시함 ◦ 모든 데이터가 JSON 형태로 저장, 스키마가 없음 ◦ 다양한 인덱싱 제공 ◦ 일관성이 매우 중요한 작업에는 사용하기 힘들다 |
NoSQL 데이터베이스 | |||
SQLite | SQLite | Android, iOS | 모바일 전용, 오픈 소스(무료) | |
◦ 복사가 쉬움, 사용자 관리 기능X ◦ 작은 데이터 베이스에 적합 ◦ 성능 최적화 어려움 ◦ 쉽게 구성 설정 가능 |
◦ 디스크에서 직접 읽고 쓸 필요가 있는 경우◦ 기본 개발 및 테스트 |
MySQL
숫자 ( NUMERIC) | |||||
자료형 | 한국어 | 범위 | 바이트 | 크기 | |
signed | unsinged | ||||
TINYINT | 아주 작은 정수 | -128 ~ 127 | 0 ~ 255 | 1 바이트 | 21×8=28=256 |
SMALLINT | 작은 정수 | -32768 ~ 32767 | 0 ~ 65535 | 2 바이트 | 22×8=216=65536 |
MEDIUMINT | 중간 정수 | -8388608 ~ 8388607 | 0 ~ 16777215 | 3 바이트 | 23×8=224=16777216 (약 1600만) |
INT | 정수 | -2147483648 ~ 2147483647 | 0 ~ 4294967295 | 4 바이트 | 24×8=232=4294967296 (약 40억) |
BIGINT | 큰 정수 | -9223372036854775808 ~ 9223372036854775807 |
0 ~ 18446744073709551615 | 8 바이트 | 28×8=264 =18446744073709551616 (약 1800경) |
DECIMAL | 고정소수점 수 | 전체자리수(precision)와 소수점자리수(scale)를 가짐
|
가변 | 최대 65자리(precision) 수 | |
FLOAT | 유동소수점 수 | -3.402823466×1038 ~ 3.402823466×1038 | 4 바이트 | 유효숫자 10자리 | |
DOUBLE | 유동소수점 수 | -1.7976931348623157×10308 ~ 1.7976931348623157×10308 | 8 바이트 | 유효숫자 17자리 | |
BIT | 비트 | · | 가변 | 최대 64비트 | |
REAL | 실수 | DOUBLE이 적용됨 | |||
BOOL BOOLEAN |
불리언 | TINYINT(1)이 적용됨 | |||
SERIAL | 시리얼 | BIGINT(20)이 적용됨 |
날짜와 시간 (DATE & TIME) | |
자료형 | 범위 |
DATE | 0000-00-00 ~ 9999-12-31 |
DATETIME | 0000-00-00 00:00:00 ~ 9999-12-31 23:59:59 |
TIMESTAMP | 1970-01-01 00:00:00 이후로 지난 초 |
TIME | -838:59:59 ~ 838:59:59 |
YEAR | 1901 ~ 2155 |
문자열 (STRING) | |
자료형 | 크기 |
CHAR | |
VARCHAR | |
TINYTEXT | 255 바이트 (28-1) |
TEXT | 64 KiB = 65,535 바이트 (216-1) |
MEDIUMTEXT | 16 MiB = 16,777,215 바이트 (224-1) |
LONGTEXT | 4 GiB = 4,294,967,295 바이트 (232-1) |
BINARY | |
VARBINARY | |
TINYBLOB | |
MEDIUMBLOB | |
BLOB | 64KiB |
LONGBLOB | 8,192KiB |
ENUM | |
SET |
자료형 |
GEOMETRY |
POINT |
LINESTRING |
POLYGON |
MULTIPOINT |
MULTILINESTRING |
ULTIPOLYGON |
GEOMETRYCOLLE |
데이터베이스 생성
CREATE DATABASE DB_NAME;
CREATE DATABASE db;
데이터베이스 선택
USE DATABASE DB_NAME;
USE DATABASE db;
데이터베이스 삭제
DROP DATABASE DB_NAME;
DROP DATABASE db;
테이블 생성
CREATE TABLE TABLE_NAME;
CREATE TABLE tb;
테이블 생성
CREATE TABLE TABLE_NAME;
create table items
(
id bigint auto_increment primary key comment 'ID', --자동으로 1씩 증가 설정, PK
item_token varchar(255) not null comment 'item_token', -- null허용 하지 않음
partner_id bigint not null comment '파트너 ID',
item_name varchar(255) not null comment '상품명',
item_price int(11) not null comment '상품 가격',
status varchar(30) not null default 'PREPARE' comment '상태',
deleted_at datetime(6) null comment '삭제 일시', -- null허용
created_at datetime(6) not null comment '생성 일시',
updated_at datetime(6) null comment '수정 일시'
) comment 'items' charset = utf8mb4; --comment, charset 설정
create index item_idx01 on items (item_token); --index 설정
create index item_idx02 on items (partner_id);
create index item_idx03 on items (created_at);
create index item_idx04 on items (updated_at);
create index item_idx05 on items (deleted_at);
테이블 확인
DESC TABLE_NAME;
DESC tb;
테이블 컬럼 추가/삭제
ALTER TABLE TABLE_NAME;
alter table item_options
add item_option_name varchar(30) not null comment '옵션명 (빨강, 파랑, XL, L)'; -- 칼럼추가
drop item_option_name varchar(30) not null comment '옵션명 (빨강, 파랑, XL, L)'; --칼럼삭제
change item_option_name item_option_name char(60) not null comment '옵션명 (빨강, 파랑, XL, L)'; --새자료형
add constraint item_options_item_option_groups__fk
foreign key (id) references item_option_groups (`id`); -- 외래키 추가
다른 DB의 자료형과 기본 쿼리는 추후에;;;
참고
https://zetawiki.com/wiki/MySQL_%EC%9E%90%EB%A3%8C%ED%98%95
MySQL 자료형 - 제타위키
다음 문자열 포함...
zetawiki.com
댓글 영역