728x90

oracle 30

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

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..

데이터 베이스- 객체

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)

데이터베이스 그룹화(그룹 함수)-3

2021/02/25 수업3 ​ ​ ​ ROLLUP/CUBE/GROUPING/GROUPING SETS/GROUPING_ID/LISTAGG/PIVOT ​ SELECT 필드, 그룹함수 FROM 테이블명 GROUP BY ROLLUP(필드); --> ROLLUP안에 들어있는 필드를 기준으로 열을 지정하여 그룹화 ​ SELECT 필드, 그룹함수 FROM 테이블명 GROUP BY CUBE(필드); --> ROLLUP과 같은 역할을 하지만 보기에서와 같이 부서와는 상관없이 직책별 결과가 모두 출력 CUBE는 지정한 모든 열에서 가능한 조합의 결과를 모두 출력 ​ ​ ​ SELECT 필드, 그룹함수 FROM 테이블명 GROUP BY GROUPING SETS(필드); --> 소그룹으로 나누지 않고 모두 대그룹으로 처리하여..

데이터베이스 복습문제 1(SELECT문~)

2021/02/25 수업3 ​ ​ ​ ​ Q1) 테이블의 구조를 샆피는 명령어는? Q2) 실습에 사용될 과목 테이블의 구조를 검색하라. Q3) 실습에 사용될 수강 테이블의 모든 데이터를 검색하라. Q4) 과목들의 과목번호와 과목이름을 검색하라. Q5) 학생들의 학번과 이름, 성별을 검색하라. Q6) 학생들의 학번과 이름, 학년, 반을 검색하라. Q7) 과목번호, 학번, 점수를 검색하라. Q8) 학생들의 성별 중복을 제거하고 검색하라. Q9) 학생들의 학과, 학년 중복을 제거하고 검색하라. Q10) 학생들의 학과, 반 중복을 제거하고 검색하라. Q11) 학생들의 키를 5만큼씩 증가시킨 값을 검색하라.(null값은 0) Q12) 학생들의 학번과 이름을 별칭을 “학번”과 “이름” 으로 부여하여 검색하라. Q1..

데이터베이스 그룹화(그룹 함수)-2

2021/02/25(목) 수업3 ​ ​ ​ - GROUP BY/ HAVING ​ SELECT 필드명, 그룹함수 FROM 테이블명 GROUP BY 필드명; -->출력하고자 하는 값에 일반 필드와 그룹함수가 같이 들어가 있으면 GROUP BY를 사용하여 그룹화 시켜줘야 출력가능 ​ SELECT 필드명, 그룹함수 FROM 테이블명 GROUP BY 필드명 HAVING 그룹함수 조건; ---> 그룹함수에 조건을 주고 싶을 때 HAVING사용 WHERE절에서는 불가능 WHERE절은 그룹함수에 조건을 줄 수 없다 ​ SELECT 필드명, 그룹함수 FROM 테이블명 GROUP BY 필드명; 일반 필드와 그룹함수를 함께 출력할 때 GROUP BY 사용 SELECT 필드명, 그룹함수 FROM 테이블명 GROUP BY 필드..

데이터베이스 그룹화(그룹 함수)-1

2021/02/25 수업3 ​ ​ 그룹 함수 - SUM/COUNT/MAX/MIN/AVG/STDDED ​ SELECT MAX(필드) FROM 테이블명; SELECT MIN(필드) FROM 테이블명; --> 필드 안에 제일 큰수(MAX), 필드안에 제일 작은 수(MIN) 출력 ​ SELECT COUNT(필드 OR *) FROM 테이블명; SELECT 필드1, COUNT(필드 OR *) FROM 테이블명 GROUP BY 필드1; --> COUNT는 갯수를 세어주는 명령어 *은 전체를 뜻함 --> 두번째 줄에 GROUP BY를 써주는 이유는 COUNT는 그룹 함수(다중행)이고 필드1은 일반 행이기 때문에 GROUP BY로 묶어줘야지만 값이 제대로 출력될 수 있다 ​ SELECT SUM(필드명) FROM 테이블 ..

728x90