컬쥐네 다락방
리눅스 | 데이터 베이스 본문
데이터 베이스
데이터를 효율적으로 저장/관리하기 위해 사용된다.
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)
'클라우드 > 리눅스' 카테고리의 다른 글
리눅스 | 워드 프레스 연결 중 'Error establishing a database connection' 에러 해결 (0) | 2022.03.16 |
---|---|
리눅스 | yum 에러 해결 Another app is currently holding the yum lock (0) | 2022.03.15 |
리눅스 | HTTPS (HTTP Secure) (0) | 2022.03.11 |
리눅스 | Apache, 가상 호스트 (0) | 2022.03.10 |
리눅스 | DNS 란? (0) | 2022.03.08 |