전체 글 137

[SQL]EXISTS 의 보충

EXISTS 의 보충 다음의 내용을 참고하자.두개의 쿼리문의 결과는 같다.1234567891011SELECT *FROM DEPT DWHERE EXISTS (SELECT * FROM EMP WHERE DEPTNO = D.DEPTNO); SELECT *FROM DEPTWHERE DEPTNO NOT IN (SELECT DEPTNO FROM EMP);--NOT IN일때 서브쿼리 검색결과중 NULL이 있으면 무조건 결과가 NULL이 나오기 때문에 주의하여야 한다.--또한 NOT IN보다는 왠만하면 NOT EXISTS를 사용하도록 하자.cs

[SQL]서브쿼리(SUBQUERY)의 종류

서브쿼리(SUBQUERY)의 종류 SUBQUERY 란 SQL명령문에 포함된 SELECT 명령문이다.이때 서브쿼리는 메인쿼리보다 먼저 실행 될 수 있으며, 서브쿼리가 위치한 곳에 먼저 실행 될 수 있다. 다음은 서브쿼리를 분류한 것이다. >> 반환 값에 따른 서브쿼리 - Single row Subquery : 서브쿼리 결과가 단일 행 * 단일 행 비교 연산자에는 =, =, 을 사용한다. - Multiple row Subquery : 서브쿼리 결과가 여러 행 * 다중 행 비교 연산자에는 IN, ALL, ANY, SOME, EXISTS가 있다. 함수명 설명 IN 결과중 하나라도 일치하면 참 ANY,SOME 결과와 하나 이상 일치하면 참 ALL 결과와 모든 값이 일치하면 참 EXISTS 결과 중에서 값이 있으면..

[SQL]서브쿼리(SUBQUERY)의 추가내용_01

서브쿼리(SUBQUERY)의 추가내용_01 1편 기초 : https://seungsami.tistory.com/62 1234567891011--아래 두개의 쿼리문은 같은 결과를 가져온다.SELECT * FROM EMP WHERE SAL >ALL (SELECT AVG(SAL) FROM EMP GROUP BY DEPTNO) ; SELECT * FROM EMP WHERE SAL > (SELECT MAX(AVG(SAL)) FROM EMP GROUP BY DEPTNO) ;cs 두개이상의 컬럼을 비교할 수 있는 서브쿼리의 예는 다음과 같다.12345SELECT * FROM EMP WHERE (DEPTNO,SAL) IN (SELECT DEPTNO, MIN(SAL) FROM EMP GROUP BY DEPTNO) ; c..

[SQL]계정 생성 및 삭제(oracle DB 11g)

계정 생성 및 삭제 (oracle DB 11g) 계정 생성오라클 11g버전에서는 http://{IP주소}:{포트번호}/apex/f?p=4950 에서 쉽게 만들 수 있으나, SQL문을 통해서도 계정 생성 및 권한 부여가 가능하다. 콘솔창에서 관리자 아이디로 로그인을 해야 계정 생성이 가능하다. 1select * from all_users;cs를 통해 모든 계정을 확인 할 수 있다. 1create user {username} identified by {passwd};cs를 통해서 계정을 만들수 있는데, 권한을 주어야 로그인이 가능하다. 시스템 권한을 확인하는 쿼리문은1SELECT * FROM SESSION_PRIVS;cs이고 사용자에게 권한을 주는 것은 1234567891011121314grant creat..

[SQL]VIEW 의 기초

VIEW의 기초 뷰(view)는 하나 이상의 테이블 (또는 다른 뷰)에서 원하는 모든 데이터를 선택하여, 그들을 사용자 정의하여 나타낸 것이다. 뷰 생성12345CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view[(alias[, alias]...)]AS subquery[WITH CHECK OPTION [CONSTRAINT constraint]][WITH READ ONLY [CONSTRAINT constraint]];cs의 형식으로 만든다 구문명 설명 OR REPLACE 뷰가 이미 있으면, 다시생성 FORCE 기본테이블의 존재 여부 관계없이 생성 NOFORCE 기본테이블이 있는경우만 뷰생성(기본값) VIEW 뷰의 이름 alias 뷰의 query에서 선택한 표현식의 이름 지정 ..

[SQL]제약 조건(Constraints)

제약 조건(Constraints) 제약 조건의 기본적인 종류는 다음과 같다.primary key (pk) : 기본키이며, 이 조건이 있으면 해당 컬럼 값은 반드시 존재하고, 유일해야한다. 밑에 설명하는 not null과 unique가 결합된 형태라고 생각하면 된다.주의할 점으로 테이블당 1개만 존재할 수 있다.foreign key (fk) : 해당 컬럼 값이 다른 컬럼 값을 참조해야함unique (uk) : 해당 컬럼 값은 유일해야함not null (nn) : 해당 컬럼 값은 NULL을 허용하지 않음check (ck) : 해당 컬럼에 저장 가능한 데이터 값의 범위나 사용자 조건을 지정제약조건을 설정할 경우 조건에 맞춰, DML에서 값이 추가가 되거나, 안될 수 있다. 1select * from user_..

[SQL]TCL(트랜잭션 관리) 기초

TCL(트랜잭션 관리) 기초 트랜잭션은 간단하게 일 하나의 단위를 말한다.또한 가장 큰 특징으로는 All-Or-Noting방식으로 처리되는데 All-Or-Nothing은 여러 개의 명령이 모두 정상적으로 처리되면 정상 종료 하고, 하나라도 비정상적으로 처리되면 모두를 취소하는 것을 말한다. commitcommit;의 형식으로 쓴다commit은 저장되지 않은 모든 DB를 저장하고, 현재의 트랜잭션을 종료하는 것을 말하며,데이터를 처리하는 DML을 한 후에 사용된다.(create alter drop은 자동으로 commit이 발생)1commit;cs rollback저장되지 않은 데이터를 모두 취소한다음 트랜잭션을 종료하는 것을 말한다.아래에 나오는 savepoint를 이용한다면, 내가 지정한 savepoint..