전체 글

배우는 과정..
배열 CURSOR ~ IS ~ (DECLARE - 선언문) 배열 사용법 CURSOR 커서변수명 IS SELECT 컬럼1,컬럼2,... FROM 테이블명 [WHERE] 반복문 FOR ~ IN ~ LOOP ~ END LOOP 특징 증감식이 없고, 데이터의 끝에 도달하면 반복문 종료 (BEGIN - 실행문) 반복문 사용법 FOR 변수명 IN 커서변수명 LOOP 반복문 END LOOP 값 출력 예시 반복문의 변수명.컬럼명 FOR 변수명 IN 커서변수명 LOOP DBMS_OUTPUT.PUT_LINE(변수명.컬럼명); END LOOP
조건문 (BEGIN - 실행문) 조건문 사용법 IF 조건식 THEN 실행문; ELSE 실행문2; END IF; 예제 BEGIN -- MOD(값, 나눌값) : 나머지 연산하는 함수 IF MOD(4,2) = 0 THEN DBMS_OUTPUT.PUT_LINE('짝수입니다.'); ELSE DBMS_OUTPUT.PUT_LINE('홀수입니다.'); END IF; END; /
pl/sql PROCEDURE/FUNCTION , DB 프로그래밍 분야(SQL 숙련자들) 난이도가 높다 자바/JS 처럼 코딩하는 것을 말함 코딩 특징 제어문(조건문/반복문),변수/상수 소스 Oracle DB 에 저장된다. 장점 성능향상 ※ 주의점 화면 출력 모드 변경 : ON (출력 켜기) SET SERVEROUTPUT ON; 입력 받기 p_변수명 : 입력용 변수 v_변수명 : 단순 변수 ACCEPT 변수 prompt '입력창에 나올 문자열' 프로시저 코딩!! 선언부 : DECLARE 실행부 : BEGIN ~ END DECLARE -- 1) 선언부 : DECLARE -- 변수 초기화 , 변수정의 : 숫자(NUMBER) , 문자(VARCAHR2) , 날짜 (DATE) [자료형] -- ..
뷰 VIEW 하나 이상의 테이블이나 다른 뷰를 이용해서 생성하는 가상의 테이블 활용 1) 보안을 유지하기 위해 사용: 사원테이블 - 급여컬럼 (비밀유지) 2) SQL 문을 미리 만들어 놓고 재활용 : 코딩 생산성 향상 특징 뷰는 INSERT 도 가능하다! 단, 그룹함수로 만들어진 뷰는 INSERT가 불가능하다. 또한, 읽기전용 뷰도 INSERT가 불가능하다. 그룹함수로 만들 뷰는 꼭 컬럼에 별칭(AS 별칭)을 붙여주세요 뷰 생성 , [OR REPLACE] 쓰면 뷰 수정도 가능 뷰이름 : VW_테이블명_컬럼명 CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW 뷰이름(컬럼1,컬럼2,...) AS SELECT 원본컬럼1, 원본컬럼2,... FROM 테이블명 [WITH CHECK OPTI..
계정 생성 , 권한주기 CREATE 유저 생성 Oracle DB생성 기본관리자 SYSTEM , SYS(최고관리자) 기본으로 준다 유저 생성 CREATE USER 계정명 IDENTIFIED BY 암호 유저삭제 DROP USER 유저명 GRANT 권한부여 관리자 계정으로 해야겠쥬? GRANT 권한명 , 롤명 ... TO 유저명 접속권한 CREATE SESSION 테이블생성 권한 CREATE TABLE VIEW 생성 권한 CREATE VIEW 공간에대한 권한주기(무한) 테이블(논리적 공간) => 물리적 공간 배정(할당) UNLIMITED TABLESPACE TO ※ ※ ※ 이러면 개별적으로 다 주어야 한다.. 따라서 권한들의 집합 ROLE 이라고 한다. 접속 권한들의 모임 CONNECT ..
인덱스 INDEX 조회속도 향상을 위해 조건에 해당하는 컬럼에 인덱스를 생성(지정) 가장 일반적인 B-tree 인덱스는 인덱스 키와 이 키에 해당하는 테이블의 행이 저장된 주소 값으로 구성됨 왜 쓸까? 사이트에서 조회시 이름검색이 많은데 속도가 느리다고 한다. 예시 ) WHERE ENAME LIKE '%%'; 인덱스를 만들어야 하는 기준 1) 테이블에 행의 개수가 많을 경우(데이터 건수가 많을 경우) : 10만건 이상 2) WHERE(조건절)에 해당 컬럼이 많이 등장할 경우 3) 테이블 조인의 공통컬럼으로 사용될 경우 인덱스 명명법 IX_테이블명_컬럼명 , IDX_테이블명_컬럼명 생성 인덱스 생성 인덱스명 : IX_테이블명_컬럼명 , IDX_테이블명_컬럼명 CREATE [UNIQUE] INDE..
시퀀스 Sequence 호출(실행)할때마다 자동적으로 숫자를 증가시키는 것(객체) ( 특징 ) 1) Oracle에서 유일(UNIQUE)한 값을 생성해주는 객체 2) 기본키(PRIMARY KEY)와 같이 순차적으로 증가하는 칼럼을 자동으로 생성하여 중복 값이 생성되지 않음 3) 시퀀스는 테이블과는 독립적으로 저장하고 생성됨 시퀀스 문 작성 CREATE SEQUENCE [스키마.] 시퀀스명 INCREMENT BY 증감값 START WITH 시작값 [MINVALUE | NOMINVALUE] 최솟값 [MAXVALUE | NOMAXVALUE] 최댓값 [CYCLE | NOCYCLE] [CACHE | NOCACHE] [ORDER | NOORDER] -- INCREMENT BY : 시퀀스 실행 시 증가시킬 값 -- S..
제약조건 이란? 테이블에 입력될 값을 제한하는 것 특징 제약조건은 컬럼별로 각각 지정할 수 있다. 테이블 생성문 CREATE TABLE 테이블명 ( 컬럼 데이터타입(크기) 제약조건 ); UNIQUE 제약조건 ( 특징 ) 1) 유일한 값만 입력될 수 있다. 2) 데이터 중복 금지 3) NULL 값은 허용한다. 테이블을 만들 때 지정문 CREATE TABLE 테이블명 ( 컬럼 데이터타입(크기) UNIQUE ); NULL , NOT NULL ( 특징 ) NULL 기본값 / NULL 값 허용 NOT NULL NULL 값 금지 테이블을 만들 때 지정문 CREATE TABLE 테이블명 ( 컬럼 데이터타입(크기) CHECK 제약조건 (CK) ( 특징 ) 칼럼에서 허용 가능한 데이터의 범위나 조건..
DML (DATA MANIPULATION LANGUAGE) 데이터 조작어 [ INSERT | SELECT | UPDATE | DELETE ] 특징 명령문 실행 후 취소가 가능하다 ROLLBACK INSERT 데이터 추가 INSERT INTO 테이블명(컬럼1,컬럼2..) VALUES(컬럼1의 데이터 , 컬럼2의 데이터 ...) 참조 : 다른 테이블 데이터 복사 INSERT INTO 복사될테이블명 SELECT * FROM 원본테이블명 ♠\ 참조 /♠ \ ( 1 ) / NULL 값 추가 암묵적 NULL 값 추가 만약 한 테이블의 컬럼이 3개인데 컬럼 2개만 추가했을때 자동으로 NULL 값이 추가됨 명시적 NULL 값 추가 값에 NULL 추가 \ ( 2 ) / DATE 형식 암묵적인 방식 (문자열 →..
CRUD 란? 약어로서 DB 또는 실무 프로젝트에서 많이 사용하는 용어 C (CREATE) R (READ) U (UPDATE) D (DELETE) DDL DATA DEFINITION LANGUAGE 데이터 정의어 데이터베이스를 생성하거나 수정하기 위해 사용하며 데이터베이스의 논리적 구조와 물리적 구조를 정의한다. [ CREATE , ALTER , DROP , TRUNCATE ] CREATE 데이터 정의어 : CREATE문 테이블 생성 CREATE TABLE 테이블명 ( 컬럼명 자료형(크기), 컬렴명 자료형(크기), ... ); ♠\ 참조 /♠ \ ( 1 ) / 자료형 NUMBER : 숫자 자료형 VARCHAR2 : 문자열 자료형 (가변 자료형) CHAR : 문자열 자료형 (고정 자료형) DAT..
메인 쿼리 (MainQuery) vs 서브쿼리 (SubQuery) 메인 쿼리 (MainQuery) 우리가 흔히 쓰던 쿼리문이다 (부모 쿼리) SELECT 컬럼명 FROM 테이블명 서브쿼리 (SubQuery) 메인 쿼리 안의 또 다른 쿼리(Query)를 말한다 (자식 쿼리) 종류 반환하는 값 개수에 따른 분류 1) 단일행 서브쿼리(Single Row) 2) 복수행 서브쿼리(Multiple Row) 3) 복수열 서브쿼리(Multiple Column) 실행 방식에 따른 분류 1) 일반 서브쿼리 : 단일행,복수행,복수열 서브쿼리 2) 상관(연관)관계 서브쿼리 : 메인쿼리의 컬럼이나 값을 사용하는 서브쿼리 3) 스칼라 서브쿼리 : 하나의 컬럼처럼 사용되는 서브쿼리 4) 인라인 뷰 서브쿼리 : 뷰 형태로 테이블을 ..
JOIN 여러 테이블의 공통컬럼이 있다면 그 테이블들을 연결하여 조회하는 것을 말한다 LEFT 조인 , RIGHT 조인 , INNER 조인 등등이 있다. 여기선 가장 일반적인 조인들만 볼것이다. 특징 1) 여러개의 테이블의 공통컬럼을 이용하여 연결이 가능( 권장 : 5개 이내 ) 2) 공통컬럼의 데이터형식이 같아야 함 일반 JOIN 이퀄조인 (=) 의 특징 두 테이블에 공통컬럼에 NULL값이 있으면 NULL 값을 제외하여 연결됨 사용법 SELECT A.컬럼명 , B.컬럼명 FROM TalbeA A, TableB B WHERE A.공통컬럼 = B.공통컬럼 아우터 조인 이퀄조인 (=) 의 특징 두 테이블에 공통컬럼에 NULL값이 있으면 NULL 값을 제외하여 연결됨 다만, 아우터 조인(..
별이춤추는밤
밤하늘