정보처리기사 실기/SQL

SQL2

· 코딩마이데이

DML(Data Manipulation Langauage)

insert into DEPT (DEPTNO, DNAME, LOC)
values (10, 'ACCOUNTING', 'NEW YORK');
insert into DEPT
values (20, 'RESEARCH', 'DALLAS');

COMMIT;
insert into DEPT
values (30, 'SALES', 'CHICAGO');

inert into DEPT
values (40, 'OPERATIONS', 'BOSTON');

ROLLBACK;

 

DML(Data Manipulation Language, 데이터 조작어)

INSERT : 테이블에 새로운 튜플을 삽입

 

insert into DEPT
values (50, '총무부', '서울');

insert into DEPT
values (60, '인사부', '부산');

 

DML : DELETE - 테이블에 튜플을 삭제

delete from DEPT;

 

delete from DEPT;

ROLLBACK;

 

delete
from DEPT
WHERE deptno = 50

COMMIT;

 

 

 

 

DML : UPDATE - 테이블 튜플 내용을 갱신

update DEPT
set LOC = '대구'
where deptno = 60

COMMIT;

 

 

DDL(Data Define Language)

DDL(Data Define Language, 데이터 정의어)

CREATE

create table dept
(
	deptno number(2, 0)
	dname varchar2(14),
	loc varchar2(13),
	constraint pk_dept primary key(deptno)
);

 

DDL : CREATE

create table emp
(
	empno number(4, 0),
	ename varchar2(10),
	job varchar2(9),
	mgr number(4, 0),
	hiredate date,
	sal number(7, 2),
	comm number(7, 2),
	deptno number(2, 0),
	constraint pk_emp primary key (empno),
	constraint pk_deptno foreign key (deptno) references dept (deptno)
);

 

 

DDL : CREATE TABLE 제약조건

PRIMARY KEY(PK)FOREIGN KEY(FK)
UNIQUE KEY(UK)
NOTNULL(NN)
CHECK(CK) : 성별에 많이 사용

DEFAULT

CREATE TABLE Persons (
	ID int NOT NULL,
	LastName varchar(255) NOT NULL,
	FirstName varchar(255) NOT NULL,
	Age int
	UNIQUE (ID)
);

 

SUBQUERY를 이용한 CREATE TALE
서브 쿼리를 이용해서 SELECT의 조회 결과로 테이블을 생성하는 방법

컬럼명과 데이터 타입, 값이 복사하고 제약 조건은 NOT NULL만 복사

CREATE TABLE EMP_DEPTNO_10
AS SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 10

 

가상 테이블로 논리적으로만 존재

뷰는 접근제어로 보안을 제공

 

DDL : CREATE VIEW

create view whoismanager
as
select *
from emp
where job = 'MANAGER';

 

select * from whoismanager;

 

DDL : ALTER TABLE

테이블에 정의된 내용을 수정할 때 사용

 

컬럼 추가

ALTER TABLE DEPT
ADD (CNAME VARCHAR2(20);

 

제약조건 추가

ALTER TABLE DEPT
ADD CONSTRAINT UNIQUE(DNAME):

 

제약조건 추가

ALTER TABLE DEPT
ADD CONSTRAINT UNIQUE(DNAME);

 

ERROR at line 1: ORA-00001 : unique constraint(SCOTTSYS_C0014205) violated

 

칼럼 수정

ALTER TABLE DEPT
MODIFY CNAME CHAR(3);

 

칼럼 삭제

ALTER TABLE DEPT
DROP COLUMN CNAME;

 

VIEW는 ALTER 문의로 변경 불가DROP 후 다시 CREATE 해야

 

DDL : DROP
데이터베이스 객체를 삭제하는 구문

DROP TABLE EMP
DROP TABLE EMP CASCADE;

제거할 요소를 참조하는 다른 모든 개체를 함께 제거

DROP TABLE EMP RESTRICTED;
DROP VIEW EMP_VIEW;

 

DDL : DROP, TRUNCATE 그리거 DML: DELETE 비교

 

 

DCL (Data Control Language)

 

 

 

GRANT/REVOKE

GRANT 사용자등급 TO 사용자_ID (WITH GRANT OPTION)REVOKE 사용자등급 FROM 사용자ID

DBA : GRANT SELECT ON EMP TO SHALALA WITH GRANT OPTIONSHALALA : GRANT SELECT ON EMP TO SOCHALPONGSHALALA : REVOKE SELECT ON EMP FROM SOCHALPONG

 

TCL : COMMIT/ROLLBACK

COMMIT - 삽입한 데이터를 영구히 저장 (I/O가 일어남.)

ROLLBACK - COMMIT한 데이터를 제외하고 메모리에 있는 데이터를 날림

SAVEPOINT - 트랜잭션 내에 ROLLBACK할 위치인 저장점을 지정하는 명령어

 

'정보처리기사 실기 > SQL' 카테고리의 다른 글

SQL1  (0) 2025.03.03