본문 바로가기

클라우드 활용 자바개발자 양성과정/02. 데이터베이스 활용15

13. OBJECT(TRIGGER) ㅁ PL/SQL에 이름을 붙여서 객체로 만들 수 있음. 프로시저로도 만들 수 있고 트리거로도 만들 수 있다.- PL/SQL 코드를 객체화하여 저장 프로시저나 트리거로 만들 수 있습니다.  ㅁ - 특정 테이블에 변경사항(이벤트) 발생시(DML문) 묵시적으로(자동으로) 실행시킬 내용을 정의해둘 수 있는 데이터베이스 객체.- 한번 정의해두면 내가 매번 실행 안해도 됨.- PL/SQL 구문을 이용해서 생성  ㅁ 트리거 종류 (1) SQL문 실행시기에 따라- BEFORE TRIGGER : 특정 테이블에 이벤트가 발생되기 전에 트리거 실행- AFTER TRIGGER : 특정 테이블에 이벤트가 발생된 후에 트리거 실행  (2) SQL문에 영향을 받는 행수에 따라 - STATEMENT TRIGGER(문장 트리거) : .. 2024. 7. 25.
12. PL/SQL ㅁ PL/SQL은 데이터베이스 객체같은 것은 아니고 문법이다.  ㅁ - Procedure Language extension to SQL- 오라클 내에 내장되어 있는 절차적 언어- 변수의 정의, 조건/반복처리  ㅁ PL/SQL 구조- 선언부 : DELCARE로 시작. 변수 및 상수를 선언 및 초기화 가능.- 실행부 : BEGIN으로 시작. 실행부는 필수로 작성해야 한다. SQL문 또는 제어문(조건/반복) 로직 기술 가능.- 예외처리부 : EXCEPTION으로 시작. 예외발생시 실행할 구문을 미리 정의.  ㅁ 화면에 문구 출력  ㅇ 출력결과를 보기 위해서 SERVEROUTPUT 옵션을 ON으로 설정해야 한다. (기본값은 OFF이다)  SET SERVEROUTPUT ON;   ㅇ BEGIN~END; 는 필수다.. 2024. 7. 25.
11.OBJECT(VIEW) ㅁ - 쿼리문(SELECT문)을 저장해둘 수 있는 데이터베이스 객체.- 내가 자주 쓰는 쿼리문을 저장해두는 것.- 임시 테이블처럼 활용할 수 있음.실제 데이터가 존재하는 물리적 테이블은 아니고, 논리적인 테이블이다.- VIEW를 통해 DML문 수행시 많은 제약이 있으므로 조회용으로만 쓰는 것을 권장함.  ㅁ 이전까지는 다 작성해야 했다. ㅇ '한국'에서 근무하는 사원의 사번, 이름, 부서명, 급여, 근무국가명 조회 SELECT EMP_ID, EMP_NAME, DEPT_TITLE, SALARY, NATIONAL_NAME FROM EMPLOYEE JOIN DEPARTMENT ON DEPT_CODE = DEPT_ID JOIN LOCATION L ON LOCATION_ID = LOCAL_CODE JOIN NAT.. 2024. 7. 24.
10. OBJECT(SEQUENCE) ㅁ - 일련번호를 생성해주는 데이터베이스 객체- 주로 기본키 컬럼값으로 사용됨. (회원번호, 사원번호, 게시글번호 등)  ㅁ 시퀀스 생성 CREATE SEQUENCE 시퀀스명                        //      이렇게만 해도 시퀀스는 생성됨. [START WITH 시작숫자]                                    //      몇번부터 시작할지 지정 가능. (기본값1)[INCREMENT BY 증가값]                                  //      몇씩 증가할지도 지정 가능. (기본값1)[NOMAXVALUE | MAXVALUE 숫자]                  //      상한값 지정할 수도 있고, 안할 수도 있음. (기본값 겁나큼.. 2024. 7. 24.
09. TCL(COMMIT, ROLLBACK + SAVEPOINT) ㅁ DCL은 데이터 제어어TCL은 트랜잭션 제어어 ㅁ - Transaction Contol Language 트랜잭션 제어어- 트랜잭션은 데이터베이스의 논리적 연산단위(업무단위)- 데이터의 변경이 실제 바로 DB에 반영되지 않음. 추가, 수정, 삭제가 된 것처럼 보이지만 실제론 안되어있음.변경 사항들이 하나의 트랜잭션으로 묶여있다.  ㅁ TCL 종류- COMMIT : 트랜잭션에 포함되어있는 변경사항을 실제 DB에 반영시키고 트랜잭션 소멸- ROLLBACK : 트랜잭션에 포함되어있는 변경사항을 삭제(취소)한 후 트랜잭션 소멸 - SAVEPOINT : 현재 시점에 특정 세이브포인트명으로 임시저장점을 만든다.                          롤백시 전체 취소가 아니라 일부만 롤백 가능. ㅁ 트랜잭션.. 2024. 7. 24.
08_DDL(ALTER, DROP) + DCL(GRANT, REVOKE) ㅁ DDL들은 롤백이 불가능하다.  ㅁ - 데이터베이스 객체(구조)를 변경하는 언어 (DDL)  ALTER 데이터베이스객체 객체명 변경할내용;  - 변경할 객체가 테이블일 경우 (지금은 테이블밖에 안배웠음) ALTER TABLE 테이블명 변경할내용; (1) 컬럼 추가/수정/삭제(2) 제약조건 추가/삭제(3) 컬럼명/제약조건명/테이블명 변경   (1) 컬럼 추가/수정/삭제  i) 컬럼 추가(ADD) ALTER TABLE 테이블명  ADD 컬럼명 데이터타입 [DEFAULT 기본값] - DEPT_COPY에 CNAME과 LNAME 컬럼 추가 ALTER TABLE DEPT_COPY ADD CNAME VARCHAR2(20);ALTER TABLE DEPT_COPY ADD LNAME VARCHAR2(20) DEFAUL.. 2024. 7. 23.
07_DML(INSERT, UPDATE, DELETE) ㅁ - Data Manipulation Language 데이터 조작어- 데이터값을관리(삽입, 수정, 삭제)하는 언어- INSERT(삽입), UPDATE(수정), DELETE(삭제)  ㅁ INSERT- 테이블에 새로운 행을 추가하는 구문. (행단위로 추가가 된다)  (1) 테이블의 모든 컬럼값을 제시해서 한 행 추가 INSERT INTO 테이블명 VALUES (값, 값, 값, ... ); - 테이블에 존재하는 컬럼의 순서대로 모든 값을 작성해야 한다.  INSERT INTO EMPLOYEE VALUES ( 900, '이춘향', '980918-2222211', 'jang_ch@br.com', '01011112222,                                                    .. 2024. 7. 23.
06_DDL(CREATE) ㅁ SQL DEVELOPER에서 관리자 계정으로 접속해서 새 계정 생성. CREATE USER DDL IDENTIFIED BY DDL;GRANT CONNECT, RESOURCE TO DDL; - 초록색 플러스 아이콘(접속창)에서, DB 서버가 있다면 [세부정보]-[호스트이름]에 그 IP 주소를 칠 텐데 본인 PC를 쓸 거라 그냥 localhost 쓰면 됨.  ㅁ 새로 만든 계정이라 테이블이 없다.- 데이터를 보관하기 위해서는 테이블이 필요하다.    ㅁ - Data Definition Language 데이터 정의어- 데이터베이스 객체들(생성, 수정, 삭제)을 관리하는 언어- CREATE, ALTER, DROP, RENAME, TRUNCATE   ㅁ 데이터베이스 객체 - 저것들이 다 객체다.- 자바의 객체.. 2024. 7. 22.
데이터베이스 활용 실습문제 모음 [ 01_SELECT(기본문법 및 함수)_실습문제 - 01_SCOTT계정 실습문제  ][ 종합실습문제1_춘대학 - SQL01_SELECT(basic) ][ 종합실습문제1_춘대학 - SQL02_SELECT(FUNCTION) ] [ 02_SELECT(JOIN)_실습문제 - SELECT(JOIN)_실습문제_BR계정 ] [ 종합실습문제1_춘대학 - SQL_03_SELECT문제파일 ] [ 03_DDL(CREATE)_실습문제 ][ 종합실습문제1_춘대학 - SQL_04_DDL,DML_CNS계정_문제 ][ 종합실습문제2_도서관련문제 (ETC계정) ][ 종합실습문제3_상품관련문제 (ETC계정 ][ 종합실습문제4_축구관련문제 (SOCCER계정)][ 종합실습문제5_도서관련문제 (WORKSHOP계정) ]    [ 01_SEL.. 2024. 7. 19.
05. SUBQUERY ㅁ 서브쿼리 종류 ㅁ 서브쿼리는 대부분 단일행 서브쿼리가 많이 사용된다.  ㅁ - 하나의 쿼리문 안에 포함되어있는 또다른 쿼리문- 메인 쿼리를 위해 보조 역할을 수행- 서브쿼리가 먼저 실행되고 메인쿼리가 실행된다. ㅁ 서브쿼리의 종류- SELECT절 : 스칼라 서브쿼리- FROM절: 인라인 뷰- WHERE절 : 단일행, 다중행, 다중열, 다중행다중열 서브쿼리  ㅁ 예제 (노옹철 사원과 같은 부서에 속한 사원들 조회) SELECT DEPT_CODEFROM EMPLOYEEWHERE EMP_NAME = '노옹철';   //   D9 SELECT EMP_NAMEFROM EMPLOYEEWHERE DEPT_CODE = 'D9';  - 이 두 과정을 하나의 쿼리로 축약.  SELECT EMP_NAMEFROM EMPL.. 2024. 7. 19.
04. JOIN (조인문) ㅁ 조인이 관계형 데이터베이스의 꽃이다. ㅁ 조인은 여러 테이블에서 데이터를 조회하기 위해 사용한다. - 두 개 이상의 테이블에서 데이터를 가져와 하나의 결과 집합으로 결합합니다.- EMPLOYEE 테이블에서 직급 코드만 가져올 것이 아니라, 조인을 해서 JOB 테이블에 있는 직급명도 가져올 수 있다.  ㅁ - 두 개 이상의 테이블에서 데이터를 조회하고자할 때 사용된다.- 조회 결과는 하나의 결과물로 조회된다.- 매칭되는 컬럼(동일한 데이터를 가지고 있는 컬럼) 을 가지고 조건을 작성하여 조인한다. ㅁ 조인 문법은 크게 2가지로 나뉜다.- ANSI만 알아도 되긴 함. ANSI 방식이 오라클에서도 돼서. 근데 회사에서 오라클 방식 쓸 수도 있으니. (1) 오라클 전용 구문 방식(2) ANSI(미국국립표준협.. 2024. 7. 18.
03. GROUP BY & HAVING ㅁ GROUP BY & HAVING- 같은 값을 가진 데이터들을 하나의 그룹으로 묶어서 처리- 주로 그룹 함수와 함께 사용함 -    SELECT   컬럼, 산술식, 함수식 , ... AS "별칭"        FROM   테이블명      WHERE   조건식GROUP BY   그룹기준의 컬럼 | 함수식, ...  ㅁ 유의사항. GROUP BY절에 명시한 컬럼만 SELECT절에 작성이 가능하다.   - 그룹함수에 인자로 주는 컬럼값 말고, 그냥 조회할 때 GROUP BY절에 명시한 컬럼만 SELECT에 작성 가능하다는 것.     SELECT *  FROM EMPLOYEE  GROUP BY DEPT_CODE; - 오류  - GROUP BY에 DEPT_CODE(컬럼)를 제시하면 DEPT_CODE(컬럼)값.. 2024. 7. 18.
02. SELECT (함수) ㅁ - 전달된 값을 가지고 특정 연산 수행 후 결과를 반환해줌.- 전달된 값의 수와 반환된 값의 수를 통해 종류가 나뉨.- 단일행 함수 : N개의 값을 읽어들여 N개의 결과값 반환 (매 행마다 함수 실행 결과를 반환)- 그룹 함수 : N개의 값을 읽어들여 1개의 결과값 반환 (그룹을 지어 그룹별로 함수 실행 결과를 반환)- 결과의 행 수가 다르기 때문에 단일행 함수와 그룹함수는 함께 사용할 수 없음.- SELECT절, WHERE절, ORDER BY절, GROUP BY절, HAVING절 + DML 구문 등 다양한 곳에서 작성 가능.- 그룹 함수는 5개 정도. SUM, AVG, COUNT, MAX, MIN- 단일행 함수는 엄청 많다.  ㅁ 어떤 타입으로 반환하는지를 잘 알아야 중첩해서 잘 쓸 수 있다.   .. 2024. 7. 17.
01. SELECT (기본 문법) ㅁ 보통 테이블의 첫 컬럼이 기본키(PRIMARY KEY)- 절대 중복되면 안되고, 없어서도 안 됨. - 식별자 역할 수행. ㅁ 컬럼값 = 데이터값.- 행과 열이 만나는 지점. 하나 하나가 데이터다. ㅁ SQL 명령어를 이렇게까지 세분화하지 않고 크게 3개로 분류하기도 한다.- DDL, DML, DCL- DQL(SELECT)은 DML로, TCL(COMMIT, ROLLBACK)은 DCL로.     ㅁ 명령문을 전부 소문자로 실행해도 결과는 동일하다. - 오라클의 예약어(키워드)는 대소문자를 가리지 않는다.- 테이블명, 칼럼명도 대소문자를 가리지 않는다. - 작성 스타일은 회사마다 다르다. 전부 대문자, 전부 소문자, 예약어는 대문자 나머지는 소문자로 쓰기도 한다. - 단 실제 담겨있는 데이터 값은 대소문자.. 2024. 7. 16.
0. 오라클 설치 ㅁ 웹개발 : 자바 + 오라클(dbms, sql문) + 화면구현(html, css, js) - 중요도: 자바 40%, 오라클 40%, 화면구현 20%오라클도 자바만큼이나 중요하다.화면구현은 실제로 우리가 할 일이 별로 없다.- 이 셋으로 세미프로젝트- 나중에 프레임워크 배우면 전체를 얹어서 파이널 프로젝트   ㅁ Mybox에서 두 개 다운만 먼저. - 체크안된 하나는 문제 생겼을 때를 대비한 다른 버전임.- 설치를 바로 안하고 나중에 같이하는 이유는 비밀번호 설정 때문에.     ㅁ pdf 강의교안 - 001 데이터베이스 개요  ㅁ Data와 Database- data: 실질적인 값 그자체- 정보: 데이터를 기반으로 의미를 부여한 것 ㅁ Database- 정의라는 것은 규칙이라고 할 수 있다. - 공동으.. 2024. 7. 15.