문제1>DDL, DML, DCL은 각각 무엇이며 어떤 명령들이 있습니까?
-DDL(select, insert, update, delete): 데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어와
데이터베이스 테이블에 들어있는 데이터에 변형을 가하는 명령어
-DML(create, alter, drop, rename, truncate): 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어
-DCL(grant, revoke): 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어
문제2>관계형 DBMS란 무엇입니까?
: 행과 열로 이루어진 각각의 테이블의 primary key을 참조하여 서로 연결하는것을 표현하는 데이터베이스 구조이다.
문제3>알고 있는 DBMS들을 나열해 보세요.
: mySQL, oracle
문제4>데이터 무결성 제약조건 5가지를 말해 보세요.
: 개체 무결성, 참조 무결성, 도메인 무결성, 고유 무결성, null무결성, 키 무결성
문제5>primary key는 무엇인가요?
: 테이블의 고유값, 레코드끼리 구분할 수 있는 고유의 값
문제6>foreign key는 무엇인가요?
: 외래키, 두 테이블을 서로 연결하는데 사용되는 키
외래키 값을 제공하는 테이블이 부모테이블이고 외래키가 포함된 테이블이 자식테이블이다.
문제7>데이터베이스 테이블을 생성하는 SQL문을 작성하세요.(primary key와 foreign key를 필수적으로 사용)
create table emp(
emp_id number(3) primary key,
emp_name varchar2(20),
);
create table department (
emp_id number(3 primary key,
emp_name varchar2(20),
dept_id number(3),
foreign key (dept_id) references epm(emp_id)
);
문제8>테이블 구조를 알아보는 명령은 무엇인가요?
desc emp;
문제9>emp 테이블에서 eno와 ename 컬럼을 출력하는 SQL문을 작성하세요.
select eno, ename
from emp
문제10>select 문장에서 중복되는 것을 한 번씩만 출력하는 명령은 무엇입니까?
select distinct eno, ename
from emp
문제11>emp 테이블에서 eno와 ename 컬럼을 eno로 오름차순으로 정렬해서 출력하는 SQL문을 작성하세요.
select eno, ename
from emp order by eno
문제12>오라클에서 숫자를 반올림하는 함수는 무엇인가요?
select ROUND(98.7654)
from dual
문제13>날짜 형식을 문자형식으로 바꾸는 함수는 무엇인가요?
SELECT TO_CHAR(sysdate, 'YYYY-MM-DD') FROM DUAL;
문제14>문자 형식을 날짜형식으로 바꾸는 함수는 무엇인가요?
SELECT TO_DATE('20220707' , 'YYYYMMDD') FROM DUAL
문제15>문자 형식을 숫자형식으로 바꾸는 함수는 무엇인가요?
SELECT TO_NUMBER('12345') FROM dual
문제16>NVL 함수의 기능과 방법을 설명하세요.
: nvl 함수란 데이터 값이 null값일때 지정 값을 출력하고 그렇지 않으면 원래 값을 그대로 출력한다.
SELECT eno, ename, NVL(salary,0) AS salary from table
문제17>emp 테이블에서 eno가 10인 레코드에서 ename을 "홍길동"으로 수정하는 SQL문을 써보세요.
update emp
set ename = '홍길동'
where eno = 10
문제18>emp 테이블에서 eno가 20인 레코드를 삭제하는 SQL문을 써보세요.
delete from emp
where eno = 20;
문제19>emp_tmp 테이블을 만들려고 합니다. emp 테이블의 컬럼은 사용하고 데이터는 가져오지 않게
테이블을 생성하는 SQL문을 작성하세요.
create table emp_tmp
as select eno, ename
from emp
where 0=1;
문제20>테이블에 insert 문장을 사용해서 새로운 레코드를 생성했는데, 적용이 되지 않은 경우 실행시킬 명령은 무엇입니까?
: commit을 해본다.
문제21>오라클에서 시퀀스는 무엇이며 어떤 것에 사용하는지 설명하세요.
: 시퀀스는 연속적인 숫자를 생성해내는 객체이다. 보통 primary key 값을 생성하기 위해 사용한다.
데이터 입력시 동시성때문에 레지스터가 겹치는 것을 방지하기 위해 여러 데이터가 중복되지 않는 번호를 얻을 수 있다.
문제22>emp 테이블의 dept_id 컬럼은 dept 테이블의 dept_id을 참조하고 있습니다. emp 테이블에 새로운 레코드를 입력하려고 하는데, foreign key 제약조건에 걸려 오류가 났습니다. 원인이 무엇일까요? 해결책은 무엇입니까?
: emp 테이블에 값을 넣을 때 dept테이블에 존재하는 값으로 삽입해야 하는데 값이 없기때문에 오류가 난 것이다.
새로운 레코드를 입력하려고 insert할때는 dept에 존재하는 값을 넣어야 한다.