SQL Join 의 종류


기본적으로 Outer, Cross, Full, Inner, Self, Join 가 있다

(JOIN 의 기본 JOIN은 INNER JOIN)


Full Join 은 Join을한 두 테이블의 결과 값이 모두 조인된 것을 가져옴.


Outer Join 에는 Left Outer Join, Right Outer Join이있는데 Outer는 생략가능

간단하게 Left Join 은 


예를 들면,


FROM TableA a Left Join TableB b ON a.key = b.Key


이면 a 테이블과 b 테이블의 조인 값 + Left 테이블 즉 TableA의 값을 동시에 출력한다.


Right Join 은 반대로 Right 테이블인 b 테이블의 값을 조입값과 동시에 출력


Cross Join 은 양쪽 테이블의 모든 컬럼을 Join함. 

그래서 On 없이 사용되며, 결과 값은 두 테이블의 컬럼의 갯수를 곱한 값만큼 생성되며 공통되는 행이 없어도 가능. (데카르트 곱)



나머지는 다음에..




'IT > SQL' 카테고리의 다른 글

DDL 활용  (0) 2018.05.23
기본 SQL  (0) 2018.05.23


DDL 활용



DDL은 앞에서 말했듯이 Data Definition Language, 즉 데이터를 정의하는 언어이다.


좀더 쉽게 말하면 데이터를 담을 그릇을 만든데 필요한 언어이다.


(나중에 언급하겠지만, DDL로 데이터를 담을 그릇을 만들고, DML로 그릇안에 데이터를 담고, DCL로 그릇의 사용권한을 제어한다.)


이러한 그릇을 DBMS에서는 오브젝트라고 한다.


데이터를 정의 하기 위해서는 데이터의 오브젝트들이 필요한데 DDL 에서 오브젝트의 유형은,


스키마, 도메인, 테이블, 뷰, 인덱스 이다.


스키마(Schema) : - DBMS 특성과 구현 환경을 감안한 데이터 구조

 - 직관적으로 하나의 데이터베이스로 이해 가능



도메인(Domain) : - 속성의 데이터 타입과 크기, 제약 조건 등을 지정한 정보

 - 속성이 가질 수 있는 값의 범위로 이해 가능



테이블(Table) : - 데이터 저장 공간



뷰(View) : - 하나 이상의 물리 테이블에서 유도되는 가상의 논리 테이블



인덱스(Index) - 검색을 빠르게 하기 위한 데이터 구조




DDL 명령어


-Create, Alter, Drop, Truncate



* 지금은 간단히 테이블과 DDL을 사용하겠다.



1. 테이블 생성 - Create


create table dept (

dno number(2), dname varchar2(14), loc varchar2(13)

);


설명: dept 라는 이름의 테이블을 생성하고 그안에 dno 라는 이름의 두자리 숫자 열과, dname 이라는 이름의 14자리 문자 타입(varchar2: null 과 empty String을 함께 사용 가능)과, loc 라는 이름의 13자리 varchar2 문자 타입을 정의한다.



create table dept1 as select * from department;


설명: dept1 이라는 이름의 테이블을 생성하는데 그 안에 정보들을 모두 department 테이블에서 가져와서 생성한다. (즉 복,붙)





2. 테이블 변경 - Alter

alter table dept2 add (regdate date);

설명: 테이블 dept2 에 regdate 라는 이름의 date 타입을 열(column)로 추가하겠다.

alter table dept2 rename column regdate to birthday; -- 이름 변경

alter table dept2 modify birthday varchar2(20); -- type 변경

alter table dept2 drop column birthday; -- 컬럼 삭제 (drop중에는 insert나 다른 명령어 안통함)

alter table dept2 set unused (birthday); -- 컬럼 삭제 (응답시간 없이 바로 지워짐)



3. 테이블 삭제, 절단


Drop, Truncate,



truncate table dept1; -- dept1 테이블 안의 데이터를 다 날리기





제약 조건 적용


1. 제약 조건 유형


Primary key : 테이블의 기본키를 정의, 기본으로 NOT NULL, UNIQUE 제약이 포함됨


Foreign key : 외래키를 정의함, 참조 대상을 테이블이름(열이름)으로 명시해야함.

참조 무결성 위배 상황 발생 시 처리 방법으로 옵션 지정 가능

- No action, Set default, Set null, Cascade


Unique : 테이블 내에서 옅은 유일한 값을 가져야 함.

테이블 내에서 동일한 값을 가져서는 안 되는 항목에 지정함.


Not null : 테이블 내에서 관련 열의 값은 NULL일 수 없음.

필수 입력 항목에 대해 제약 조건으로 설정함.


Check : 개발자가 정의하는 제약 조건.

상황에 따라 다양한 조건 설정 가능.



2. 제약 조건 활용


Create 문에 제약 조건을 며이하는 형태로 사용하며, Alter를 통해 테이블의 제약 조건 변경 가능.






※ varchar 와 varchar2 의 차이



똑같은 문자열이지만 varchar 는 null 값과 빈 (empty) 값을 구별 하지만, varchar2 는 구별 없이 둘다 같은것으로 인식한다.


'IT > SQL' 카테고리의 다른 글

SQL Join 종류  (0) 2018.09.14
기본 SQL  (0) 2018.05.23

SQL의 정의와 기본


SQL (Structured Query Language)




DDL (Data Definition Language) - 데이터베이스 오브젝트를 정의, 조작.


-오브젝트란: 스키마, 테이블, 도메인, 인덱스, 뷰 등 데이터를 담을 수 있는 것을 의미.



ex) Create, Alter, Drop, etc


Create : 데이터베이스 오브젝트 생성


Alter : 데이터베이스 오브젝트 수정


Drop : 데이터베이스 오브젝트 삭제


Truncate : 데이터베이스 오브젝트 내용 전체 삭제





DML (Data Manipulation Language) - 데이터를 조작


ex) Insert, Update, delete, etc


Insert : 신규 데이터를 테이블에 삽입


Update : 테이블 내용 변경


Delete : 테이블 내용 삭제





DQL (Data Query Language)


ex) Select, etc


Select : 테이블 내용 조회





TCL (Transaction Control Language) - 트랜잭션을 제어하는 명령


ex) Commit, Rollback


Commit : 트랜잭션의 작업 결과를 반영


Rollback : 트랜잭션의 작업을 취소 및 원래대로 복구





DCL (Data Control Language) - 데이터를 제어하는 언어


ex) Grant, Revoke


Grant : 사용자에게 권한 부여


Revoke : 사용자 권한 취소






Create, Read, Update, Delete 를 이용해서 게시판을 자주 만드는데, 그걸 CRUD라고 부른다.

'IT > SQL' 카테고리의 다른 글

SQL Join 종류  (0) 2018.09.14
DDL 활용  (0) 2018.05.23

+ Recent posts