일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- IT
- SAP
- Python
- db
- 자바스크립트
- Oracle DB
- 유럽여행
- 비지니스영어
- nodejs
- ABAP
- 파이썬
- 도커
- 자바
- JavaScript
- SAP ERP
- 오라클
- docker
- Mac
- oracle
- SAP ABAP
- 머신러닝
- 영어
- 오라클 디비
- sap mm
- 노드
- Spring Framework
- node.js
- 딥러닝
- Java
- Programming
- Today
- Total
JIHYUN JEONG
[DB] 아빠도 따라하는 오라클 데이터베이스 3일차 본문
2월 21일 목요일 Oracle SQL 강의
Oracle DB실행시 문제가 있을 경우
내컴퓨터 마우스 오른쪽 à 관리 à 컴퓨터 관리(서비스 및 응용 프로그램)
à OracleServiceXE 와 OracleXETNSListener 가 시작됨으로 되어있는지 확인한다!!
컬럼 속성(무결성 제약조건) p128
NULL //널 값을 허용
NOT NULL //널 값을 허용하지 않음
UNIQUE //중복을 허용하지 않음, NULL값은 허용
Primary Key //unique와 not null 합친 의미
- 컬럼명 NUMBER(6, 0) PRIMARY KEY //인라인 표기방식 (그 자리에서 바로 정의하는 것)
- 컬럼명 NUMBER(6, 0), CONSTRAINT
"기본키 명칭"
PRIMARY
KEY(컬럼명) //아웃라인 표기방식
Alter table 테이블명 add constraints "기본 키 이름" primary key(컬럼); |
FOREIGN KEY //외래키, 참조키, 다른 테이블의 Primary key를 참조하여 중복하여 사용되는 키
- 테이블 만드는 중에 쓰이는 구문
컬럼명 Constraints "외래 키 이름" References 참조테이블명(참조 컬럼); |
- 테이블 만든 후 수정을 위해 쓰는 구문
Alter table 테이블명 Add constraints "외래 키 이름" Foreign key(컬럼) References 참조테이블명 (참조 컬럼); |
- 참조되는 테이블을 부모라고 하고 참조하는 테이블을 자식이라고 한다.
- 외래키 쓰기 에 부모테이블이 먼저 만들어져 있어야 참조할 수 있다.
- 참조하는 부모의 컬럼은 기본키 혹은 unique 키 이어야 한다.
- 자식 테이블에 존재하는 값을 부모 테이블에서 삭제할 수 없다.
- 반대로 삭제가 아닌 Insert의 경우에는 부모 테이블의 데이터를 먼저 입력 후 자식 테이블에 데이터를 입력해야 한다.
CHECK //입력되는 값을 체크하여 일정한 조건에 해당되는 값만 입력될 수 있게 하는 제약조건
Ex) gender VARCHAR2(10) NOT NULL CONSTRAINT check_gender CHECK(gender in('남성', '여성'))
컬럼 레벨에서 (컬럼 정의할 때만) 적용되는 제약조건은? CHECK 이다.
DEFAULT //컬럼에 특정 값을 디폴트 값으로 설정하고 아무것도 입력하지 않으면 그 값이 적용됨.
- 디폴트는 제약조건에 포함 안됨.
- 데이터 타입 뒤에, NOT NULL 앞에 디폴트 입력해야 함.
gender VARCHAR2(10) DEFAULT '남성' NOT NULL CONSTRAINT check_gender CHECK(gender in('남성', '여성'); |
Alter table check_test Add insert_date DATE DEFAULT SYSDATE; |
Join
Cross join
- 2개 이상의 테이블이 조인 될 때 where 저에 의해 공통되는 컬럼에 의한 결합이 발생하지 않는 경우
Natural join
- 2개 이상의 테이블이 공통되는 컬럼에 의해 논리적으로 결합되는 경우
select d.deptid, d.deptname, l.city from dept d, loc l where d.locid = l.locid; |
select d.deptid, d.deptname, l.city from dept d JOIN loc l USING (locid); |
Self join
- 한 개의 테이블을 두개의 별도의 테이블처럼 사용할 때 이용
select e.empid, e.fname, d.fname from emp e, emp d where e.mgrid = d.empid; |
Outer join
- 2개 이상의 테이블이 조인될 때 어느 한쪽의 테이블에는 해당하는 데이터가 존재하는데 다른 쪽의 테이블에는 데이터가 존재하지 않을 때 그 데이터는 출력되지 않는 문제를 해결하기 위해 사용되는 기법
- 데이터가 존재하지 않는 쪽 테이블에 (+) 기호를 정의하면 모든 데이터가 출력됨
select e.empid, e.fname, d.deptname from emp e, dept d where e.deptid = d.deptid(+); //e.deptid에 NULL값이 존재하고 d.deptid에는 NULL값이 존재하지 않으므로 d.deptid가 적으므로 (+)를 붙인다. |
select e.empid, e.fname, d.deptname from emp e left outer join dept d on e.deptid = d.deptid; // 잘기억!!! |
'Information Technology > Database' 카테고리의 다른 글
[DB] 오라클(Oracle) 데이터베이스 VP-UML CE (not for commercial use) 06 (2) | 2013.02.25 |
---|---|
[DB] 오라클(Oracle) 데이터베이스 데이터 모델링[UML] 05 (0) | 2013.02.25 |
[DB] 아빠도 따라하는 오라클 데이터베이스 4일차 (0) | 2013.02.22 |
[DB] 아빠도 따라하는 오라클 데이터베이스 2일차 (0) | 2013.02.21 |
[DB] 아빠도 따라하는 오라클 데이터베이스 1일차 (1) | 2013.02.19 |