반응형
인덱스(INDEX) 인덱스는 데이터 검색을 빨리 하기 위해 사용한다. 하지만 인덱스를 사용했다고 해서 데이터 검색이 무조건 빨라지는 것은 아니다. 데이터의 양이 별로 없거나 데이터 값이 몇 종류 안되어 선택도가 높으면 인덱스가 없는 게 더 빠를 수 있다. 선택도 = '1 / 서로 다른 값의 개수' 인덱스 생성에 앞서 다음의 고려사항 인덱스는 WHERE 절에 자주 사용되는 속성이어야 한다. 인덱스는 조인에 자주 사용되는 속성이어야 한다. 단일 테이블에 인덱스가 많으면 속도가 느려질 수 있다.(테이블 당 4~5개 정도 권장) 속성이 가공되는 경우 사용하지 않는다. 속성의 선택도가 낮을 때 유리하다. 인덱스의 생성 CREATE [REVERSE] [UNIQUE] INDEX[인덱스이름] ON TABLE 이름 (컬..
뷰(VIEW) : 하나 이상의 테이블을 합하여 만든 가상의 테이블입니다. 합한다는 말은 SELECT 문을 통해 얻은 최종결과를 뜻하며, 뷰는 이러한 결과를 가상의 테이블로 정의하여 실제 테이블처럼 사용할 수 있도록 만든 데이터베이스 개체입니다. VIEW 생성 CREATE VEW VIEWNAME AS SELECT문 create view vw_customer as select * from customer where address like '%대한민국%'; VIEW 수정 CREATE OR REPLACE VIEW 뷰이름[(열이름 [,…])] AS SELECT 문 CREATE OR REPLACE VIEW VW_CUSTOMER(CUSTID, NAME, ADDRESS) AS SELECT CUSTID, NAME, AD..
부속질의 : 하나의 SQL문 안에 다른 SQL 문이 중첩된 질의 데이터가 대량일 경우 → 데이터를 모두 합쳐서 연산하는 조인보다 필요한 데이터만 찾아서 공급해 주는 부속질의가 성능이 더 좋다. 주질의 : 외부질의 부속질의 : 내부 질의 스칼라 부속질의 - SELECT 부속 질의 SELECT (SELECT NAME FROM CUSTOMER CS WHERE CS.CUSTID=OD.CUSTID) " NAME ", SUM(SALEPRICE) "TOTAL" FROM ORDERS OD GROUP BY OD.CUSTID; 인라인 뷰 - FROM 부속질의 SELECT CS.NAME, SUM(OD.SALEPRICE) "TOTAL" FROM (SELECT CUSTID, NAME FROM CUSTOMER WHERE CUSTID
NULL 값 처리 NULL은 아무 값도 없는 상태 Null != 0, (빈문자), (공백) Null값은 비교 연산자로 비교 불가능 NULL값에 대한 연산과 집계합수 불가능 ※ 주의사항 NULL + 숫자 = NULL 집계 함수 계산시 NULL이 포함된 행은 집계에서 제외 해당되는 행이 없는 경우 SUM, AVG의 결과는 NULL COUNT의 결과는 0 NULL값을 확인하는 방법 NULL값을 찾을 때 -> IS NULL NULL이 아닌 값을 찾을 때 -> IS NOT NULL SELECT * FROM MYBOOK WHERE PRICE IS NULL; NVL 함수 NVL()은 NULL 값을 다른 값으로 대치하여 연산하거나 다른 값으로 출력하는 함수다. NVL(속성 ,값) // 속성 값이 NULL이면 '값'으로..
날짜 시간 함수 날짜는 단순히 문자열로 저장하여 관리할 수도 있지만 날짜형 데이터로 저장하여 관리하면 편리하다. 날짜를 더하거나 차이를 구하는 등의 연산을 손쉽게 처리할 수 있기 때문이다. DATETIME 날짜 시간 부분을 나타내는 인수 DATETIME의 특정한 규칙 YYYY : 네자리 연도 YY : 두 자리 연도 날짜형 데이트는 -, +를 사용하여 원하는 날짜로부터 이전(-)과 이후(+)를 계산할 수 있습니다. SELECT ORDERID "주문번호", ORDERDATE "주문일", ORDERDATE+10 "확정" FROM ORDERS; TO_DATE 문자형으로 저장된 날짜를 날짜형으로 변환하는 함수 SELECT TO_DATE('2018-01-09', 'YYYY-MM-DD')+5 BEFORE, TO_DA..
문자 함수 REPLACE REPLACE(TABLENAME, '이전문자', '변경할 문자') 문자열을 치환하는 함수 SELECT BOOKID, REPLACE(BOOKNAME, '야구', '농구') BOOKNAME, PUBLISHER, PRICE FROM BOOK LENGTH 글자 수를 세어주는 함수 단위 문자(CHAR) 단위 LENGTH(TABLENAME) : CHAR 단위 LENGTHB(TABLENAME) : BYTE 단위 SELECT BOOKNAME "제목", length(bookname) "글자수", lengthB(bookname) "바이트수" FROM BOOK WHERE PUBLISHER = '굿스포츠'; SUBSTR 문자열 중 특정 위치에서 시작하여 지정한 길이만큼의 문자열을 반환하는 함수다. S..
숫자함수 ABS 함수 : 절대값을 구하는 함수 select abs(-78), abs(+78) from dual; ROUND 함수 반올림 한 값을 구하는 함수 ex) 4875를 소수 첫째 자리까지 반올림한 값을 구하시오. SELECT ROUND(4.875, 1) FROM DUAL; 숫자 함수의 연산 숫자 함수는 입렵 값으로 직접 숫자를 입력 할 수 도있지만 열이름을 사용할 수도 있다. 또한 여라 함수를 복합적으로 사용할 수도 있다. select custid "고객번호", round(sum(saleprice)/count(*), -2) "평균금액" from orders group by custid;
큐, 스택, 리스트 객체들을 바꾸는 것이 가능합니다. 복사하려는 컬렉션을 매개변수로 받아들이는 생성자를 쓰기만 하면 됩니다. 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 32 33 34 35 36 37 38 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace QueStackCopy { public partial..
Stack LIFO, 후입 선출 방식 스택에 아이템을 넣는 것 push 스택에 아이템을 꺼내는 것을 pop - push : stack 객체를 추가 - pop : Queue에 객체를 제거 - Count : 객체의 갯수 - Clear : 모든 객체 제거 스택에서 아이템을 꺼내면 가장 최근에 집어넣은 아이템이 pop 됩니다. Ex)탄창 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 32 33 34 35 36 37 38 39 40 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using..
큐 - FIFO, 선입 선출 방식 - enqueue : Queue에 객체를 추가 - dequeue : Queue에 객체를 제거 - Count : 객체의 갯수 - Clear : 모든 객체 제거 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 32 33 34 35 36 37 38 39 40 41 42 43 44 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System..