2020정처기(Archive)/용어 정리

[정보처리기사 실기] SQL 활용 코드 ★

슬라임 통통 2020. 10. 17. 04:15
728x90

DDL 

 

  • CREATE SCHEMA 스키마만들기
CREATE SCHEMA 대학교 AUTHORIZATION 홍길동;
  • CREATE DOMAIN 도메인정의
CREATE DOMAIN SEX CHAR(1)
DEFAULT '남'; --DEFAULT 안써도됨
//CONSTRAINT 쓸수 잇음
  • CREATE TABLE 테이블정의 (as select 사용가능)
CREATE TABLE instructor(
	Id CHAR(5),
    name VARCHAR(20) NOT NULL,
    salary INTEGER(5),
    PRIMARY KEY (Id),
    FOREIGN KEY (name) REFERENCES department); --괄호랑 references s 콤마 까먹지 말기
  • CREATE VIEW
CREATE VIEW 안산고객(성명, 전화번호)
AS SELECT 성명,전화번호
FROM 고객
WHERE 주소 = '안산시';
  • ALTER TABLE
ALTER TABLE 학생 ADD 학년 VARCHAR(3);
ALTER TABLE 학생 ALTER 학번 VARCHAR(10) NOT NULL;
ALTER TABLE 학생 DROP COLUMN 학번 CASCADE;
  • DROP
DROP SCHEMA 스키마명 CASCADE;
DROP DOMAIN 도메인명 RESTRICT;
DROP TABLE 테이블명 RESTRICT;
DROP CONSTRAINT 제약조건명;
...

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

RESTRICT : 제거할 요소가 참조되어지고 있으면 제거 취소

 

 

DCL

  • GRANT 와 REVOKE
GRANT RESOURCE TO NABI;
GRANT DBA TO NABI; 
GRANT CONNECT TO NABI;

-- NABI 란 사람에게 권한 부여중

REVOKE RESOURCE FROM NABI;
REVOKE CONNECT FROM NABI;

-- NABI에게서 권한 회수

DBA :  데이터베이스 관리자 권한

RESOURCE : 데이터베이스 테이블 생성 가능자

CONNECT : 일반 사용자 검색만 가능

 

GRANT ALL ON 고객 TO NABI WITH GRANT OPTION;  -- grant on to with grant option;
REVOKE GRANT OPTION FOR UPDATE ON 고객 FORM NABI; -- revoke grant option for on from;

with grant option : 부여받은 권한을 다른사용자에게 부여 할수 있는 권한

grant option for : 다른사용자에게 권한을 부여할 수 있는 권한을 취소

 

 

  • COMMIT
  • ROLLBACK & SAVEPOINT
SAVEPOINT S2;
DELETE * FROM 사원 WHERE 사원번호 = 10;
ROLLBACK TO S2;

-- 그냥 SAVEPOINT하면 COMMIT 이후로 돌아감

 

DML

  • 삽입 INSERT INTO
INSERT INTO 사원 VALUES ('장보고', '기획', #05/03/73#, '홍제동', 90);  --사원테이블에 1개 튜플삽입

INSERT INTO 사원
SELECT dept_name, 0 , num
FROM instructor;
  • 삭제 DELETE FROM
DELETE FROM 사원
WHERE salary < (SELECT AVG(salary) FROM instructor); -- 조건에 만족하는 것 삭제

DELETE FROM 사원; --전체 레코드 삭제 !! 테이블 삭제 아님 empty 테이블 되는 것

DELETE FROM 사원
WHERE dept_name = '장보고'; --장보고 이름 삭제
  • 갱신 UPDATE ~ SET~ 
UPDATE 사원  -- FROM 없음
SET 주소 = '수색동'
WHERE 이름 = '홍길동'; --WHERE절 생략가능

 

헷갈리기쉬운 DML

SELECT *
FROM 사원
ORDER BY 주소 DESC;

SELECT *
FROM 사원
WHERE 주소 IS NULL; -- 또는 IS NOT NULL

SELECT 이름 , 주소
FROM 사원 
WHERE 이름 = ( SELECT 이름 FROM 여가활동 WHERE 취미 = '나이트댄스');

SELECT SUM(DISTINCT salary)
FROM 사원;
728x90
반응형