'23.11.24(금) 웹 풀 사이클 데브코스 TIL
MariaDB와 데이터베이스 기초학습
데이터베이스의 정의는
데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체이다.
데이터를 구조화하여 관리함으로써 데이터 중복을 막고, 빠른 데이터 연산을 가능하게 한다.
데이터를 구조적으로 저장해 조회,삽입,수정,삭제 등의 연산을 용이하게 하고
이를 별도의 플랫폼에서 관리하여 여러 서비스와 연결해 사용할 수 있다.
데이터베이스를 운영하고 관리하기 위해서 DBMS(DataBase Management System)의 개념을 이해할 필요가 있다.
DBMS 데이터베이스를 관리하고 운영하는 소프트웨어이다.
다양한 데이터가 저장되어있는 데이터베이스 여러 명의 사용자나 응용 프로그램과 공유하고 동시에 접근이 가능하게 한다.
대표적으로 Oracle, MySQL, MariaDB 등의 제품이 있으며, 이들은 모두 SQL 이라는 언어를 통해 이용할 수 있다.
SQL(Structured Query Language)은 뜻 그대로 하면 '구조화된 질의어'이다.
DB는 데이터를 구조화하여 저장하므로, 이 데이터의 생성, 조회, 수정 삭제 등의 연산을 요청하기 위해 구조화된 요청을 보내는 역할을 한다.
앞서 언급한 대표적인 DBMS들이 SQL이라는 언어를 통해 연산을 처리하지만, 각각의 제품에 따라 세부적인 용법의 차이가 존재한다. 하지만 대표적인 연산을 수행하는 방식은 동일하다.
위 질의어는 모두 동일하고, 구조나 용법에 있어 매치되는 개념이 많기 때문에, 한 제품의 질의어를 학습하면, 다른 제품의 것을 학습하는 데 어려움이 크지 않다고 한다.
우리는 MariaDB 라는 DBMS를 사용해 기초적인 연산을 수행해 볼 것이다.
필자는 Docker Container 환경으로 MariaDB를 설치해 사용했다.
DB는 기본적으로 데이터를 Table 형식으로 저장한다.
각 Column은 저장하려는 정보의 속성(분류)
각 Row 은 개별 데이터(레코드) 를 의미한다.
SHOW DATABASES;
- 현재 저장된 모든 DB를 보여준다.
CREATE DATABASE [DB이름];
- DB 공간을 생성한다.
USE [DB이름];
- 작업공간을 해당 DB로 이동한다.
처음 터미널에서 MariaDB 실행환경에 들어가면 커서가 (none)으로 아무 DB도 가리키지 않고 있는 상태이다.
CREATE DATABASE Tennis;
USE Tennis
두 명령어를 사용해 Tennis
라는 DB 공간을 만들어 작업공간을 이동해보자.
터미널의 커서가 Tennis
를 가리키고 있다.
이제 이 예시와 같은 테이블을 만들어 보겠다.
CREATE TABLE member
(
id INT,
name VARCHAR(30),
pwd VARCHAR(30),
);
위 명령어로 member
라는 테이블을 만들어,
정수 타입의 id
,
문자열 타입의 name
, pwd
속성을 만들었다.
INSERT INTO [테이블명] VALUES ([각 속성에 대한 값들])
; - 테이블에 데이터 한 행을 추가한다.
INSERT INTO member VALUES
(
'gameMaker',
'Gildong Hong',
'newPass3@'
);
위 방식으로 내부 요소만 바꾸어 세 개의 데이터를 입력해보자.
SELECT [컬럼명] FROM [테이블명];
테이블 내 저장된 정보 중 지정된 컬럼의 정보를 나열한다.
SELECT id, name, pwd FROM member;
위에서 삽입한 데이터를 확인해보면 의도한 결과대로 출력된다.
UPDATE [테이블명] SET [컬럼명] = [수정할 값] WHERE 조건;
UPDATE member SET pwd = 'ThisisPassword!@#' WHERE id = 'sodlfmag';
sodlfmag의 패스워드가 정상적으로 수정된 것을 확인할 수 있다.