본문 바로가기

SQL(Oracle)/Oracle 이론 정리8

[Oracle] SUBQUERY 조인: 여러개의 테이블에서 필요한 데이터 모아서 수집 =>단점: 여러 개의 서브쿼리: 여러개의 SQL문장을 한개로 통합 DML 전체에서 사용이 가능 = 종류 1) 단일행 서브쿼리 : 서브쿼리의 결과값이 1개 2) 다중행 서브쿼리 : 서브쿼리의 결과가 여러 개 3) 인라인 뷰 : FROM (SELECT~) 4) 스칼라 서브쿼리 : 컬럼 대신 사용 SELECT empno,ename,(SELECT ~ ) as dname 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 45 46 47 48 49 50 51 52 53 54 55 56 57 58.. 2020. 11. 10.
[Oracle] SEQUENCE 1) START WITH: 시작번호 2) INCREMENT BY: 증가값 3) NOCYCLE | CYCLE: 1~10 => 10까지 사용 => 1로 다시 돌아온다(PRIMARY KEY) ***1 2 4 5 6 =>중간이 비어도 무조건 증가 4) CACHE | NOCACHE: 미리 20정도를 저장=> NOCACHE 5) MAX_VALUE, MIN_VALUE: 사용빈도가 거의 없다 1 2 3 6) 다음값을 가지고 온다 seq.nextval =>4 7) 현재값을 가지고 온다 seq.currval =>3 ** PRIMARY KEY: 숫자 => 자동증가번호(중복이 없는 값을 만든다) CREATE SEQUENCE seq_no(시퀀스명) 옵션=>시작번호, 증가값, CACHE, CYCLE, MAX/MIN 2020. 8. 24.
[Oracle] JOIN Join: 두 개 이상의 테이블을 합쳐서 원하는 값들을 출력하는 기능 →테이블에 컬럼이 많을 경우 중복되는 데이터가 존재할 가능성이 커짐. 이러한 비효율성을 방지하기 위해 '정규화(:하나로 된 것을 더 작은 단위로 분리하는 기술)' 수행. 정규화 후에 여러개의 테이블로 흩어져 저장된 데이터 들을 조합해서 가져오는 기술이 조인(Join)임. #Join 문법: 네 가지 모두 호환(아래의 쿼리문은 모두 같은 결과) Oracle JOIN : 오라클에서만 사용하는 쿼리문장 SELECT empno, ename, job, mgr, hiredate, sal, comm, e.deptno, dname, loc FROM emp e, dept d WHERE e.deptno=d.deptno; ***e,d는 별칭, 컬럼명 다른 .. 2020. 8. 12.
[Oracle] 정규식 함수/그룹함수 #정규식 함수 ^ 시작문자 ^A(=A%) : A로 시작 $ 끝문자 A$(=%a) : A로 끝남 . 임의의 문자(모든 문자) * 여러문자, 0문자 [A-Z]* : 대문자 알파벳이 여러개 존재하거나 없다 + 한 글자 이상 [] 해당 문자 [AB] : A or b [가-힣] : 한글 전체 [A-Za-z] : 알파벳 전체 [^] 제외 [^A] : A를 제외 #그룹함수(=집합함수, 복수행함수) :컬럼명이나 단일행함수를 같이 사용하면 안됨. 단, GROUP BY를 이용하면 사용 가능 COUNT(*) : NULL값 포함 →Java에서 반드시 이걸로 사용 COUNT(컬럼명) : NULL값 제외 로그인, ID 중복체크 →HTML 활용 실습 참고 SELECT deptno, COUNT(*) FROM emp; 오류(∵컬럼명과.. 2020. 8. 10.
[Oracle] 단일행 함수 #단일행 함수 문자함수 변환함수 UPPER : 대문자로 변환 LOWER : 소문자로 변환 INITCAP : 맨 앞글자만 대문자 변환 SELECT UPPER('ShIn'), LOWER('ShIn'), INITCAP('ShIn') FROM DUAL; → SHIN, shin, Shin ***DUAL : 임시테이블 REPLACE('원래 문자열',' 바꿀문자', '바뀔문자') SELECT ENAME, REPLACE(ENAME, 'A','M') FROM EMP; 원래이름 ADAM→MDMM 제어함수 CONCAT('A','B') : 문자열 결합 SELECT CONCAT('HELLO ','ORACLE'), 'HELLO '||'ORACLE' FROM DUAL; →HELLO ORACEL (동일한 문장) SUBSTR(문자열,.. 2020. 8. 6.
[Oracle] SELECT / WHERE / GROUP BY / HAVING / ORDER BY #SELECT: 검색(→ DQL(질의어); Data Query Language) 형식) SELECT ~ FROM table명/view명/SELECT ~ ┌ 필요한 데이터만 검색: 컬럼명, 컬럼명,... └ 전체 검색: * #GROUP BY: 그룹컬럼 #HAVING: 그룹조건(GROUP BY와 반드시 함께 나옴) #WHERE: 원하는 조건만 골라낼 때 문법) SELECT 컬럼명/표현식 FROM 테이블/뷰 WHERE 원하는 조건(컬럼명 연산자 값); ***문자와 날짜 입력시 '작은따옴표' 사용!! #ORDER BY 오라클은 데이터 정렬이 안 된 상태→저장된 순서로 읽어오기 때문에 ORDER BY 사용 →but, 속도가 느려지므로 사용 지양, 인덱스 사용 권장 형식) ORDER BY 컬럼명(순서대로 1~) A.. 2020. 8. 5.