
문제 1.
식당 운영자인 하하씨는 메뉴별 가격을 기록하기 위한 테이블을 추가로 제작하려고한다.
물리적 테이블 명으로 가장 적절한 것은?
1. 20_MENU
2. !대박기원!_MENU
3. MENU_20
4. MENU-20
정답: 3. MENU_20
* 테이블명과 칼럼명은 반드시 문자로 시작해야함
* A-Z, a-z, 0-9, #, $, _ 만 사용가능함
* 다른 테이블명과 중복되지 않아야 함
* 칼럼 뒤 데이터유형은 꼭 지정되어야 함

DML : 정의된 데이터베이스에 레코드를 입력하거나, 수정, 삭제 및 조회하기 위한 명령어이다.
INSERT | INSERT INTO MENU (NAME) VALUES ('연어스시'); |
UPDATE | UPDATE MENU SET discount_rate =10 (where name='연어스시'); |
DELETE | DELETE FROM MENU (WHERE name='연어스시'); |
문제 2. 다음의 SQL을 통해 MENU 테이블을 생성했다. 보기의 SQL문장 중 오류가 발생하는 것을 모두 고르시오.
CREATE TABLE MENU ( 메뉴코드 varchar2(10) PRIMARY KEY, 메뉴명 varchar2(1) NOT NULL, 가격 number(10) NOT NULL 할인율 number(100) DEFAULT 0 ); |
1. UPDATE MENU SET 메뉴코드 = 100 WHERE 메뉴명 = '스키야키'
2. DELETE MENU
3. INSERT INTO MENU (메뉴코드, 가격) VALUES ('101' , 50000 )
4. INSERT INTO MENU VALUES ('102', 와규 , 30000 )
정답: 3,4
* 숫자는 varvhar2 와 char에 입력 가능
* DELETE 에서 FROM 생략가능
3. not null 값인 메뉴명에 대한 insert가 이뤄지지 않을 경우 오류 발생
4. 컬럼명 지정이 이뤄지지 않은 상태에서는 전체값이 들어가야함
문제 3. DELETE에 관한 설명 중 틀린 것은
1. 삭제된 데이터에 대해 로그를 남길 수 있는 방법이다. 2. 특정 행은 지울 수 없다. 3. 삭제된 데이터를 다시 되돌릴 수 있다. 4. 데이터는 삭제되지만 용량이 줄어들지 않는다. |
정답: 2
1. TRUNCATE 와 DROP은 로그를 남기지 않는다.
2. 특정행 지울 수 있음. (where 문 사용)
3. 되돌릴 수 있음.(DB에 반영되기 전까지)
DDL인 TRUNCATE와 DROP은 불가능하다.

COMMIT | 데이터에 대한 변화를 DB에 반영하기 위한 명령어 |
SAVEPOINT | 코드를 분할하기 위한 저장 포인트 지정 |
ROLLBACK | 트랜잭션이 시작되기 이전의 상태로 되돌리기 위한 언어. 최신 COMMIT 이나 특수한 SAVEPOINT 로 되돌릴 수 있는 명령어 |
문제 4. 다음의 SQL문을 수행했을때 결과를 구하시오. (주관식)
CREATE TABLE T1 ( col1 varchar2(10) col2 number(10) ); INSERT INTO T1 VALUES( 10, 100 ) ; INSERT INTO T1 VALUES( 20, 200 ) ; INSERT INTO T1 VALUES( 30, 250 ) ; SAVEPOINT S1; DELETE T1 WHERE col1 = 10; UPDATE T1 SET col1 = 40 WHERE col2= 200; SAVEPOINT S1; INSERT INTO T1 VALUES(50, 500); ROLLBACK TO SAVEPOINT S1; SELECT MAX(col2) FROM T1; |
정답: 300
col1 | col2 |
10 | 100 |
20 | 200 |
30 | 300 |
col1 | col2 |
40 | 200 |
30 | 300 |
ROLLBACK TO SAVEPOINT S1; 으로 s1 으로 되돌아가서 INSERT TO T1 VALUES(50, 500); 은 포함 안된다.
마지막으로 SELECT MAX(col2)FROM T1; 으로 col2 에서 제일 큰 값 출력한다.
문제 5. 다음의 SQL문을 수행했을때 영구적으로 반영되는 col1의 값을 모두 쓰시오.
INSERT INTO T2 VALUES(10); INSERT INTO T2 VALUES(20); INSERT INTO T2 VALUES(30); SAVEPOINT S1; UPDATE T2 SET col1 = 50 WHERE col1 = 20; SAVEPOINT S2; DELETE T2 WHERE col1 = 30; SAVEPOINT S3; INSERT INTO T2 VALUES(70); ROLLBACK S2; COMMIT; |
답: 10,50,30
S1 = 10,20,30
S2 = 10,50,30
S3 = 10,50
INSERT INTO T2 VALUES(70); : 10, 50, 70
ROLLBACK S2 = 10,50,30
* DML 은 자동 commit(반영) 되지 않음
* ROLLBACK, DROP 은 되돌릴 수 없다던 말
= [SQL server] 기준 DDL = auto-commit
COMMIT 과 ROLLBACK 효과
1. 데이터 무결성을 보장할 수 있다.
2. 영구적인 변경 전 데이터에 대한 변동사항을 확인할 수 있다.
3. 논리적 연관성 있는 작업을 그룹화하여 처리할 수 있다.
문제 6. 다음의 SQL문을 수행했을때 영구적으로 반영되는 co1의 값을 모두 쓰시오.
INSERT INTO T2 VALUES(10); INSERT INTO T2 VALUES(20); INSERT INTO T2 VALUES(30); COMMIT; UPDATE T2 SET col1 = 50 WHERE col1 = 20; DELETE T2 WHERE col1 = 30; INSERT INTO T2 VALUES(70); ROLLBACK; COMMIT; |
정답: 10,20,30
*SAVEPOINT 가 없을 경우 가장 최신의 COMMIT 상태로 복원된다.
문제 7. 다음 중 데이터베이스 시스템 언어의 종류와 해당하는 명령어가 바르게 연결되지 않은 것을 모두 고르시오.
1. DDL - RENAME
2. TCL - REVOKE
3. DML - UPDATE
4. DCL - ROLLBACK
5. DDL - DELETE
6. TCL - COMMIT
7. DML - DROP
8. DCL - GRANT
정답: 2, 4, 5, 7
'DB(SQL)' 카테고리의 다른 글
1. 데이터베이스의 기본적인 주요 개념 (0) | 2024.01.18 |
---|---|
SQL 언어 (3) (0) | 2023.11.07 |
SQL 언어 (1) (2) | 2023.11.06 |
ERD , Level Schema (0) | 2023.07.26 |
PART1: 데이터 모델링 SECTION 01 데이터 모델링의 이해 (0) | 2023.07.24 |

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!