본문 바로가기

SQL22

EXISTS / NOT EXISTS EXISTS / NOT EXISTS : 데이터의 존재유무를 확인하는 연산자.주질의에서 부속질의로 제공된 속성의 값을 가지고 부속질의에 조건을 만족하여 값이 존재하면 참이 되고,주질의는 해당 행의 데이터를 출력한다. SELECT SUM(SALEPRICE) "TOTAL"FROM ORDERS ODWHERE EXISTS (SELECT * FROM CUSTOMER CS WHERE ADDRESS LIKE '%대한민국%' AND CS.CUSTID=OD.CUSTID); 답 : TOTAL46000 2018. 3. 15.
ALL / SOME / ANY ALL : ALL절에 포함된 값들 모두.>ALL : ALL의 값들보다 큰 값. all (select saleprice from orders where custid='3'); 답 520000221000 SOME과 ANY는 동일한 기능을 한다. select orderid, salepricefrom orderswhere saleprice > SOME(select saleprice from orders where custid='3'); 답 22100052000010130007130006120008120003800097000 ALL은 모든 값보다. 라는 의미이므로 MAX의 뜻을 가지고 있다.SOME은 어떤 값보다. 라도 의미이므로 MIN의 뜻을 가지고 있다. 2018. 3. 15.
IN / NOT IN QUERY IN SUBQUERY QUERY의 값들이 SUBQUERY의 값에 포함 될 때를 찾는 것. 질의 4-17대한민국에 거주하는 고객에게 판매한 도서의 총판매액을 구하시오. SELECT SUM(SALEPRICE) "TOTAL"FROM ORDERSWHERE CUSTID IN (SELECT CUSTID FROM CUSTOMER WHERE ADDRESS LIKE '%대한민국%'); 질의 4-17대한민국에 거주하지 않는 고객에게 판매한 도서의 총판매액을 구하시오. SELECT SUM(SALEPRICE) "TOTAL"FROM ORDERSWHERE CUSTID NOT IN (SELECT CUSTID FROM CUSTOMER WHERE ADDRESS LIKE '%대한민국%'); 2018. 3. 15.
부속질의 Subquery 스칼라 부속질의(Scalar subquery)- select절에서 사용되는 부속 질의로, 부속질ㄷ의의 결과값을 단일 행, 단일 열의 스칼라 값으로 반환함.- 스칼라 부속질의는 원칙적으로 스칼라 값이 들어갈 수 있는 모든 곳에 사용 가능하며 일반적으로 select문과 update set절에 사용됨- 주질의와 부속질의와의 관계는 상관/비상관 모두 가능 select custid,(select name from customer cs where cs.custid=od.custid),sum(saleprice)from orders odgroup by custidorder by sum(saleprice); 데이터 양이 적을때 사용하면 좋다. select cs.name, sum(od.saleprice) "total"fr.. 2018. 3. 15.
SQL 내장함수 예제 -- desc sys.dual-- 절대값select abs(-78), abs(78) from dual;-- 반올림(소수점)select round(4.875,1) from dual;-- 반올림(소수점이상)select custid "고객번호", round(sum(saleprice)/count(*), -2) "평균 금액"from ordersgroup by custidorder by custid;--이름 교체select bookid, replace(bookname, '야구', '농구') bookname, publisher, pricefrom book;select bookid,bookname, publisher, pricefrom book;--글자수, 바이트수select bookname "제목", length(b.. 2018. 3. 14.
TRANSACTION 트랜잭션(TRANSACTION) : DBMS에서 데이터를 다루는 논리적인 작업의 단위 무결성을 유지하기 위해 원자성(전부 수행되거나 전부 안되거나), 일관성(수행 전이나 후나 일관된 상태), 고립성(다른 트랜잭션이 끼어들어 변경중인 데이터 값을 훼손하는 일이 없어야), 지속성(데이터가 항상 지속되어야) 의 성질을 갖는다. 사용 예) 은행 계좌 명령어 문법 설명 START TRANSACTION SET TRANSACTION NAME 트랜잭션의 시작 COMMIT COMMIT 트랜잭션의 종료 ROLLBAKC ROLLBACK {TO } 트랜잭션을 전체 혹은 SAVEPOINT까지 무효화 시킴 SAVE SAVEPOINT 를 만듦 SET TRANSACTION NAME 'mytran';INSERT INTO BOOK VA.. 2018. 3. 8.
INDEX INDEX INDEX, 생성 목적 : 도서의 색인이나 사전과 같이 데이터를 쉽고 빠르게 만든 가상의 테이블이다. 데이터 베이스의 물리적 저장 B-tree- 루트 노드- 내부 노드- 리프 노드 고려사항- where절에 자주 사용되는 속성이어야 함- 조인에 자주 사용되는 속성이어야 함- 단일 테이블에 인덱스가 많으면 속도가 느려질 수 있다. (테이블 당 4~5개 적절)- 속성이 가공되는 경우 사용하지 않는다.- 속성의 선택도가 낮을 때 유리함. (속성의 모든 값이 다른 경우)- 변경이 많이 일어나는 데이터에는 사용하지 않는게 좋다. 속성의 선택도BAD : 값 2개 = 1/2 50%GOOD : 값 100개 = 1/100 1% 일 때1%짜리가 인덱스를 만들기 유리함.검색할 조건 및 값이 많을수록 유리. INDE.. 2018. 3. 8.
View View는 하나 이상의 테이블을 합하여 만든 가상의 테이블. 장점편리성 및 재사용성보안성독립성 제공 뷰의 특징1. 원본 데이터 값에 따라 같이 변함.2. 독립적인 인덱스 생성이 어려움.3. 삽입, 삭제, 갱신 연산에 많은 제약이 따름. create or replacedrop view 2018. 3. 8.
2018-03-07 SQL IN SELECT *FROM BOOKWHERE PUBLISHER IN ('굿스포츠','대한미디어'); 6역도 단계별기술 굿스포츠 60001축구의 역사 굿스포츠 70005피겨 교본 굿스포츠 8000 3축구의 이해 대한미디어220004골프 바이블 대한미디어35000 SELECT *FROM BOOKWHERE PUBLISHER NOT IN ('굿스포츠','대한미디어'); 11기초자바정석 도우출판사3000012같이 하는 축구 열람 ㄱㄱ 1000013차범근과 함께하는 축구 ㄴㄴ 20000141234 asdf 1200015스포츠 의학 한솔 의학 서적9000016스포츠 의학2 한솔 의학 서적2축구아는 여자 나무수 130007야구의 추억 이상미디어200008야구를 부탁해 이상미디어130009올림픽 이야기 삼성당 7500.. 2018. 3. 7.