본문 바로가기

반응형
   

Programming/ORACLE

(9)
9일차! 계층형 쿼리. 잘못만들면 무한 루프를 돌수도 있음. 주의. 계층 구조를 가진 데이터 ㄴ 조직도, 카테고리 조직도가 보통의 모습. 오라클의 계층형 쿼리. Start with - 계층형 데이터를 조회할 때 시작 행(위치)를 지정함. Connect by - 부모행과 자식행의 관계를 지정함. - prior 연산자를 사용해서 연결방향 지정 가능. connect by prior 부모키 = 자식키
8일차! 무결성 제약조건 - 테이블에 유효하지않는 데이터가 입력되는것을 방지. 종류 not null - 열에 null이 포함되지 않도록 지정. unique - 테이블 전체에서 고유한 값을 가지도록 지정. primary key - 테이블에서 각 행을 고유하게 식별하도록 지정. 즉 각 행을 대표할수 있게 함. foreign key - 열에 값이 입력될때 참조 테이블(다른 테이블)의 지정된 열을 참조. - 참조되는 칼럼은 반드시 프라임키나 유닉 제안조건이 지정된 컬럼이어야함. check - 열에 입력가능한 값을 미리 지정함. 제약조건 정의 컬럼 레벨에서 제약조건 정의하기. - 각각의 컬럼이 가져야 될 제약조건을 정의할 수 있다. CREATE TABLE 테이블명 ( 컬럼명 데이터타입 CONSTRAINT 제약조건이름 제약..
7일차! # 다중행 서브쿼리 - 여러 행을 반환하는 서브쿼리- 다중 행 연산자(in, any, all)을 사용한다. * IN : 조회된 결과들 중에서 임의의 하나와 일치하는 * ANY : 조회된 결과의 각 값과 비교. 이중 하나라도 조건이 만족하면 SALARY ANY(100, 200, 300) 최소값보다 큰것. 세 조건들중 아무거나 하나보다 크면 찾아진다.SALARY = ANY(100, 200. 300) IN과 동일 * ALL : 조회된 결과의 모든 값의 비교 SALARY ALL(100, 200, 300) 최대값보다 큰 것. 모든 값보다 큰것. 300보다 큰것 * 다중 컬럼 서브쿼리 SELECT NAME, GRADE, HEIGHT FROM STUDENTWHERE (GRADE, HEIGHT) = (SELECT 컬럼..
6일차! --그룹함수(그룹함수는 행이 없어도 결과 값이 반드시 있다.)-- 행의 집합에 적용해서 그룹 당 하나의 결과를 생성하는 함수-- (행의 집합은 테이블 혹은 (그룹화된 테이블)-- avg(컬럼/표현식) 평균값(null값은 무시)-- count(컬럼/표현식) (null 아닌)행의 갯수-- count(*) 모든 행의 갯수-- max(컬럼/표현식) 최대값(null값은 무시)-- min(최소값 (null 값은 무시)-- sun(합계(null값은 무시)-- select절에 그룹함수가 사용될 때는 컬럼명이나 단일행 함수를 사용할 수 없다.-- char, varchar2, number, date 타입이 그룹함수에서 연산가능한 데이타 유형이다. --student 테이블에서 가장 큰키는?SELECT MAX(height)F..
5일차! 아우터조인쿼리의 성능을 많이 떨어트림 옵티마이져유효성검사 : 쿼리문법에 문제가 있는지 확인 가장 최적의 실행방법을 만들어냄 인덱스를 쓰지 않고 풀스캔을 함 --학번, 학생이름, 학년, 담당교수이름을 표시하는 쿼리 LEFT OUTER JOIN키워드로 OUTERJOIN으로 처리--ANSISELECT S.STUDNO "학번", S.NAME "학생이름", S.GRADE "학년", P.NAME "담당교수"FROM STUDENT S LEFT OUTER JOIN PROFESSOR PON S.PROFNO = P.PROFNO; --오라클SELECT S.STUDNO "학번", S.NAME "학생이름", S.GRADE "학년", P.NAME "담당교수"FROM STUDENT S, PROFESSOR PWHERE S.PROFN..
4일차! --CASE-- WHEN 조건식 THEN 수행문-- WHEN 조건식 THEN 수행문-- ELSE 수행문--END --CASE 컬럼/표현식-- WHEN 값1 THEN 수행문-- WHEN 값2 THEN 수행문-- ELSE 수행문--END --문자열함수-- length-- substr-- instr-- replace-- trim-- rpad, lpad-- upper, lower--숫자함수-- round, trunc, ceil, floor--날짜함수-- sysdate, months_between, add_months-- 날짜+숫자, 날짜 - 숫자, 날짜 - 날짜--변환함수-- to_char(date/number. 'fmt'),to_date('string', 'pattern'), to_number('string'..
3일차! --오라클의 내장함수(SQL함수)-- -데이타에 대한 간단한계산-- -날짜나 숫자의 형식을 반환-- -개별 데이터의 수정-- -행그룹에 대한 출력 결과 조작----내장함수-- - 단일 행 함수 : 행하나 하나마다 연산을 수행해서 결과를 반환한다. -- 문자함수 : 텍스트 데이타에 대한 단순한 연산을 지원한다. 대/소문자변환, 길이, 특정문자의 위치, 잘라내기, 바꾸기-- 문자값에 대한 간단한 처리를 지원하는 함수-- 숫자함수 : 숫자데이타에 대한 단순한 연산을 지원한다. 반올림, 버리기, 나머지....-- ROUND(컬럼/표현식,n)-- 값을 n번째 자리로 반올림한다.-- (n이 음수면 소숫점 왼쪽의 수가 반올림 된다.)-- trunc(컬럼/표현식,n)-- 값을 n번째 자리까지 남기고 버린다.-- (h을..
2일차! --별칭 붙이기SELECT EMPNO AS "사원 번호" FROM EMP2;SELECT EMPNO 별칭을안적어도된다 FROM EMP2; SELECT empno 사원번호, name 이름, position 직위, pay/12 월급FROM EMP2; --DISTINCTSELECT DI.STINCT(POSITION)FROM EMP2; SELECT NAME || '의 키는' || HEIGHT || 'CM이고 몸무게는' || WEIGHT || 'KG 입니다.'FROM STUDENT; SELECT NAME "교수님", '(' || POSITION || '),' || NAME || '''' || POSITION || '''' "설명"FROM PROFESSOR; SELECT *FROM STUDENTWHERE WEIGHT..

반응형