일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 2020정보처리기사실기정리
- 정처기실기정리
- 오버라이딩
- crud게시판
- 오라클설치
- html기초
- 프로그래머스 MYSQL
- 스프링 crud
- 자바연산자
- 스프링게시판만들기
- Oracle기초
- CRUD게시판만들기
- PLSQL
- 게시판만들기
- 2020정보처리기사실기요약
- 2020정보처리기사실기
- spring crud게시판
- 스프링 CRUD게시판
- jsp게시판만들기
- js datepicker
- 자바 정규표현식 예제
- 자바기초
- 자바배열예제
- jsp 팝업띄우기
- 날짜지정팝업
- spring crud
- 프로그래머스 SQL
- 프로그래머스 쿼리문
- 정보처리기사실기정리
- jsp 날짜팝업
- Today
- Total
영보의 SystemOut.log
[Oracle] DML / 데이터형 / Oralce 제약조건 본문
# DML 종류와 특징
DML 이름 |
의미 | 형식 / 예제 |
SELECT | 데이터 조회 | SELECT * | column1, column2.. FROM table_name [view_name(view)] WHERE 조건문 GROUP BY 그룹컬럼 HAVING 그룹 조건 ORDER BY 컬럼명 ASC|DESC |
INSERT | 데이터 추가 | 1) INSERT INTO table_name VALUES (전체 데이터가 첨부) 2) INSERT INTO table_name (컬럼명, 컬럼명...) VALUES(값, 값 ...) => 필요한 데이터만 추가 |
UPDATE | 데이터 수정 | UPDATE table_name SET WHERE 조건문 |
DELETE | 데이터 삭제 | DELETE FROM table_name WHERE 조건문 |
반드시 COMMIT을 사용!! 자바에서 DML은 AutoCommit |
#테이블 생성
속성 | 형식 |
기존의 테이블 복사 (CATS) |
CREATE TABLE table_name AS SELECT~~ |
새롭게 생성 |
CREATE TABLE table_name( 컬럼명 데이터형 [제약조건(여러개 사용이 가능)], 컬럼명 데이터형 [제약조건(여러개 사용이 가능)], 컬럼명 데이터형 [제약조건(여러개 사용이 가능)] [제약조건 ...] , ); - 컬럼명 뒤에 첨부 (컬럼 레벨) → NOT NULL, DEFAULT → 테이블과 동시에 생성 - 나중에 첨부 (테이블 레벨) (권장) → 테이블 생성 후에 나중에 생성
|
# 테이블 생성 반드시 필요한 요소
= 데이터형
= 제약조건의 종류
= 같은 데이터베이스(XE)에서는 테이블은 유일값이다
= 시작은 문자(영문,한글)로 시작
= 숫자를 사용이 가능(앞에 사용금지)
= 테이블 명은 30byte (한글 15자)
***영문으로 사용 시 테이블명은 대문자로 저장
= 특수문자 단어가 두개 이상일 경우에 주로 (_)
= 키워드는 사용할 수 없다 (SELECT, FROM..)
# 데이터형
문자저장 > 자바(String으로 매칭) |
CHAR(1~2000byte) : 고정 바이트 => 글자 수가 동일할 때 주로 설정 성별 (남자, 여자) sex CHAR(4) : 한글 2byte 사용 VARCHAR2(1~4000byte) : 가변 바이트 => 일반적으로 사용하는 문자 저장 name VARCHAR2(34) CLOB (4G) : 가변 바이트 => 줄거리, 내용.. story CLOB |
숫자 저장 |
|
날짜 저장 | DATE : 시스템의 시간 TIMESTAMP ; DATE 확장 (기록 경주 |
기타 저장 : 4G | BLOB : 동영상, 그림, 사진 => 바이너리로 저장 BFILE : 동영상, 그림, 사진 => 파일 형태로 저장 |
- 오라클 ( 데이터베이스) → 정형화된 데이터
= 사이트에 필요한 데이터만 저장 (제약 조건)
# 제약 조건
조건 이름 |
의미 | 형식 / 예제 |
NOT NULL |
- 데이터와 NULL값을 허용하지 않는다 → 반드시 입력값을 추가 |
- 컬렴명 데이터형 NOT NULL - 컬럼명 데이터형 CONSTRAINT 제약조건명 NOT NULL (권장 => 제악조건 수정,삭제가 용이) - ADD TABLE 테이블명 MODIFY 컬럼명 CONSTRAINT 제약조건명 NOT NULL name VARCHAR2(34) NOT NULL |
UNIQUE | - 유일값 - 중복 없는 데이터 첨부 → NULL값 허 → 후보키(이메일, 전화번호, 주민번호x) |
- 컬럼명 데이터형 UNIQUE - 컬럼명 데이터형 CONSTRAINT 제약조건명 UNIQUE(컬럼명) 테이블명_컬럼명_uk - 컬럼명 데이터형, CONSTRAINT 제약조건명 UNIQUE(컬럼명) - 테이블 제작 후에 제약조건 설정 ALTER TABLE 테이블명 ADD 컬럼명 CONSTRAINT 제약조건명 UNIQUE email VARCHAR2(200) UNIQUE |
PRIMARY KEY | UNIQUE + NOT NULL 모든 테이블에 반드시 한 개 이상의 PRIMARY KEY가 존재 → 이상현상 방지 (무결성) → 수정/삭제 -> 원하지 않는 데이터 적용 - ID, 게시물 번호, 영화 번호 |
- 컬럼명 데이터형 PRIMARY KEY - 컬럼명 데이터형 CONSTRAINT 제약조건명 PRIMARY KEY(컬럼명) - ALTER TABLE 테이블명 ADD 컬럼명 CONSTRAINT 제약조건명 PRIMARY KEY *** 컬럼 뒤에 생성(컬럼과 동시에 제약조건을 생성) → NOT NULL, DEFAULT *** 컬럼을 다 생성후에 테이블 마지막에 첨부 → PRIMARY, FOREIGN, CHECK, UNIQUE ***일반적 → 숫자(MAX+1, SEQUENCE(자동증가번호)) 특별한 경우 (ID) id VARCHAR2(20) PRIMARY KEY |
FOREIGN KEY |
외래키 - 참조 (다른 테이블의 컬럼 값을 참조) - 참조하는 테이블의 값을 벗어나면 안된다 - 게시판, 댓글 - 정규화 => 테이블을 여러개 만들기 때문에 - emp : deptno, dept : deptno : JOIN |
- 컬럼명 데이터형 CONSTRAINT 제약조건명 FOREIGN KEY ( 컬럼명) REFERENCES 참조항 테이블명( deptno NUMBER(2) FOREIGN KEY REFERENCES dept(deptno) |
CHECK | - 지정된 데이터만 첨부 - 설정된 값만 입력을 허용하고 나머지는 거부됨 - 입력시 : 라디오버튼, 콤보박스 사용 - 장르, 성별, 부서명, 메뉴 |
- 컬럼명 데이터형 CHECK (컬럼명 IN(10, 20, 30)) - 컬럼명 데이터형 CONSTRAINT 제약조건명 CHECK(컬렴명 IN(10, 20, 30)) - 권장사항 (이름부여 => 찾아서 수정, 삭제 가능) sex VARCHAR2(4) CHECK(sex IN ('남자', '여자')); => 부서명, 직위 |
DEFAULT | - 추가가 없는 경우에 자동을 추과되는 값 - 저장 값이 없는 경우에 자동으로 설정된 값을 첨부 regada |
regdate DATE DEFAULT SYSDATE hit NUMBER DEFAULT 0; |
'Database > Oracle' 카테고리의 다른 글
[Oracle] Sub Query(서브쿼리) 종류와 예제(2) (0) | 2020.11.10 |
---|---|
[Oracle] Sub Query(서브쿼리) 종류와 예제(1) (0) | 2020.11.10 |
[Oracle] JOIN / EQUI_JOIN / NON_EQUI_JOIN/ JOIN예제 (0) | 2020.08.12 |
[Oracle] SQL 복수행함수 / 그룹함수 / 집합함수 / SQL 함수 예제 (0) | 2020.08.11 |
[Oracle]Database(Oracle) 데이터 HTML에 출력하기 (0) | 2020.08.11 |