본문 바로가기

오라클

FULL JOIN -- FULL JOIN : LEFT와 RIGHT JOIN 결합형태 -- 인천에 사는 사람 쉘렉 SELECT num, name, buseo, city FROM insa WHERE city='인천'; -- 개발부에 사는 사람 쉘렉 SELECT num, name, buseo, city FROM insa WHERE buseo='개발부'; -- EQUI JOIN SELECT a.num, b.num, a.name, b.name, a.city, b.city, a.buseo, b.buseo FROM ( SELECT num, name, buseo, city FROM insa WHERE city='인천' ) a JOIN ( SELECT num, name, buseo,city FROM insa WHERE buseo='개발부.. 더보기
OUTER JOIN -- OUTER JOIN -- 조인 조건에 만족하지 않는 행을 보기 위한 추가적인 JOIN 형태이다. --책별 판매 수량 구하기 -- EQUI 조인SELECT b.b_id, title, p_su FROM book b JOIN panmai p ON b.b_id=p.b_id; --LEFT OUTER JOINSELECT b.b_id, title, p_su FROM book b LEFT OUTER JOIN panmai p ON b.b_id=p.b_id; -- book테이블 컬럼과 panmai테이블 컬럼의 동일한 것을 묶어서 출력, -- 이 때 panmai테이블에 book테이블의 b_id가 없는 것은 null값으로 출력되는데 아우터 라인이 이것까지 출력하게 해준다. --조건에 만족하지않는 것은 왼쪽(ON b.b_.. 더보기
EQUI JOIN(inner Join) -- EQUI 조인 -- 두개 이상의 테이블의 관계되는 컬럼들의 값들이 일치하는 경우에 사용하는 가장 일반적인 JOIN -- EQUI 조인은 단순 JOIN 이라 한다. -- 방법 1 먼저 테이블 마다 컬럼을 확인SELECT * FROM book; --b_id, title c_nameSELECT * FROM danga; -- b_id, priceSELECT * FROM panmai; 값이 일치하는 컬럼들을 아래와 같이 묶는다SELECT book.b_id, title, c_name, price FROM book, danga WHERE book.b_id = danga.b_id; -- 이름이 길어서 아래와 같이 테이블이름에 별명을 붙인다. SELECT b.b_id, title, c_name, price FROM.. 더보기
제약조건 DEFAULT 디폴트 --DEFAULT --INSERT 할 때 값을 입력 하지 않으면 DEFAULT에 설정한 값이 입력 --INSERT나 UPDATE에서 키워드를 이용하여 DEFAULT에 설정한 값이 입력 CREATE TABLE 테이블명( 컬럼명 타입 DEFAULT 값 : ); -- DEFAULT 제거 ALTER TABLE 테이블명 MODIFY 컬럼명 DEFAULT NULL; -- DEFAULT 확인 SELECT * FROM user_tab_columns; 더보기
제약조건 NOT NULL -- NULL 제약 -- NULL은 값이 존재하지 않는 것으로 NULL( 또는 ''(홑따옴표 안에 스페이스없는상태))갖지 못한다. -- 테이블 생성시 CREAT TABLE 테이블명( 컬럼명 타입 NOT NULL : ); --존재하는 테이블 ALTER TABLE 테이블명 MODIFY 컬러명 NOT NULL; ALTER TABLE 테이블명 MODIFY (컬럼명 타입 NOT NULL); ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 CHECK(컬럼명 IS NOT NULL); --NOT NULL 제거 ALTER TABLE 테이블명 MODIFY 컬러명 NULL; ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명 더보기
제약조건 CHECK --CHECK : 추가 또는 수정시 설정한 조건에 맞는 올바른 데이터인지 검증 -- 추가 및 수정시 마다 체크하므로 성능 저하 --컬럼레벨로 지정 CREATE TABLE 테이블명( 컬러명 타입 [CONTRAINT 제약조건이름] CHECK(조건) : ); --확인 SELECT * FROM USER_CONSTRAINT; SELECT * FROM USER_CONS_COLUMNS; --이미 존재하는 테이블에 CHECK ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건이름 CHECK (컬럼명); --CHECK 제거 ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건이름; EX) CREATE TABLE test2( id VARCHAR2(20) PRIMARY KEY ,name VARC.. 더보기
제약조건 UNIQUE 유니크 --UNIQUE : 지정컬럼의 중복을 허용하지 않음 -- UNIQUE는 2개이상 지정 가능 -- NULL을 허용할 수 있지만 NULL인 자료는 하나만 존재해야 함 -- UNIQUE 컬럼레벨로 지정 CREATE TABLE 테이블명( 컬럼명 타입 CONSTRAINT 제약조건이름 UNIQUE : : ); -- UNIQUE 테이블레벨로 지정 CREATE TABLE 테이블명 ( 컬럼명 타입 : : ,CONSTRAINT 제약조건이름 UNIQUE(컬럼명) ); --확인 SELECT * FROM USER_CONSTRAINT; SELECT * FROM USER_CONS_COLUMNS; --이미 존재하는 테이블에 UNIQUE ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건이름 UNIQUE (컬럼명); -.. 더보기
제약조건 PRIMARY KEY 기본키 -- 기본키 PRIMARY KEY 테이블의 유일성을 보장하기 위한 제약조건 하나의 테이블에는 하나의 기본키만 가질 수 있다. 방법1. 컬럼레벨로 기본키 지정 -- 하나의 컬럼을 이용하여 간단하게 기본키를 지정한다. CREATE TABLE 테이블명( 컬럼명 타입 [CONSTRAINT 제약조건이름] PRIMARY KEY : ); 방법2. 테이블레벨로 기본키지정(이건 기억해놔야한다) -- 하나이상의 컬럼을 이용하여 기본키를 지정 할 수 있다. CREATE TABLE 테이블명( 컬럼명 타입 : , CONSTRAINT 제약조건이름 PRIMARY KEY (컬럼명,[컬럼명])) ); --제약조건 이름은 제약조건을 삭제하거나 변경할 때 이용된다. --제약조건 이름은 다른 제약조건, 개체와도 중복 될 수 없다. ====.. 더보기