everyday com-eat
작성일
2021. 12. 23. 00:34
작성자
갱수터
728x90

데이터베이스(DB)

1) 정의

  • 통합된 데이터 ( Integrated Data )
    - 자료의 중복을 배제한 데이터의 모임이다.
  • 저장된 데이터 ( Stored Data )
    - 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료이다.
  • 운영 데이터 ( Operational Data )
    - 조직의 고유한 업무를 수행하는 데 존재 가치가 확실하고 없어서는 안 될 반드시 필요한 자료이다.
  • 공용 데이터 ( Shared Data )
    - 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료이다

 

2) 특징

  • 실시간 접근성(Real-Time Accessibility)
    - 수시적이고 비정형적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능해야 한다.
  • 계속적인 변화(Continuous Evolution)
    - 데이터베이스의 상태는 동적이다. 즉 새로운 데이터의 삽입(Insert),삭제(Delete),갱신(Update)로 항상 최신의 데이터를 유지한다.
  • 동시공용(Concurrent Sharing)
    - 데이터베이스는 서로 다른 목적을 가진 여러 응용자들을 위한 것이므로 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 한다.
  • 내용에 의한 참조(Content Reference)
    - 데이터베이스에 있는 데이터를 참조할 때 데이터 레코드의 주소나 위치에 의해서가 아니라, 사용자가 요구하는 데이터 내용으로 데이터를 찾는다.

 

3) KEYWORD

 

 

 

SQL

- 데이터베이스를 구축하고 활용하기 위해 사용하는 표준 관계형 데이터베이스 언어.

- 사용 용도에 따라 DDL,DML,DCL로 구분한다.

- DML(SELECT,INSERT,UPDATE,DELETE)은 무조건 한 행씩 실행된다

DDL(Data Definition Language)
데이터 정의어

- 새로운 데이터베이스를 구축하기 위해 스키마를 정의하고, 기존 스키마의 정의를 삭제 또는 수정하는 데이터 언어
- SCHMA, DOMAIN, TABLE, VIEW, INDEX
CREATE 데이터베이스 객체 생성
ALTER 데이터베이스 객체 변경
DROP 데이터베이스 객체 삭제
RENAME 데이터베이스 객체 이름 변경
TRUNCATE 테이블 내 테이블 삭제
DML(Data Manipulation Language)
데이터 조작어
- 사용자가 데이터의 삽입,삭제,수정,검색 등의 처리를 요구하기위해 사용하는 데이터 언어
SELECT 데이터 검색/조회
INSERT 데이터 삽입
UPDATE 데이터 수정
DELETE 데이터 삭제
DCL(Data Control Language)
데이터 제어어
- 데이터베이스에 저장된 데이터를 무결성과 일관성을 유지할 수 있도록, 내부적으로 필요한 규칙이나 기법을 정의하는 데이터 언어
GRANT 데이터베이스 객체에 대한 접근 권한 부여
REVOKE 데이터베이스 객체에 대한 접근 권한 회수
TCL(Transaction Control Language)
트랜잭션 제어어
- DML에 의해 조작된 결과를 트랜잭션 별로 제어하는 명령어
COMMIT  모든 작업을 확정
ROLLBACK 커밋 시점으로 이동
SAVEPOINT 특성시점으로 롤백

 

INSERT 키 중복 발생 시

- ON DUPLICATE KEY UPDATE : 업데이트 시키라는 명령어 ','로 나열할 수 있음

INSERT INTO tb_user(u_id, u_pw, u_name, u_birth, u_add, u_mobile1, u_mobile2, u_date)
VALUES
('id001', 'pw001', '홍01', '2020-01-10', '덕진동', '010', '00010001', '2020-03-10')
ON DUPLICATE KEY UPDATE
u_birth = '2019-01-10’
,u_name='홍02';

- IGNORE : 중복되는 키값의 행은 삽입이 안됨(insert와 into 사이)

 

 

DELETE와 TRUNCATE의 차이

- DELETE는 한 행씩 레코드 삭제

- TRUNCATE는 테이블을 DROP한 뒤 CREATE > ROLLBACK 불가

 

SELECT문

SELECT
DISTINCT
	별칭.*
FROM
	테이블명 AS 별칭
WHERE
	별칭.col = 조건
ORDER BY
	정렬기준
LIMIT ;
- FROM > WHERE > SELECT > ORDER BY > LIMIT 순으로 실행
- DISTINCT : 중복된 데이터 하나만 조회
- AS : 별칭
- WHERE 절의 '='는 비교 연산자
- LIMIT : 숫자가 1개 일 때 - 행의 갯수 ex) limit 5 → 상위 5개의 행
    숫자가 2개 일 때 - 시작할 인덱스 번호, 행의 갯수 ex)limit 0,5 → 첫번째 행부터 5개의 행

 

ORDER BY

- ASC : 오름차순, 생략시 기본값

- DESC : 내림차순

- CONVERT(컬럼명 USING BINARY) : 한글 사전순

- FIELD(컬럼명, '컬럼값1','컬럼값2'…,'컬럼값n') : 사용자 정의 순

 

GROUP BY

- 같은 값들을 그룹화

- HAVING절로 조건을 줄 수 있음

 

COUNT

- 행의 갯수를 구하는 집계 함수

- *로 지정 했을 때 : 모든 행의 수 count함

- 컬럼을 지정 했을 때 : null인 값을 가지는 행은 제외하고 count함

- 1로 지정 했을 때 : 값들을 모두 1로 인식해서 행의 수 count함

728x90

'{ "Hello World!" }; > DataBase' 카테고리의 다른 글

(DB) 데이터베이스 설계  (0) 2022.01.14
(DB) JOIN, UNION  (0) 2021.12.29
(DB) MySQL 내장 함수,연산자  (0) 2021.12.29
(DB) 데이터 모델링, 관계형 데이터 모델  (0) 2021.12.29
(DB) DBMS 구축하기  (0) 2021.12.13