728x90

관계형 데이터베이스


관계형 데이터베이스란


- Key-Value의 관계를 테이블 형식으로 구성하여 데이터를 저장하는 데이터베이스

 

 

데이터베이스 구성


- 데이터베이스, 테이블로 구성

- 데이터베이스: 다수의 테이블

- 테이블: 필드(칼럼) + 레코드(로우)

 

[출처] http://www.tcpschool.com/mysql/mysql_intro_relationalDB

 

 

데이터베이스 설치


 

mysql 설치 

Server 1에서 작업


###mysql 설치###

# 충돌 방지를 위해 기존 파일 삭제
yum -y remove mariadb-libs

# Maria로 시작하는 모든 파일 설치(옛날 버전으로 설치)
yum -y localinstall Maria*

# 서비스 재시작(옛날 버전으로 설치했으므로 서비스 이름은 mysql)
systemctl restart mysql

# 설치가 제대로 되었는지 확인
chkconfig mysql on

###MariaDB 설치###

yum -y install mariadb mariadb-server
systemctl restart mariadb
systemctl enable mariadb

 

 

MariaDB 설치

Client 2에서 작업


yum install -y mariadb

 

* 에러 확인: Server1의 root 계정에서 원격 로그인이 허용되지 않음

 

 

* 해결: Server1의 mysql 설정 변경 필요

# user 테이블 사용
USE mysql;
USE user;

# user 테이블에서 user와 host 컬럼을 조회할 때 user 컬럼에서 null 값이 아닌 것만 출력

SELECT user,host FROM user WHERE user NOT LIKE '';


# 10.0.2.4가 접속할 수 있도록 허용
# % = 리눅스의 *와 같은 의미

GRANT ALL PRIVILEGES ON *.* TO test@'10.0.2.%' IDENTIFIED BY '1234';

 

Server 1에서 설정

 

Client 2에서 Server 1으로 원격 접속 확인

 

 

 

 

방화벽 설정 후 mysql 실행


# 방화벽 설정
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload

# mysql이 제대로 실행되는지 확인
mysql -u root -p

 

 

 

데이터베이스 설정


사용자 패스워드 설정


# root 사용자 패스워드 설정
mysqladmin -u root password '1234'

 

 

 

 

데이터베이스 관리


데이터 정의 언어 (DDL)

CREATE(생성), ALERT(수정), DROP(삭제)

 

- 데이터베이스 또는 테이블의 구조 정의


데이터베이스 조회

SHOW DATABASES;


# 데이터베이스 조회

SHOW DATABASES;

 

 

 

데이터베이스 생성

CREATE DATABSE [데이터베이스 이름];


# member_db 이름으로 데이터베이스 생성

CREATE DATABASE member_db;

 

 

 

데이터베이스 삭제

DROP DATABASE [데이터베이스 이름];


# test 이름의 데이터베이스 삭제

DROP DATABASE test;

 

 

 

데이터베이스 사용

USE [데이터베이스 이름];


# member_db 데이터베이스 사용

USE member_db;

 

 

 

테이블 생성

CREATE TABLE [테이블 이름];


CREATE TABLE member (
    -> id VARCHAR(12) NOT NULL PRIMARY KEY,			
    -> name NVARCHAR(5),
    -> age INT,
    -> address NVARCHAR(5));

 

member
id name age address
1~12 자리 문자열 1~5 문자열 숫자 한글

 

 

 

테이블 삭제

DROP TABLE [테이블 이름];


# member 테이블 삭제

DROP TABLE member;

 

테이블 구조 출력

EXPLAIN [테이블이름];


# member 테이블 구조 출력

EXPLAIN member;

 

 

데이터 조작 언어 (DML)

SELECT(조회), INSERT(삽입), UPDATE(수정), DELETE(삭제)

 

- 테이블에 존재하는 데이터를 조회, 삽입, 수정, 삭제


레코드 삽입

INSERT INTO [테이블 이름] [(필드 이름1, 필드 이름2, ...)] VALUES [(value1, value2, ...)];


# 테이블에 레코드 삽입

 

 

레코드 조회

SELECT [필드 이름1, 필드 이름2...] FROM [테이블 이름] [WHERE 조건];


# member 테이블의 모든 것을 조회
SELECT * FROM member;

# member 테이블에서 id의 값이 kim인 레코드 조회
SELECT * FROM member WHERE id = 'kim';

# id가 kim인 사람의 나이는?
SELECT age FROM member WHERE id = 'kim';

 

 

 

레코드 수정

UPDATE 테이블이름 SET 필드이름1=수정값, 필드이름2=수정값.... WHERE <필터링조건>;


# kim의 나이를 50으로 수정

UPDATE member SET age=50 WHERE id = 'kim';

 

 

레코드 삭제

DELETE FROM 테이블이름 WHERE <필터링 조건>;


# member 테이블에서 address 값이 seoul인 레코드 삭제

DELETE FROM member WHERE address = 'seoul';

728x90

+ Recent posts