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함
'{ "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 |