본문 바로가기

DB관련

(37)
PL/SQL -2 스칼라 변수 A>렉시칼 : 문자 집합 PL/ SQL 렉시칼: pl/sql 안에서 사용되는 문자 집합들 ex)식별자, 구분자 ,리터럴 등.... 1.따옴표가 쓰일때 식별자의 대소문자 구분이 필요할 때, 공백 같은 문자가 포함될 경우 예약어 사용시 B>중첩된 PL/SQL 블록 작성하기 예시1. 변수의 스코프 DECLARE v_first VARCHAR2(5) := 'Outer'; --자바로 따지면 전역변수 BEGIN DECLARE v_second VARCHAR2(5) := 'Inner'; --자바로 따지면 지역변수 BEGIN DBMS_OUTPUT.PUT_LINE(v_first); DBMS_OUTPUT.PUT_LINE(v_second); END ; DBMS_OUTPUT.PUT_LINE(v_first); DBMS_OUTPUT..
PL/SQL -1 기본적으로 블록 구조이다. 중첩 블록도 가능. 포함된 블록을 nested block 이라 한다. 블록 내에서 sql 문을 사용하여 데이터를 검새하고 수정 A>블록의 유형 : 익명블록 :일회성일때 주로 사용 저장된 블록: 서브 프로그램 또는 프로그램 단위 라고도 한다. B>기본 구성 : 선언부(DECLARE) : 변수나 상수 선언 실행부(BEGIN) : 제어문, 반복문 등 실행 예외처리부(EXCEPTION) C>문법 규칙 : 1.END 이외의 예약어 뒤에는 세미콜론을 안 붙임 , 그 외에는 붙임 2. 기본적으로 문장 결과 출력을 안해줌 결과를 화면에 출력하고 싶으면 SET SERVEROUTPUT ON 3. 리터럴(문자,날짜)은 단일인용부호(‘)로 표시, 널 값은 NULL 상수로 기술 4. 예약어는 식별자명..
데이터 모델링 A.관계 데이터 모델 기본 용어 -릴레이션 : 테이블 -속성: 열 -튜플: 행 = 레코드 -도메인 : 하나의 속성이 가질 수 있는 모든 값의 집합 = 값의 범위 -차수 : 한 릴레이션 속성의 전체 개수 = 열의 개수 -카디널리티: 한 릴레이션 튜플의 전체 개수 B> 키의 종류 슈퍼키: 유일성을 만족하는 속성 또는 속성의 집합 기본키: pk 후보키: 기본키 후보 대체키: 기본키로 선택 못 받은 후보키 외래키: 다른 릴레이션의 기본키를 참조하는 속성 C> 무결성 제약조건 무결성 : 데이터 결함이 없는 상태 1. 개체 무결성: 기본키는 NULL 불가 2. 참조 무결성: 외래키는 참조할 수 없는 값을 가지지 못함 = 기본키 이외의 값 불가 D>정규화 정규화: 이상현상을 최소화 하기 위해 관련 속성들끼리만 묶을 ..
DB에 관하여 나중에 알아볼것 knowledge base DBA : db튜닝, db recovery 그리드 컴퓨팅 A> DB: 데이터의 일관성을 가질 수 있게 함 == 여러 사용자가 정보를 공유를 할 수 있도록 통합한 정보를 저장 0. DBMS 특징 -원자성 (:Atomicity ) -일관성: (Integrity ) -격리성: (Isolation ) -지속성: (Durabily ) 1.db 데이터의 특징 - 통합데이터 - 공유데이터 - 저장 데이터 - 운영 데이터 2.db의 특징 - 실시간 접근성 - 내용 기반 참조 - 동시 공유 - 계속 변화 B> 데이터의 분류 - 정형 데이터: 구조화된 데이터 , 미리 정해진 구조에 따라 정해진 데이터 - 반정형 데이터: 구조에 따라 저장된 데이터, 데이터 내용 안에 구조에 대한 ..
복수행 함수 - 연산 함수와 그룹함수 연산함수 COUNT SUM AVG MAX MIN ROLLUP :소계값 CUBE :소계 및 전체 총계 GROUPING: 그룹화 여부 - 결과는 1혹 0 GROUPINGSET: 한번의 질의로 여러개 그룹화 그룹화 A.GROUP BY GOURP BY는 열의 행화 라고 생각하면 쉽다. 테이블이 있으면 왼쪽으로 90도 돌려보자 이때 할 칼럼이 이번에는 행이 되지 않았나? 이 행이 GROUP 화 된 결과라고 생각하면 쉽다. !주의점 1. SELECT 절에서 사용된 그룹함수 이외의 컬럼이나 표현식은 GROUP BY 필수 --not a GROUP BY expression 그룹함수 안쓰면 안해도 된다. 2. GROUP BY 절에 사용된 칼럼은 SELECT 절에 사용되지 않아도 된다. --하지만 결과는 SELECT 되지 ..
일반 함수(nvl, nvl2, decode) NVL(컬럼, 치환 값) :값이 null일 경우 치환값으로 출력 NVL2(col1,col2,col3) :3항 연산자 역할 col1이 null이 아니면 col2, null이면 col3 DECODE(A,B,C,D): IF문과 비슷 A와 B가 같으면 C출력 아니면 D출력 DECODE(A,B,1,C,2,3) : A와 B가 같으면 1 아니면 C (else if역할) A와 C가 같으면 2 다르면 3 중첩 DECODE도 가능
형과 형 변환 함수 CHAR(n) : 고정길이 문자 저장 최대값은 2000바이트 CHAR2(n) :가변 길이 문자 저장 최대값 4000바이트 number(p,s) : p는 전체 자리수 1~38 자리까지 s는 소수점 이하 자리수 DATE :7바이트 LONG : 가변 길이 문자 저장, 최대 2기가 CLOB : 가변 길이 문자 저장, 최대 4기가 (Character Large Object) BLOB: 가변 길이 바이너리 데이터 , 최대 4기가 RAW(n) : 원시 이진 데이터 , 최대 2000바이트 LONG RAW(n) : 원시 2진 데이터, 최대 4기가 BFILE: 외부 파일 저장 데이터, 최대 4기가 형변환 묵시적과 명시적이 존재 묵시적 = 자동 형 변환의 경우 예시 숫자 + 문자 = 숫자 !단 숫자로 변환 가능한 문자만 자..
숫자 함수, 날짜 함수 숫자 ROUND(숫자,원하는 자리수) :반올림 (11.254 ,2) 면 11.26 (11.254,-1) 이면 11 TRUNC: 버림 MOD: 나머지 CEIL : 근접한 큰 정수 FLOOR: 근접한 작은 정수 POWER : MATH.pow(n,2) 날짜함수 날짜 +- 숫자 = 날짜 날짜 +- 날자 = 숫자 날짜에선 미래일수록 큰 날짜 취급 SYSDATE :현재 시간 MONTHS_BETWEEN(날짜,날짜) : 두 날짜 사이의 개월수 같은 달이면 소수점단위 나옴 윤년 구분은 못함 ADD_MONTHS(날짜,더할 개월): 월 더하기 NEXT_DAY(기준 날짜,'돌아오는 가장 최근 요일 날짜' ) ex)NEXT_DAY(SYSDATE,'MON') LAST_DAY() :주어진 날짜가 속한 달의 가장 마지막 날 ROUN..