728x90
반응형
도서 내용 중 중요하다 여겨지는 것만 작성합니다
영리목적이 아닌 공유목적입니다
출처 : 2023 시나공 정보처리기사 실기 (저자: 김정준, 강윤석, 김용갑, 김우경 | 출판사: 길벗)
'기출문제는 시나공 저자(알앤디)가 복원한 것임'
제가 이미 잘 알고 있는 것은 적지 않습니다
해당 포스팅을 참고하여 학습하셔도 좋지만
교재를 구매하여 문제를 풀며 학습하시는 것을 추천드립니다
SQL - DDL
- CREATE, ALTER, DROP
CREATE TAELE
제약조건명이 있으면 CONSTRAINT문으로 작성
// ex1)
CREATE TABLE 학생 (
이름 VARCHAR(15) PRIMARY KEY,
학번 CHAR(8) NOT NULL,
전공 CHAR(5),
성별 SEX,
생년월일 DATE,
FOREIGN KEY(전공) REFERENCES 학과(학과코드)
ON DELETE SET NULL
ON UPDATE CASCADE,
CONSTRAINT 생년월일제약 CHECK(생년월일>='1980-01-01')
);
// ex2)
CREATE TABLE patient(
id CHAR(5) PRIMARY KEY,
name CHAR(10),
sex CHAR(1),
phone CHAR(20),
CONSTRAINT sex_ck CHECK (sex='f' or sex='m'),
CONSTRAINT id_fk FOREIGNKEY(id) REFERENCES doctor(doc_id)
);
// ex3)
CREATE TABLE 사원(
사원번호 NUMBER(4) PRIMARY KEY,
사원명 VARCHAR(10),
근무지번호 NUMBER(2) FOREIG NKEY REFERENCES 근무지
ON DELETE CASCADE
);
CREATE VIEW
- with ckeck option : 갱신이나 삽입 연산이 수행될 때 뷰 정의 조건을 따라야 함
CREATE VIEW 안산고객(성명, 전화번호)
AS SELECT 성명, 전화번호
FROM 고객
WHERE 주소='안산시';
CREATE INDEX
CREATE UNIQUE INDEX 고객번호_idx
ON 고객(고객번호 DESC);
CREATE DOMAIN
CREATE DOMAIN 직위 VARCHAR(10)
DEFAULT '사원'
CONSTRAINT VALID-직위 CHECK(
VALUES IN('사원', '대리', '과장', '부장', '이사', '사장')
);
ALTER TABLE
ALTER TABLE 학생 ADD 학년 VARCHAR(3);
ALTER TABLE 학생 ALTER 학번 VARCHAR(10) NOT NULL;
ALTER TABLE 학생 DROP COLUMN 성적 CASCADE;
SQL - DCL
- COMMIT, ROLLBACK, GRANT, REVOKE
GRANT / REVOKE
- DBA : 데이터베이스 관리자
- RESOURCE : 데이터베이스 및 테이블 생성 가능자
- CONNECT : 단순 사용자
- WITH GRANT OPTION : 다른 사용자에게 다시 부여할 수 있는 권한
- GRANT OPTION FOR : 다른 사용자에게 권한을 부여할 수 있는 권한을 취소
- CASCADE : 연쇄적 취소
GRANT RESOURCE TO NABI;
GRANT ALL ON 고객 TO NABI WITH GRANT OPTION;
REVOKE GRANT OPTION FOR UPDATE ON 고객 FROM STAR;
REVOKE SELECT ON 수강 FROM 박문수 CASCADE;
COMMIT
트랜잭션이 수행한 내용을 데이터베이스에 반영하는 명령
ROLLBACK
변경되었으나 아직 COMMIT되지 않은 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령
ROLLBACK TO SAVEPOINT명;
SQL - DML
- SELECT, INSERT, DELETE, UPDATE
삽입문 (INSERT INTO~)
INSERT INTO 사원(이름, 부서) VALUES('홍승현', '인터넷');
INSERT INTO 편집부원(이름, 생일, 주소, 기본급)
SELECT 이름, 생일, 주소, 기본급
FROM 사원
WHERE 부서 = '편집';
삭제문 (DELETE FROM~)
DELETE FROM 사원
WHERE 이름 = '임꺽정';
갱신문 (UPDATE~ SET~)
UPDATE 사원
SET 부서 = '기획', 기본급 = 기본급 +5
WHERE 이름 = '황진이';
검색문 (SELECT FROM)
ex 1) 사원 테이블에서 '주소'를 내림차순 정렬시켜 상위 2개 튜플만 검색
SELECT TOP 2 *
FROM 사원
ORDER BY 주소 DESC;
ex2) "망원동"에 거주하는 사원들의 '기본급'보다 적은 '기본급'을 받는 사원의 정보 검색
ALL() : 하위 질의로 검색된 범위를 기본 질의의 조건으로 사용
SELECT 이름, 기본급, 주소
FROM 사원
WHERE 기본급 < ALL (SELECT 기본급 FROM 사원 WHERER 주소 = '망원동');
ex3) '상여금'이 100 이상인 사원이 2명 이상인 '부서'의 튜플수
SELECT 부서, COUNT(*) AS 사원수
FROM 상여금
WHERE 상여금 >= 100
GROUP BY 부서
HAVING COUNT(*) >= 2;
ex4) 취미활동을 하지 않는 사원들
SELECT *
FROM 사원
WHERE 이름 NOT IN(SELECT 이름 FROM 여가활동);
ex5)
SELECT SUM(psale)
FROM Sale
WHERE pin IN(
SELECT id
FROM Product
WHERE name LIKE 'USB%');
728x90
반응형
'Computer Science (CS) > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 11. 응용 SW 기초 기술 활용 (0) | 2023.03.20 |
---|---|
[정보처리기사 실기] 9. 소프트웨어 개발 보안 구축 (0) | 2023.03.19 |
[정보처리기사 실기] 5. 인터페이스 구현 (0) | 2023.03.16 |
[정보처리기사 실기] 4. 서버 프로그램 구현 (0) | 2023.03.16 |
[정보처리기사 실기] 2. 데이터 입출력 구현 (0) | 2023.03.11 |