관계형 데이터베이스
관계형 데이터베이스란
- Key-Value의 관계를 테이블 형식으로 구성하여 데이터를 저장하는 데이터베이스
데이터베이스 구성
- 데이터베이스, 테이블로 구성
- 데이터베이스: 다수의 테이블
- 테이블: 필드(칼럼) + 레코드(로우)
데이터베이스 설치
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';
방화벽 설정 후 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';
'쿠버네티스 교육 > 강의 내용 정리' 카테고리의 다른 글
220518_5_리눅스 서비스_FTP, vsftp (0) | 2022.05.18 |
---|---|
220518_4_실습_리눅스 서비스_Apache 웹 서버-LAMP 구축, XE 설치 (0) | 2022.05.18 |
220518_2_리눅스 서비스_SCP (0) | 2022.05.18 |
220518_1_리눅스 서비스_SELinux (0) | 2022.05.18 |
220517_4_리눅스 서비스_DNS, 방화벽 (0) | 2022.05.17 |