DATA
DATA와 정보
DBMS
Database Management system
- oracele, mysql, mariaDB, MS-SQL
- 각 컴퓨터의 데이터를 하나의 중앙장치로 처리하는 데이터 베이스
- 아이디와 패스워드로 보완관리를 한다
- 중복데이터가 없도록 관리 함
- 중복데이터가 생기지 않게 제약조건등을 만들어 관리
- 추출, 조작, 정의 제어의 기능 데이터베이스, 전용관리 시스템
- 여러명이 동시 접근하여도 중복이 일어나지 않고 믿을수있는 데이트인지 확인하여 관리하기 위해 사용한다.
DATABASE
- 필요한 정보를 공용화할수있도록 데이터를 모으고 중복데이터를 최소한 뒤 통합 저장해 놓은것
- 통합데이터 : 최소한의 중복만 허용
- 저장 데이터 : 컴퓨터가 접근할수 있도록 컴퓨터에 저장된 데이터
- 운영데이터 : 지속적으로 변화, 시스템이 사용하는 데이터
- 공용데이터 : 공동으로 사용하는 데이터
ORACLE - SQL
- 데이터 정의어 : DDL (Data Definition Language)
- CREATE(개체생성), DROP(개체 삭제), ALTER(개체 수정), TRUNCATE(개체 초기화)
- 데이터구조를 정의하거나 변경 , 삭제 하는 언어
- 데이터 조작어 : DML (Data Manipulation Language)
- INSERT-삽입, UPDATE-수정, DELETE-삭제, SELECT-조회
- 반드시 WHERE를 사용해야 함
- 빼먹으면 전체자료가 수정 삭제되어 자료가 없어질수있음!!
- 데이터를 조작, 삽입 수정 삭제 조회
- 사용자와 시스템간의 인터페이스를 제공함
- 가장많이 사용됨
- DQL - 데이터를 검색(추출)하는 언어
- SELECT(데이터 검색)
- 데이터 제어어 : DCL (Data Control Language)
- GRANT(권한생성), REVOKE (권한을 회수삭제)
- 사용자의 권한이나 관리자 설정등을 처리
- 트랜젝션 제어어 : TCL (Transaction Control Language)
- COMMIT(종료 후 저장), ROLLBACK(취소),SAVEPOINT(임시저장)
- 트랜잭션 관리 처리 언어
- 트랜잭션이란 데이터베이스의 상태를 변경하는 논리적 작업 단위
DDL
- Data Definition Languge
- 객체(Object)를 만들고(CREATE), 수정하고(ALTER),
삭제(DROP)하는 구문
- 오라클 객체의 종류
- 테이블(TABLE), 뷰(VIEW), 시퀀스(SEQUENCE), 인덱스(INDEX), 패키지(PACKAGE),
프로시저(PROCEDUAL), 함수(FUNCTION), 트리거(TRIGGER), 동의어(SYNONYM),사용자(USER)가 있다.
CREATE - 사용자만들기
CREATE USER KH IDENTIFIED BY KH; -- 계정 생성(with 비밀번호)
GRANT CONNECT TO KH; -- 연결 권한 부여 => DCL
GRANT RESOURCE TO KH; -- 데이터 조작 권한 부여 => DCL, SYS로!!
CREATE - 테이블만들기
CREATE TABLE MEMBER (
MEMBER_ID VARCHAR2(20),
MEMBER_PWD VARCHAR2(20),
MEMBER_NAME VARCHAR2(20)
);
- 숫자 : NUMBER 숫자
- 문자 : CHARACTER
- CHAR : 고정길이 문자 (고정된 길이로 크기가 정해짐)
- VARCHAR2 가변길이 문자 (지정된 길이가 최대 크기일뿐 크기는 사용한만큼)
- NCHAR CHAR와 동일, 유니코드 문자 (잘 사용하지 않음)
- NVARCHAR2 VARCHAR와 동일, 유니코드 문자(잘 사용하지 않음)
- LONG 가변길이 문자(최대 2GByte)
- 날짜
- DATE 날짜
- TIMESTAMP “연도, 월, 일, 시, 분, 초, 밀리초 까지 입력가능
- 데이터 : LOB
- CLOB 가변길이 문자(최대 4GByte)
- BLOB Binary Data
숫자
- NUMBER( [P, S] )
- P : 표현할 수 있는 전체 숫자 자리수(1~38)
S : 소수점 이하 자리수 (-84 ~ 127)
1234.678의 값을 다음의 데이터 타입으로 저장한다면?
NUMBER(7,3) -> 1234.678
NUMBER(7) -> 1234
NUMBER -> 1234.678
NUMBER(7, 1) -> 1234.6
NUMBER(5, -2) -> 1200
CHAR( SIZE [ byte | char ] )
- 영어 1글자에 byte 1
- char(1) = a
- char(2) =aㅁ
- char(2)=abc ← 에러!
- 한글 1 글자의 byte 3
- char(1) = 가 ←에러!
- char(3)= 가
- char(4) = 가ㅁ
VARCHAR( SIZE [ byte | char ] )
- 주로 varchar2를 쓴다
- 사이즈는char와 같음
- 최대 사이즈 지정 가능 최대사이즈를 넘어가면 에러
- varchar2(3) : a ←공백없음!
DATE
- 숫자와 연동가능
- 날짜+숫자: DATE
- 날짜-숫자: DATE
- 날짜-날짜: NUMBER
- 날짜+숫자/24: DATE
DCL
- Data Control Language
- GRANT(권한할당), REVOKE(권한해제)
DDL
- 제약조건
- 중복값등을 막는데 쓰인다
- distinct
DQL
- DQL - SELECT
- Result Set - 데이터를 조회한 결과
- 특정 컬럼이나 특정 행을 조회할 수 있으며, 여러 테이블에서 특정행 / 컬럼을 조회할 수 있음
TCL
- commit, rollback
- 트랜젝션 종료처리 후 저장하거나 취소할 때 사용되는 언어
간단정의
데이터 정의어 : DOL (Data Definition Language)
데이터 조작어 : DML (Data Manipulation Language)
데이터 제어어: DCL (Data Control Language)
트랜잭션 제어어 : TCL (Transaction Control Language)
DDL (Data Definition Language)
CREATE (객체생성), DROP (객체삭제), ALTER (객체 수정)
TRUNCATE, 객체 초기화)
데이터베이스의 구조를 정의하거나 변경, 삭제하기 위해 사용하는 언어
DML (Data Manipulation Language)
INSERT, UPDATE, DELETE, SELECT
DQL (Data Query Language)
SELECT
데이터를 검색 (추출)하기 위해 사용되는 언어
DCL Data Control Language)
GRANT (권한부여), REVOKE (권한해제)
Oracle - Function
구분 | 입력 값 타입 | 리턴 값 타입 | 설명 |
---|
LENGTH | CHARACTER | NUMBER | 문자열의 길이를 반환한다. |
LENGTHB | CHARACTER | NUMBER | 문자열의 바이트 크기를 반환한다 |
INSTR | CHARACTER | NUMBER | 특정 문자의 위치를 반환한다 |
INSTRB | CHARACTER | NUMBER | 특정 문자의 위치 바이트 크기를 반환한다 |
제약조건
데이터 중복을 막고 데이터의 무결성을 위해서 사용한다.
2개의 테이블의 관계를 만들거나 null을 지정한다.
not null(C) - 데이터에 null을 허용하지 않는다
unique (U)- 중복된 값을 허용하지 않는다
primary key (P)- null을 허용하지 않고 중복을 허용하지 않는다, 컬럼의 고유식별자로 사용한다. (유일한 기준 값)
foreign key (R)- 참조되는 테이블의 컬럼의 값이 존재하면 허용한다
check(C) - 저장가능한 데이터 값의 범위나 조건을 지정하여 설정한 값만 허용한다.
- 예 : 성별을 지정할때 남,녀만 선택했다면 남자, 여자 , male female등의 성별지정을 금지한다.
- 성별 기혼여부 퇴직여부
defualt - 삭제여부, 퇴직여부 날짜…
- 테이블 작성시 각각 컬럼에 대한 기록에 대해 제약조건을 설정할수 있다
- 데이터 무결성을 지키기 위해 제한된 조건
- 델이터 무결성 : 데이터의 정확성과 일관성을 유지하기 위한 것