728x90

데이터베이스 24

데이터베이스 - 커서&예외처리 연습문제

2021/03/04(목) 7번째 수업 ​ ​ ​ ​ --명시적 커서를 사용하여 EMP테이블의 전체 데이터를 조회한 후 커서 안의 데이터가 --다음과 같이 출력되도록 PL/SQL문을 작성해 보세요. --1-1) LOOP를 사용한 방식 --1-2)FOR LOOP를 사용한 방식 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ 내 풀이 1-1) SET SERVEROUTPUT ON; DECLARE V_EMP_ROW EMP%ROWTYPE; CURSOR PRINT_CS IS SELECT * FROM EMP; BEGIN OPEN PRINT_CS; LOOP FETCH PRINT_CS INTO V_EMP_ROW; DBMS_OUTPUT.PUT_LINE('EMPNO : ' || V_EMP_ROW.EMPNO || 'ENAME :..

데이터베이스-커서와 예외처리

2021/03/04(목) 7번째 수업 ​ ​ ​ ​ 1) 커서란? SELECT문 또는 데이터 조작어 같은 SQL무을 실행했을 때 해당 SQL무을 처리하는 정보를 저장한 메모리 공간 DECLARE CURSOR 커서명 IS SQL문; BEGIN OPEN 커서명; FETCH 커서명 INTO 변수; CLOSE 커서명; END; ​ ​ ​ 커서를 이용한 LOOP문 SET SERVEROUTPUT ON; DECLARE V_DEPT DEPT%ROWTYPE; CURSOR C1 IS SELECT DEPTNO, DNAME, LOC FROM DEPT; BEGIN OPEN C1; LOOP FETCH C1 INTO V_DEPT; EXIT WHEN C1%NOTFOUND; DBMS_OUTPUT.PUT_LINE('DEPTNO : ' ..

데이터베이스-조건문&반복문 연습문제

2021/03/04(목) 7번째 수업 ​ ​ ​ ​ 책 16장 연습문제 1번 - 숫자 1부터 10까지의 숫자 중 오른쪽과 같이 홀수만 출력하는 PL/SQL 프로그램을 작성해 보세요 ​ 2번 - DEPT 테이블의 DEPTNO와 자료형이 같은 변수 V_DEPTNO를 선언합니다. 그리고 V_DEPTNO 변수 값에 10,20,30,40을 대입했을 때 다음과 같이 부서 이름을 출력하는 프로그램을 작성해 보세요. 단 부서 번호가 10,20,30,40이 아니면 N/A로 출력합니다. ​ ​ ​ ​ ​ ​ ​ 내 풀이 ​ - 1번) SET SERVEROUTPUT ON; DECLARE BEGIN FOR I IN 1..10 LOOP IF MOD(I,2)=1 THEN DBMS_OUTPUT.PUT_LINE('현재 i의 값 : ..

데이터베이스-조건문&반복문

2021/03/04(목) 7번째 수업 ​ ​ ​ PL/SQL- SQL 프로그래밍 언어 ​ DECLARE(선언부) BEGIN(실행부) EXCEPTION(예외 처리부) ​ ​ 1)조건문 IF - ELSIF - ELSE - END IF ​ DECLARE 선언할 변수 BEGIN IF 조건 THEN 조건을 만족할 시 수행할 문장; ELSIF 조건 THEN 조건을 만족할 시 수핼할 문장; ELSE 모든 조건을 만족하지 않을 때 수행될 문장; END IF; END; ​ 조건에 맞는 문장 수행 ​ ​ ​ ​ ​ ​ 2) 반복문 2-1) LOOP LOOP 반복할 문장, 명령어; EXIT WHEN 반복문을 끝낼 조건; END LOOP; ​ ​ ​ ​ ​ 2-2) WHILE LOOP ​ WHILE 조건 LOOP 반복할 작업..

데이터베이스 - 제약조건

2021/03/03(수) 6번째 수업 ​ ​ ​ 제약조건 NOT NULL/UNIQUE/PRIMARY KEY/FOREIGH KEY/CHECK ***데이터 무결성 : 데이터베이스에 저장되는 데이터의 정확성과 일관성을 보장한다는 의미 무결성을 지키기 위해 항상 유지해야하는 기본 규칙 존재 제약 조건은 이런 무결성을 위한 안전장치 ​ ​ ​ 1) NOT NULL CREATE TABLE 테이블명( 필드명 자료형 NOT NULL, . . . ); --> NOT NULL을 지정한 필드는 NULL값을 넣을 수 없다 ​ 제약조건에 이름 주기 ** CREATE TABLE 테이블명( 필드명 자료형 CONSTRAINT 제약조건명 NOT NULL . . . ); --> CONSTRAINT 후에 제약조건의 이름을 정해 줄 수 있..

데이터베이스 - 객체 연습문제

2021/03/03(수) 6번째 수업 ​ ​ ​ 책 13장 연습문제 --문제1. 다음 SQL문을 작성해 보세요. --1-1) EMP 테이블과 같은 구조의 데이터를 저장하는 EMPIDX 테이블을 만들어 보세요. --1-2) 생성한 EMPIDX 테이블의 EMPNO열에 IDX_EMPIDX_EMPNO 인덱스를 만들어 보세요. --1-3)마지막으로 인덱스가 잘 생성되었는지 적절한 데이터 사전 뷰를 통해 확인해 보세요. ​ ​ ​ --문제2 --1번에서 생성한 EMPIDX 테이블의 데이터 중 급여가 1500 초과인 사원들만 출력하는 EMPIDX_OVER15K 뷰를 생성해 보세요 --이 이름을 가진 뷰가 이미 존재할 경우에 새로운 내용으로 대체 가능해야 합니다. --EMPIDX_OVER15K 뷰는 사원번호, 사원 이..

데이터베이스 8장 연습문제

2021/03/16(화) 문제1) 급여(SAL)가 2000초과인 사원들의 부서 정보, 사원 정보를 오른쪽과 같이 출력해 보세요 (단 SQL-99 이전 방식과 SQL-99 방식을 각각 사용하여 작성하세요). 문제2) 오른쪽과 같이 각 부서별 평균 급여, 최대 급여, 최소 급여, 사원수를 출력해 보세요(단 SQL-99 이전 방식과 SQL-99 방식을 각각 사용하여 작성하세요). 문제3) 모든 부서 정보와 사원 정보를 오른쪽과 같이 부서 번호, 사원 이름순으로 정렬하여 출력해 보세요(단 SQL-99 이전 방식과 SQL-99 방식을 각각 사용하여 작성하세요). 문제4)다음과 같이 모든 부서정보, 사원 정보, 급여 등급 정보, 각 사원의 직속 상관의 정보를 부서 번호, 사원번호 순서로 정렬하여 출력해보세요(단 S..

데이터베이스 7장 연습문제

2021/03/16(화) 문제1) 다음과 같은 결과가 나오도록 SQL문을 작성해 보세요. EMP 테이블을 이용하여 부서 번호(DEPTNO),평균 급여(AVG_SAL), 최고 급여(MAX_SAL), 최저급여(MIN_SAL), 사원수(CNT)를 출력합니다. 단 평균 급여를 출력할 때 소수점을 제외하고 각 부서 번호별로 출력하세요. 문제2) 다음과 같은 결과가 나오도록 SQL문을 작성해 보세요. 같은 직책(JOB)에 종사하는 사원이 3명 이상인 직책과 인원수를 출력하세요. 문제3)다음과 같은 결과가 나오도록 SQL문을 작성해 보세요. 사원들의 입사 연도(HIRE_YEAR)를 기준으로 부서별로 몇 명이 입사했는지 출력하세요. 문제4) 다음과 같은 결과가 나오도록 SQL문을 작성해 보세요. 추가 수당(COMM)을..

데이터 베이스- 객체

2021/03/03(수) 6번째 수업 ​ ​ ​ ※ 데이터베이스에서 존재하는데 존재하지 않습니다.로 뜨는 이유 - 존재여부를 알려주게 되면 악의적인 의도를 지닌 타인의 의해 노출 될 수 있기 때문에 (어떤 사이트나 게임에서 비밀번호가 틀렸다거나 아이디가 틀렸을 때 명확하게 어떤 것이 틀렸는지 말해주지 않는 경우가 있는데 보안을 조금 더 높이기 위해 였다는 사실) ​ - index/view/인라인 뷰/시퀀스/동의어 ​ 1) index - 데이터 검색 성능의 향상을 위해 테이블 열에 사용하는 객체를 뜻함 테이블에 보관된 특정 행 데이터의 주소, 즉 위치 정보를 책 페이지처럼 목록으로 만들어 놓은 것. CREATE INDEX 인덱스명 ON 테이블명(열이름1 ASC OR DESC 열이름2 ASC OR DESC...

데이터 베이스 6장 연습문제

6장에 연습문제 풀기 --1번 --EMPNO열에는 EMP 테이블에서 사원 이름ENAME이 다섯 글자 이상이며 여섯 글자 미만인 사원 정보를 출력합니다. MASKING_EMPNO열에는 --사원번호 앞 두자리외 뒷자리를 * 기호로 출력합니다. 그리고 MASKING_ENAME열에는 사원 이름의 첫 글자만 보여주고 나머지 글자수만큼 * 기호로 출력하세요 SELECT EMPNO, SUBSTR(EMPNO,1,2) || '**' AS MASKING_EMPNO, ENAME,SUBSTR(ENAME,1,1) || '****' AS MASKING_ENAME FROM EMP WHERE LENGTH(ENAME)>=5 AND LENGTH(ENAME)

728x90