SQL의 데이터 형식
NUMBER 타입
NUMBER
→ 자릿수를 지정하지 않으면 최대 38자리까지 나타낼 수 있습니다.
NUMBER(p,s)
→ p는 최대 유효 자릿수(정밀도)를 나타내고, s는 소수점 이하 자릿수를 나타냅니다.
→ 소수점 이하 자릿수가 s보다 작을 경우 오류가 발생합니다
→ 소수점 이하 자릿수가 s보다 클 경우 반올림하여 s 자릿수를 맞춥니다.
→ s 자릿수를 맞춘 후의 유효 자릿수가 p보다 클 경우 오류가 발생합니다.
연습 예제
→ 테이블을 생성하고, 컬럼의 형식을 지정합니다.
→ 모든 형식을 맞추어 정상 실행됩니다.
→ col2의 자릿수가 5를 초과하여 오류가 발생합니다.
→ 1) col3 소수점 3째 자리에서 반올림하여 12345.68 값이 저장됩니다.
→ 2) col3의 유효 자릿수가 7을 초과하여 오류가 발생합니다.
→ 1) col4 소수점 6째 자리에서 반올림하여 0.00013 값이 저장됩니다.
→ 2) col4의 소수점 자리수가 5보다 작아서 오류가 발생합니다.
날짜 타입 : DATE, TIMESTAMP
DATE
→ 날짜를 저장합니다.
→ YYYY-MM-DD 형식을 입력합니다.
TIMESTAMP
→ 날짜와 시간을 저장합니다.
→ DEFAULT 키워드로 값을 지정 안했을 때 현재 시간을 입력할 수 있습니다.
연습 예제
→ ccol TIMESTAMP DEFAULT SYSDATE : 컬럼 값을 입력 안해도 현재 시간이 저장된다.
문자 타입 : CHAR, VARCHAR2, NCHAR, NVARCHAR2
CHAR(길이)
→ 고정 길이, 단위는 바이트입니다. (UTF-8 : 한글은 3바이트, 영문/숫자/기호는 1바이트입니다.)
→ 글자의 개수가 고정된 경우에 사용하는 것이 좋습니다.
→ 남는 메모리에는 공백이 채워집니다.
VARCHAR2(길이)
→ 가변 길이, 단위는 바이트입니다.
→ 글자의 개수가 변동되는 경우에 사용하는 것이 좋습니다.
→ 길이는 최대 길이이고, 실제 메모리는 데이터의 크기만큼 사용합니다.
NCHAR(길이)
→ 고정 길이, 단위는 문자 개수입니다.
→ 특징은 CHAR와 같습니다.
NVARCHAR2(길이)
→ 가변 길이, 단위는 문자 개수입니다.
→ 특징은 VARCHAR2와 같습니다.
연습 예제
→ 테이블을 생성하고 컬럼 형식을 지정합니다.
→ '가나다라'는 12바이트이므로 오류가 발생합니다.
→ abcde 뒤에는 5개의 공백이 있습니다.
→ '가나다라'는 12바이트이므로 오류가 발생합니다.
→ abcde 뒤에는 공백이 없습니다.
→ '가나다라마바사아자차카'는 11글자이므로 오류가 발생합니다.
→ '가나다라' 뒤에는 6개의 공백이 있습니다.
→ '가나다라마바사아자차카'는 11글자이므로 오류가 발생합니다.
→ '가나다라' 뒤에는 공백이 없습니다.
예제: 쇼핑몰
고객 테이블
상품 테이블
구매 테이블
고객 정보 입력
상품 정보 입력
구매 정보 입력
*중요*
1. custom 테이블의 custom_id, product 테이블의 pcode는 중복되면 안됩니다.
→ 기본 키(Primary Key)를 사용한다.
2. product 테이블의 price, quantity 등의 컬럼은 필수 데이터로 반드시 저장되어야 합니다.
→ NOT NULL 제약조건을 사용한다.
3. custom과 product 테이블에 없는 custom_id, pcode 컬럼 값을 사용하면 부정확한 데이터입니다.
→ 외래 키(FOREIGN KEY)를 사용한다.
제약조건
무결성 : 데이터에 결함이 없음
제약조건은 데이터의 무결성을 지키고 데이터의 상태를 일관되게 유지하기 위한 조건입니다.
기본 키(Primary Key)
→ 중복된 값과 NULL 값을 허용하지 않습니다.
→ 테이블의 행을 식별하는 것이 목적입니다.
→ 테이블은 기본 키를 1개만 가질 수 있습니다.
기본 키 설정 방법
1) CREATE TABLE 문에 PRIMARY KEY 키워드 넣기
2) CREATE TABLE 문에 CONSTRAINT 기본키이름 PRIMARY KEY 키워드 넣기
3) CREATE TABLE 문 마지막 행에 PRIMARY KEY(열 이름) 키워드 넣기
(CONSTRAINT 기본키이름 → 생략 가능합니다.)
외래 키(FOREIGN KEY)
→ 두 테이블 사이의 관계를 연결해주어 무결성을 보장합니다.
→ 다른 테이블에서 값을 참조합니다. 다른 테이블은 기본 키가 설정되어 있어야 합니다.
외래 키 설정 방법
CREATE TABLE 문 마지막 행에
CONSTRAINT 외래키이름 FOREIGN KEY (열 이름) REFERENCES 참조하는테이블(열 이름) 키워드 넣기
(CONSTRAINT 외래키이름 → 생략 가능합니다.)
참조하는 테이블의 열 이름이 기본 키 또는 고유 키여야 합니다.
오류(외래키 위반, 무결성 제약조건 위반)
1) 기본 키 custom_id 컬럼에 없는 값('mina012'가 아닌 값)을 입력하여 오류가 발생합니다.
2) 기본 키 pcode 컬럼에 없는 값('dk_143'이 아닌 값)을 입력하여 오류가 발생합니다.
NOT NULL
→ NULL 값을 허용하지 않습니다.
설정 방법
→ CREATE TABLE 문에 NOT NULL 키워드 넣기
시퀀스(SEQUENCE)
→ 일련번호를 자동으로 증가시켜 사용할 수 있는 기능입니다.
→ 한 번 만들어져 사용하던 시퀀스는 값을 되돌릴 수 없습니다.
→ 시퀀스를 새로 만들고 싶다면 삭제하고 다시 만들어야 하며, 이 경우 데이터도 삭제하고
시퀀스를 생성한 뒤 데이터를 추가해야 합니다.
시퀀스 생성과 삭제 방법
→ CREATE 문과 DROP 문으로 시퀀스를 생성, 삭제합니다.
→ View Sequence 메뉴에서 시퀀스 범위를 설정할 수 있습니다.
→ 시퀀스를 저장할 기본키 컬럼을 생성합니다.
→ 값에 시퀀스명.nextval 을 입력합니다.
오늘의 예제
7. LIKE 키워드를 이용하여 부분 일치 조회를 할 수 있습니다.
→ LIKE '%1%' : 1을 포함하는 것 조회
→ LIKE '1%' : 1로 시작하는 것 조회
→ LIKE '%1' : 1로 끝나는 것 조회
8. pcode에 대문자 또는 소문자 'on' 을 포함하는 것을 조회합니다.
→ WHERE LOWER(pcode) LIKE '%on%'
데이터 모델링
현실의 데이터를 데이터베이스로 구축하기 위한 과정입니다.
데이터 요구사항을 정의하고 분석하여 모델링합니다.
데이터 모델링의 종류
개념적 데이터 모델링
→ 개체-관계 모델(ER Model)
개체(entity) : 현실 세계에서 발생하는 사건의 대상이 되는 것입니다.
관계(relationship) : 현실 세계의 사건입니다.
ex)
쇼핑몰에서 물건을 구입한다 → 관계(사건)
회원과 상품, 배송지 주소, 결제 정보(카드, 계좌), 상품공급업체 → 개체
상품을 입고, 출고한다 → 관계
'수업 일지 > Oracle(SQL)' 카테고리의 다른 글
44일차 - PL/SQL 프로시저/생성/호출 (0) | 2022.03.10 |
---|---|
27일차 - ALTER/DECODE/COMMIT/뷰/JDBC연동 (0) | 2022.02.09 |
26일차 - ERD/UPDATE/DELETE/외래키 삭제 조건/JOIN (0) | 2022.02.08 |
24일차 - DDL/DML/DCL/IS NULL/IN/집계함수/서브쿼리/UPPER (0) | 2022.02.04 |
23일차 - Oracle 설치/연습 (0) | 2022.02.03 |
댓글