일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 기초 HTML
- 웹에 데이터를 전송하는 방법
- id 체크
- 코드 정리
- 이클립스 서버연동
- ER 마스터 사용법
- 자바
- DDL
- 자바스크립트
- oracle datatype
- [Eclipse] 이클립스 마켓플레이스 (Marketplace) 사용방법
- 이클립스 프로젝트 변경
- php 날자 함수
- 오라클 초기 셋팅
- 톰캣 9.0 설치
- Oracle
- 실행파일만들기
- 자동 배포
- 개발 일기
- js
- github
- CMD
- strtotime()
- 코드 처리 시간
- php
- PLSQL 설치
- 이클립스
- 코드이그나이터
- scanner 연습문제
- Nexacro
- Today
- Total
Chillax in dev
Oracle 공부 기초 01 : DDL create, 제약조건 본문
Oracle 공부 기초 01
- 이제 이클립스를 이용해서 Oracle 기초부터 수업 내용을 차근차근 정리하며 복습하기 위해 공부를 시작합니다. 데이터베이스란 결국 대량의 정보를 컴퓨터로 저장하고 관리하는 것입니다.
현재 출시된 데이터 베이스의 종류 :oracle, Mysql , mssql, MariaDB, MongoDB, Access 등 다양합니다. 데이터 베이스의 조작운영을 가능하게 하는 프로그램 DBMS(Database Management System)입니다. 각 데이터 베이스 제품들에는 자신의 데이터 베이스를 관리할 수 있는 DBMS가 존재합니다.
특히 현재 사용 중인 오라클 데이터 베이스에서 사용 가능한 DBMS는 SQL PLUS, 이클립스, 오라클 DBMS 등이 있습니다.
데이터 베이스 활용분야: 일반 웹사이트 게시문 저장용, 포털 검색 사이트 검색 대상 정보 저장용 RPG 등 게임의 게임 정보 또는 캐릭터 정보 등 방대합니다.
- SQL 파일에서 주석 문은 -- 로 표시합니다. 참고로 이클립스 단축키 ctrl + / 로도 가능합니다.
- 데이터베이스는 Table이다!
-- TABLE :데이터 베이스에서 사용되는 데이터 집합의 단위 (=릴레이션 쉽 = 표) |
-- 열(column) : (핃드)Field = 속성 = 에트리뷰트 = 데이터의 항목 |
-- 행(row) : (레코드)Record = 튜플 =한건의 데이터 |
칼럼1 | 칼럼2 | 칼럼3 |
0형0열 (0,0) | (0,1) | (0,2) |
(1,0) | 1행1열(1,1) | (1,2) |
SQL 종류)
1. DDL
2. DML
3. DCL
- 테이블 의생성 (create)
1
2
3
4
5
6
7
|
CREATE TABLE 테이블명(
필드명1 데이터타입 [디폴트값 제약조건 및 형식],
필드명2 데이터타입 [디폴트값 제약조건 및 형식],
필드명3 데이터타입 [디폴트값 제약조건 및 형식]
...
);
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
--EX01)테이블 작성예 (도서대여점 테이블)
create table BookList(
BookNum varchar2(5) not null,--5 글자문자열,null값이 될수없게 하는 제약조건 추가
title varchar2(30) not null,
makeyear number(4), --출판년도,숫자형식, 4바이트가 아니고 4자리 숫자라는 의미입니다.
inprice number(6), --입고가격
outprice number(6), --출고가격
constraint booklist_pk primary key(BookNum) --추가 제약 조건 Booknum을 기본키로 설정
--테이블의 외부에서 현재의 제약 조건을 boolist_pk 로 접근 가능합니다.
);
SELECT * FROM BookList; --테이블의 명령을 조회하는 명령
--EX02) 테이블생성 예제
--필드: PersonNum, PersonName, Phone, Birth, Bpoint
CREATE TABLE person(
PersonNum VARCHAR2(5) NOT NULL , --필드레벨로 설정(Not NULL )
PersonName VARCHAR2(12) NOT NULL,--필드레벨로 설정
Phone VARCHAR2(13) NOT NULL,--필드레벨로 설정
Birth DATE,
enterDate DATE default sysdate,
Bpoint NUMBER(6) default(0),
CONSTRAINT person_pk PRIMARY KEY(PersonNum) -->테이블 레벨로 설정
);
select * from person;
create table in_out(
out_date DATE NOT NULL, --대여날짜 -조합한 기본키
indexk NUMBER(3) NOT NULL,--대여순번 -조합한 기본키
booknum VARCHAR2(5) NOT NULL,--대여도서번호
personnum VARCHAR2(5) NOT NULL,--회원 번호
discount NUMBER(6),--할인금액
CONSTRAINT in_out_pk PRIMARY KEY(out_date,indexk), --마땅한 프라이머리 값이없을떄 이둘을 조합해서 고유한 키를만든것
CONSTRAINT fk1 FOREIGN KEY(booknum) REFERENCES booklist(booknum),
CONSTRAINT fk2 FOREIGN KEY(personnum) REFERENCES person(personnum)
--데이터는 객체 무결성을 유지하도록 만들어야한다
--booklist에 없는값이 booknum 에 올수 없다. - >참조 무결성--out_date, indexk 두개의 필드를 조합하여 기본키(in_out_PK)를 생성함 --booknum 는 in_out테이블의 외래키(fk1)로서 booklist 테이블의 booknum 참조함 --personnum in_out테이블의 외래키(fk2)로서 person 테이블의 personnum 참조함 -- 기본키에 대한 무결성 -> 개체무결성 -- 외래키에 대한 무결성 -> 참조무결성 );
select * from in_out;
|
cs |
<주의사항>
# 테이블 이름은 객체를의미할수 있는 적절한 이름을 사용합니다.
# 테이블이름은 다른 테이블과 중복되는 이름이면 안됩니다. 공백 X
# 한 테이블 내에서 필드 이름이 중복되지 않게 합니다.
# 각필 드는 ", "로 구분하여 생성합니다.
# CREATE를 비롯 한 모든 SQL명령은 ";"세미클론을 붙여 마무리해야 합니다.
# 필드 뒤에 DATATYPE은 반드시 지정하고 [] 안에 해당 내용이 있을 때 작성하며, 생략 가능합니다.
# 테이블명과 필드명은 반드시 문자로 시작해야 하고 예약어 명령어 등을 테이블명과 필드명으로 쓸 수 없습니다.
# 테이블 생성 시 대/소 문자는 구분하지 않습니다.(기본적으로 테이블이나 칼럼명은 대문자로 합니다)
# Date유형은 별도로 크기를 지정하지 않다.
# 문자 데이터 유형은 반드시 가질 수 있는 최대 길이를 표시해야 합니다.
# 칼럼과 칼럼의 구분은 콤마로 하되 , 마지막 칼럼은 콤마를 찍지 않습니다.
# 칼럼에 대한 제약 조건이 있으면 CONSTRAINT를 이용하여 추가할 수 있다.
# 제약 조건은 위 예시처럼 DvdNum뒤에 NotNull을 기술한 것과 같은 필드 LEVEL 방식과 COSTRAINT로 테이블 생성 마지막에 모든 제약조건을 기술하는 테이블 LEVEL 방식이 있다.
- 제약조건(CONSTRAINT)
# PRIMARY KEY
- 테이블에 저장된 레코드를 고유하게 식별하기 위한 키 , 하나의 테이블에 하나의 기본키만 정의할 수 있습니다. 여러 필드가 조합된 기본키 생성이 가능합니다.
기본키는 중복된 값을 가질 수 없으며 빈칸도 있을 수 없습니다.
PRIMARY KEY = UNIQUE KEY+ NOT NULL
# UNIQUE KEY
- 테이블에 저장된 행 데이터를 고유하게 식별하기 위한 고유키를 정의합니다.
단 NULL 은 고유키 제약의 대상이 아님으로,
NULL 값을 가진 행이 여러 개가 UNIQUE KEY 제약에 위반하지는 않습니다.
# NOT NULL
- 비어있는 상태, 아무것도 없는 상태를 허용하지 않습니다. -> 입력을 필수로 해라!
# CHECK
- IF문처럼 참 거짓을 얻어내서 본다.
입력할 수 있는 값의 범위를 제한한다.
CHECK제약으로는 TRUE OR FALSE로 평가할 수 있는 논리식을 지정합니다.
# FOREIGN KEY
- 관계형 데이터 베이스에서 테이블 간의 관계를 정의하기 위해
기본키를 다른 테이블의 외래 키로 복사하는 경우 외래 키가 생성됩니다.
이로서 참조 무결성 제약 옵션이 생성됩니다.
정리
- 데이터 베이스란?
- SQL의 의미와 종류?
- 테이블 생성(CREATE)
- 제약조건(constraint)
'DataBase 공부 > Oracle' 카테고리의 다른 글
Oracle 공부 기초 05 : DML insert(추가),update(수정),delete(삭제) (0) | 2020.07.12 |
---|---|
Oracle 기초 공부 04 : DDL view(뷰), sequence(시퀀스) (0) | 2020.07.12 |
Oracle 공부 기초 03 : DDL 테이블의 alter 수정, drop 삭제 (0) | 2020.07.12 |
Oracle 공부 기초 02 : 오라클 데이터 타입 정리 (0) | 2020.07.12 |
Oracle Database Express Edition을 슬기롭게 입문하는 방법 (0) | 2020.07.12 |