컬쥐네 다락방

리눅스 | 데이터 베이스 본문

클라우드/리눅스

리눅스 | 데이터 베이스

코딩하는 갱얼쥐 2022. 3. 11. 16:29

데이터 베이스 

데이터를 효율적으로 저장/관리하기 위해 사용된다.

1950년대 미국에서 처음 사용된 용어이다.

데이터 베이스는 계층형, 관계형, NoSQL로 나뉜다.

효율성을 위해 구조화 및 중복을 제거한다.

 

DB의 특징

실시간 접근성

지속적인 변화

동시 공유

내용에 대한 참조

데이터 논리적 독립성

 

DB 용어 설명

DB : 데이터 베이스

DBMS : 데이터 베이스 관리 시스템

DBA : 데이터 베이스 관리자

테이블 : 데이터가 저장된 객체

컬럼 : 테이블에서 데이터들의 속성이 같은 값

행 : 특정 테이블에서 의미있는 하나의 데이터 집합

필드 : 각각의 데이터 하나를 의미

레코드 : 여러 필드의 조합을 의미

 

DB 설치 및 설정

패키지 설치

# yum -y install mariadb-server 혹은 mariadb, mariadb-client

서비스 활성화

# systemctl start mariadb

방화벽 설정

# firewall-cmd --add-service=mysql

기본 보안 설정

mysql_secure_installation

설정파일

/etc/my.cnf

SQL 사용법

데이터 베이스에서 데이터 관리를 위해 사용하는 언어

검색/추가/제거 등 다양한 구문이 있다.

 

SELECT : 데이터 조회

INSERT : 데이터 추가

UPDATE : 데이터 수정

DELETE : 데이터 삭제

CREATE : 객체 생성

DROP : 객체 제거

ALTER : 객체 특성 수정

GRANT : 권한 부여

REVOKE : 권한 제거

COMMIT : 수정사항 적용

ROLLBACK : 수정 사항 반영 안함

 

SELECT 구문

데이터를 조회하기 위해 사용한다.

특정 테이블 및 컬럼을 지정해서 확인한다.

필요에 따라 조건을 부여해 알맞은 데이터를 검색할 수 있다.

 

SELECT 컬럼이름

FROM 테이블 이름

WHERE 조건문

ORDER BY 정렬방식

 

DML 구문

데이터를 수정할 때 사용하는 구문

데이터 추가시 INSERT 구문 사용

INSERT INTO 테이블 이름 및 컬럼 이름

VALUES 입력할 데이터

WHERE 조건문

 

데이터 삭제 시 DELETE 구문 사용

DELETE FROM 테이블 이름 및 컬럼 이름

WHERE 조건문

 

데이터 수정 시 UPDATE 구문 사용

UPDATE 테이블 이름 및 컬럼 이름

SET 새로 입력할 데이터

WHERE 수정할 위치

 

유용한 비교 연산자

BETWEEN a AND b : a 와 b 사이라면 참

IS NULL : 해당 값이 NULL 이면 참

IS NOT NULL : 해당 값이 NULL이 아니면 참

IN {1,2,3,4} : 해당 값이 1,2,3,4 중 하나라면 참

 

LIKE : =와 의미가 비슷하지만 와일드카드를 사용할 수 있다. (문자가 들어간 모든 대상을 찾는다)

 

_ 와 % :  _는 한글자, %는 모든 문자를 뜻한다. %Y라면 HAPPY도 대상이지만 _Y는 BY 같은 단어만 대상 

 

트렌젝션의 개념

논리적으로 하나의 단위로 처리해야 하는 작업이다

트랜잭션을 제어하는 구문(TCL)으로 수정사항을 적용하거나 취소한다.

안정적인 데이터 수정을 위한 개념이다.

 

트랜잭션 종료 시점 

- TCL/DDL/DCL 구문 등을 사용

- 서버와의 연결을 종료하는 경우

 

TCL 구문 : COMMIT / ROLLBACK

 

MariaDB는 기본적으로 autocommit이 활성화 되어있다.

- 사용시 편리하지만 위험성이 높다.

- 세션 설정(명령어) 혹은 영구 설정(파일) 변경 가능

 

DDL 문장

객체 생성 및 수정 작업에 사용하는 언어이다. (주로 테이블에서 사용)

 

객체 생성시 CREATE 구문을 사용한다.

CREATE TABLE 테이블 이름

(컬럼이름 데이터유형(길이) 제약 조건 .. )

 

객체 제거시 DROP 구문 사용

DROP TABLE 테이블 이름

MariaDB [test]> CREATE TABLE user (name varchar(10), uid int, area varchar(10), email varchar(20));
MariaDB [test]> INSERT INTO user (name,uid,area,email)
    -> VALUES ('Lee',0,'Seoul', 'lee@test.example.com');
Query OK, 1 row affected (0.00 sec)

MariaDB [test]> SELECT * FROM user
    -> ;
+------+------+-------+----------------------+
| name | uid  | area  | email                |
+------+------+-------+----------------------+
| Lee  |    0 | Seoul | lee@test.example.com |
+------+------+-------+----------------------+
1 row in set (0.00 sec)

 

Comments