-
dbms란
- DatabaseManagementSystem
- Mysql, MariaDB, Oracle, Postgres, MongoDB, Redis 등
- 관계형데이터베이스(RDB)
- Mysql, Oracle, MariaDB, Postgres
- 서로 관계를 갖는 데이터들의 집합
- 테이블, 행, 열 등의 구조로 데이터가 구조화
- 비관계형데이터베이스(NoSQL)
-
MariaDB

- MariaDB는 관계형 데이터 베이스
- MariaDB는 MySQL의 포크로 2009년에 시작되었고, MySQL의 기본적인 특성 및 구조를 그대로 유지하면서 일부 차이점과 추가 기능을 포함
- MariaDB의 특징
- MariaDB는 완전한 오픈소스
- 뛰어난 성능 및 최적화
- 아직까진 높은 점유율은 아니지만, mysql의 오라클 인수 이후 비 오픈소스화 됨에 따라 mysql의 자리를 대체할것으로 예상
-
SQL문
- SQL문이란 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 조회, 삽입, 갱신, 삭제하기 위해 사용되는 프로그래밍 언어
- CRUD
- Create, Read, Update, Delete의 약어
- 데이터베이스에 생성, 조회, 수정, 삭제를 의미
- SQL 구문도 위의 목적에 맞게 크게 세 가지로 구분
- DDL
- Data Definition Language
- 데이터베이스(스키마)나 테이블 등을 생성, 삭제하거나 그 구조를 변경
- CREATE, ALTER, DROP
- DML
- Data Manipulation Language
- 데이터베이스에 저장된 데이터를 처리하거나 조회
- INSERT, UPDATE, DELETE, SELECT 등
- DCL
- Data Control Language
- 사용자 권한 부여 등 사용자관리 SQL문
- GRANT, REVOKE 등
-
데이터베이스

-
테이블

- 열(column)
- 열은 필드(field) 또는 속성(attribute)
- 행(row)
- 값(value)
- 기본키(key)
- 한 행의 식별자로 이용되는 열
- 테이블에 저장된 레코드를 고유하게 식별하는 키를 기본 키(primary key)
- 외래 키(foreign key)
- 외래키는 두 테이블을 서로 연결하는 데 사용되는 키
-
데이터베이스 구축 실습
- 게시판 데이터 베이스 구축 실습
- mariaDB서버 설치
- mariadb접속(터미널)
- mariadb -u root -p 엔터
- 비밀번호 입력
- 게시판(board) 데이터베이스(스키마)를 생성
- 스키마 안에 글쓴이(author) 테이블, 글목록(post)테이블 생성
- author테이블
- author테이블에는 id, 회원이름(name), email, password 등의 정보가 있을것
- post 테이블
- post 테이블에는 글번호(id), 글제목(title), 글내용(contents), 저자(author_id) 등의 정보가 필요할것
-
mariaDB 및 workbench 설치
- mariaDB 설치
- mariaDB window download 검색
- 만약 도커로 실행한다면
- docker run --name board_mariadb-e MYSQL_ROOT_PASSWORD=test1234 -d -p 3300:3306 mariadb:latest
- UTF-8설정
- 조회시
- SHOW VARIABLES LIKE 'character_set_server';
- 추후 변경시
- ALTER DATABASE [DB명] DEFAULT CHARACTER SET = utf8mb4;
- mb4를 통해 이모티콘등의 더 많은 문자체계 저장 가능
- GUI Tool 설치
- Workbench
- DBeaver
- MariaDB, MySQL을 포함한 다양한 DBMS를 지원하는 범용 데이터베이스 관리 도구
- DataGrip
-
데이터베이스(스키마) 생성
- 데이터베이스 생성
- 데이터베이스 삭제
- 데이터베이스의 선택
- 데이터베이스 생성 후 확인
-
테이블 생성 구조

- 작가 테이블
- id(int, pk), name(varchar255), email(varchar255), password(varchar255)
- 글목록 테이블
- id(int, pk), title(varchar255), content(varchar255), author_id(int)
- author_id: author테이블의 id fk
-
데이터베이스, 테이블 생성
- MariaDB에서 명령문은 대소문자를 구분하지 않으나, 대문자가 관례
- 테이블명, 컬럼명은 소문자가 관례
- 테이블명은 대소문자를 구분
- create database board;
- create table author(id INT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255), password VARCHAR(255));
- primary key를 걸게되는 컬럼에 대해서는 unique, not null 제약조건 부여
- create table posts(id INT, title VARCHAR(30), contents VARCHAR(255), author_id INT, PRIMARY KEY (id), FOREIGN KEY (author_id) REFERENCES author(id));
- 외래키가 설정되면, post테이블 데이터의 생성, 수정에 대해 제약이 발생
- author에 없는 데이터는 post에 생성불가
- author가 삭제될때 post에 데이터가 남아있으면 author 삭제(수정 또한) 불가
-
테이블,컬럼 정보조회
-
DDL - CREATE
-
DDL – ALTER
-
DDL – DROP
-
DML - INSERT
-
DML - UPDATE
-
DML - DELETE
-
DML - SELECT
-
타입(data type) - 숫자
-
비교연산자