package ex1111;
public class student {
String name;
String number;
int age;
int scoreJava;
int scoreWeb;
int screAndroid;
public char[] show;
// 생성자 매소드
// this : 자기자신의 객체, 현재 실행 되는 메소드가 속한 객체
public student(String name, String number, int age, int scoreJava, int scoreWeb, int screAndroid) {
super();
this.name = name;
this.number = number;
this.age = age;
this.scoreJava = scoreJava;
this.scoreWeb = scoreWeb;
this.screAndroid = screAndroid;
}
public void show() {
System.out.print(name + "님의 자바점수는" + scoreJava + "점 입니다.\n" + name + "님의 Web점수는" + scoreWeb + "점 입니다.\n" + name
+ "님의 Android점수는" + screAndroid + "점 입니다.\n");
}
}
package ex1111;
public class studentmain {
public static void main(String[] args) {
//student 설계도 불러오기
student st1 = new student("이주희", "20201025", 20, 60, 55, 45);
student st2 = new student("홍길동", "19900216", 19, 90, 60, 100);
st1.show();
}
}
쉬움
package ex1111;
public class tv {
int tchannel;
String tcolor;
public void tchannelup() {
tchannel++;
}
public void tchanneldown() {
tchannel -- ;
}
public void print () {
System.out.print("Tv의 현재 채널은 : ");
System.out.print(tchannel +"이고, ");
System.out.println("색깔은 "+ tcolor +" 입니다.");
}
}
package ex1111;
public class tvmain {
public static void main(String[] args) {
tv ch = new tv();
ch.tchannel = 7;
ch.tcolor = "red";
ch.print();
ch.tchannelup();
ch.tchannelup();
ch.print();
ch.tcolor = "black";
ch.tchanneldown();
ch.print();
}
}
채널 up, down 필드를 만들어서 문제가 꼬여짐 다음에는 기본 틀을 먼저 파악할 필요가 있음
문제1-1 위의 ERD를 확인하고 EMP 테이블을 생성하는데, 제약조건 지정은
열 수준에서 생성하는 SQL문을 작성하시오.
create table HR.EMP(
EMPNO number(4) constraint EMP_EMPNO_pk primary key,
ENAME varchar2(10 BYTE) constraint EMP_ENAME_NN not null,
JOB varchar2(13 BYTE)constraint EMP_JOB_NN not null,
MGR number(4),
HIREDATH DATE,
SAL number(7,2)constraint EMP_SAL_NN not null,
COMM number(7,2),
DEPTNO number(2) references HR.DEPT(DEPTNO)
);
문제1-2위의 ERD를 확인하고 DEPT 테이블을 생성하는데, 제약조건 지정을
테이블 수준에서 생성하는 SQL문을 작성하시오.
(제약조건: DNAME는 NOT NULL)
create table HR.DEPT (
DEPTNO number(2) constraint DEPT_DEPTNO_pk primary key,
DNAME varchar2(14 BYTE) constraint DEPT_DNAME_NN not null,
LOC varchar2(13 BYTE)
);
문제2-1 절차적 언어인 FUNCTION과 PROCEDURE의 가장 큰 차이점은 무엇
인지 기술하시오.
FUNCTION : 결과 값을 반환하는 함수이다.
PROCEDURE : 결과 값을 반환하지 않는 함수이다.
문제2-2 아래에 부서이름을 반환하는 사용자 정의 함수를 작성하려고 한다. ( )안에 문장을 완성하고, 완성된 사용자 정의 함수를 이용하여 직원의
이름(ENAME)과 직종(JOB), 부서이름, 급여(SAL)를 조회하는 SQL문을
작성하시오
CREATE or REPLACE FUNCTION fn_deptnm(dep_id in unt)
RETURN VARCHAR
문제3-1직원정보(EMP) 테이블에서 직원 정보를 삭제할 때 해당 자료가 직원테
이블(EMP)에서 삭제되고, 동시에 삭제된 직원 자료는 EMPBAK 테이블
에 저장되도록 데이터를 관리 하려고 한다. 트리거를 이용하여 이를 구현하고자 할 때 삭제 된 데이터를 저장할
EMPBAK 테이블을 SubQuery을 이용하여 생성하시오.
create table EMPBAK as
select *
from employees
where 1 <> 1;
문제3-2EMPBAK 테이블 empno에 제약조건 이름을 empbak_pk을 갖는
primary key를 설정하고,
ename으로 인텍스를 생성하시오. (인덱스명 : ename_idx)
create index EMPBAK_idx
empno constraint ename_idx primary key
on EMPBAK_idx (ename);
문제3-3EMP 테이블에 저장된 데이터가 삭제 될 때 EMPBAK 테이블에 삭제
된 데이터가 저장되도록 절차형 언어인 트리거(delete_emp)를 작성하
였다. ()안에 들어갈 명령어를 기술하시오.
CREATE or REPLACE Trigger delete_emp
before delete ON emp for each row
문제3-4 EMP 테이블에 직원번호가 102인 직원 정보를 삭제하고 트리거에 의
해 삭제 된 데이터가 EMPBAK 테이블에 저장되었는지 확인 하시오.
문제4-1전체 직원의 평균급여 보다 급여를 많이 받는 직원의 이름(ENAME)과
직종(JOB), 급여(SAL)를 조회하는 SQL문을 작성하시오
SELECT ENAME, JOB, SAL
from EMP
where SAL >= (select avg(SAL)
from HR.EMP);
문제4-2아래의 SQL구문은 서브쿼리을 사용하여 40부서에서 근무하는 직종과
같은 직종에서 근무하는 회사 내 직원들을 조회하였다. 실행 결과 아래와 같은 오류가 발생하였는데,
오류의 발생 이유와 SQL문이 바르게 실행되도록 수정하시오.
join 을 하지 않았기에 2개 이상의 행이 리턴된다
select e.ename, j.job, s.sal
from employees e, departments d
where d.department_id(+) = e.department_id
having job = (select distinct job
from emp where deptno = 40);
and deptno <> 40
문제4-3ROWNUM을 이용해서 월급이 가장 높은 3명을 뽑을려고 하였으나, 올
바른 결과가 조회 되지 않았다. 결과가 잘못 조회된 이유를 기술하고, 올바른 SQL문을 작성하시오
다중행 함수 문제인데 단일행을 입력을 하였기 때문이다
SELECT ROWNUM, ENAME, SAL
FROM EMP
WHERE ROWNUM in(1,2, 3)
ORDER BY SAL DESC;
문제4-4아래의 SQL구문은 부서 별 평균 월급이 28,000을 초과하는 부서를 조
회한 것이다. 실행결과가 올바르지 않은 결과가 조회되었다. 그 원인을 기술하고,
올바르게 수정한 SQL문을 작성하시오.
WHERE SAL 절에 평균을 해야하는데 단순히 급여가28000 높은사람을 적었기 때문
SELECT DEPT, SUM(SAL) 합계, AVG(SAL) 평균, COUNT(*) 인원수
FROM EMP
WHERE AVG(SAL) > 28000
GROUP BY DEPT
ORDER BY DEPT ASC;
이라고 해야함
문제5-1데이터 검색의 성능을 향상하기 위하여 객체 중 INDEX를 사용한다.
인덱스를 생성하는데 고려해야 하는 사항을 2가지 이상 작성하시오.
1. 열에 광범위한 값이 포함된 경우
2. 열에 널 값이 많이 포함된 경우
문제5-2데이터를 처리하기 위한 객체 중 SEQUENCE(시퀀스)가 무엇인지, 어
떤 곳에 자주 사용되는 지 답하시오.
1. 고유한 번호를 자동으로 생성해주는 순번 생성기이다.
2.PRIMARY KEY를 생성할 때 자주 사용함.
문제 6-1 오라클 유저를 아래와 같이 만드는 명령문을 작성하시오.
create user smhrduser identfied by 0000;
문제 6-2 smhrduser 계정이 오라클에 연결할 수 있는 권한을 부여하는 명령어를 작성
하시오
grant create session to smhrduser;
문제 6-3 smhrduser 계정이 테이블을 생성할 수 있는 권한과 부여받은 권한을 이양할
수 있는 명령문을 작성하시오
grant create table to smhrduser with grant option;
문제 6-4smhrduser 계정을 삭제하는데 만들어진 모든 객체를 같이 삭제하는 명령문
을 작성하시오.
drop user smhrduser cascade;
문제 6-5사용자에게 부여된 권한을 조회하는 쿼리문을 작성하시오.
select*from user_sys_privs;
오늘은 오라클 시험 봤는데 연습할때는 코드가 잘되었는데 시험칠때 안되서 망함
심지어 오픈북으로 했는데 한번 안보고 ㅍ풀어 봣다 나중에는 시간이 촉박해서 오픈북으로 거의 복붙하다 시피했음
나중에 선생님한테 답안지 받고 다시 풀이 들어가야 할듯