자격증/SQLD

SQLD 요약 - (3) SQL기본_TABLE,DML,DCL,DDL,TCL

땅콩둘기 2021. 5. 24. 16:58
반응형

DB

특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것을 의미한다.

DBMS

효율적인 데이터 관리 뿐만 아니라 예기치 못한 사건으로 인한 데이터의 손상을 피하고 필요시 , 필요한 데이터를 복구하기 위한 강력한 기능의 SW

SQL 

DB 관계형 에서 데이터 정의, 조작, 제어를 위해 사용하는 언어

- DML : SELECT, INSERT, UPDATE, DELETE

- DDL : CREATE, ALTER, DROP, RENAME

- DCL : GRANT, REVOKE

- TCL : COMMIT, ROLLBACK

테이블(Table) 

DB 기본 단위, 데이터를 저장하는 객체

- 가로 = 행 = 로우 = 튜플 = 인스턴스

- 세로 = 열 = 컬럼

테이블(Table) 의 구조

열(Column), 필드 (Field,Value), 행 (Row)

데이터 유형

- CHAR(s) : 고정 길이 문자열 

- VARCHAR2(s) : 가변 길이 문자열 

- NUMBER : , 정수 실수 등 숫자 

- DATE : 날짜와 시각 

CHAR VS VARCHAR 문자열 비교

✔ CHAR  : 공백(BLANK)을 채워서 비교. 우선 짧은 쪽의 끝에 공백을 추가하여 2개의 데 이터가 같은 길이가 되도록 한다. 그리고 앞에서부터 한 문자씩 비교한다. 끝의 공백만 다른 문자 열은 같다고 판단한다.

✔ VARCHAR :  맨 처음부터 한 문자씩 비교하고 공백도 하나의 문자로 취급하므로 끝의 공백이 다르면 다른 문자로 판단한다.

ex) CHAR 유형 'AA' = 'AA ' VARCHAR 유형 'AA' <> 'AA '

제약조건

➡ 기본키(PRIMARY KEY) : 테이블에 존재하는 각 행을 한 가지 의미로 특정할 수 있는 한 개 이상 칼럼.

         기본키제약 = 고유키(UNIQUE)제약 & NOT NULL 제약

➡ 고유키(UNIQUE KEY) : 고유하게 식별하기 위한 고유키, NULL 값 가진 행 여러개 가능

➡ 외부키(FOREIGN KEY) : 다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 칼럼

➡ NULL : 아직 정의되지 않은 미지의 값, 현재 데이터를 입력하지 못하는 경우

➡ DEFAULT : 기본값을 사전에 설정. 데이터 지정하지 않는 경우 사전에 정의된 기본값 자동 입력됨


DDL(데이터 정의어)

데이터 구조를 정의하는데 사용되는 명령어 - CREATE, ALTER, DROP, RENAME

 

🔥 테이블 생성

CREATE TABLE PLAYER ( PLAYER_ID CHAER(7) NOT NULL, PLAYER_NAME VARCHAR2(20) NOT NULL);

🔥  테이블 구조 변경

- 추가 : ALTER TABLE PLAYER ADD(ADDRESS VARCHAR2(80));

- 삭제 : ALTER TABLE PLAYER DROP COLUMN ADDRESS;

- 수정 : ALTER TABLE TEAM_TEMP MODIFY (ORIG_YYYY VARCHAR2(8) DEFAULT '20020129' NOT NULL);

- 제약조건 삭제 : DROP CONSTRAINT ;

- 조건명 제약조건 추가 : ADD CONSTRAINT 조건명 조건 ( );

- 칼럼명 테이블명 변경 : RENAME PLAYER TO PLAYER_BACKUP;

- 테이블 삭제 : DROP TABLE PLAYER;

- 테이블 데이터 삭제 : TRUNCATE TABLE PLAYER;

- 컬럼명 변경 : RENAME COLUMN TEAM_ID TO T_ID;


DML(데이터 조작어) 

자료들을 입력, 수정, 삭제, 조회 - SELECT, INSERT, UPDATE, DELETE

실시간으로 테이블에 영향 미치지 않는다. COMMIT이용해 TRANSACTION종료해야 실제 테이블에 반영

 

- 입력 : INSERT INTO PLAYER (PLAYER) VALUES (‘PJS’);

- 수정 : UPDATE PLAYER SET BACK_NO = 60;

- 삭제 : DELETE FROM PLAYER;

- 조회 : SELECT PLAYER_ID FROM PLAYER;

          * SELECT PLAYER AS “ ” 선수명 FROM PLAYER; : AS 로 별칭 지정

          * DISTINCT : 1 중복 시 회만 출력

 

❓ 와일드카드 :  * : 모든 , % : 모든 , - : 한 글자

❓ 합성 연산자 :  || -> oracle, + = -> SQL Server ---- CONCAT(string1, string2)와 같음


TCL(트랜잭션 제어어)

DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어 - COMMIT, ROLLBACK 

 

- COMMIT : 올바르게 반영된 데이터를 DB에 반영

- ROLLBACK : COMMIT 되지 않은 모든 트랜잭션을 트랜잭션 시작 이전의 상태로 되돌림.

- SAVEPOINT : 저장 지점

트랜잭션

밀접히 관련되어 분리될 수 없는 1개 이상 의 DB 조작, 논리적 연산단위

 

트랜잭션의 특성

원자성 : 트랜잭션 정의된 연산들 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아 있어야 한다. (all or nothing)

일관성 : 트랜잭션 실행 전 데이터베이스 내용 잘못되어 있지 않다면 트랜잭션 실행 이후에도 데이 터베이스 내용 잘못 있으면 안된다.

고립성 : 트랜잭션 실행 도중 다른 트랜잭션의 영향 받아 잘못된 결과 만들어서는 안된다.

지속성 : 트랜잭션 성공적으로 수행되면 갱신한 데이터베이스 내용 영구적으로 저장된다.


DCL(DATA CONTROL LANGUAGE) 

유저 생성하고 권한을 제어할 수 있는 명령어

대부분의 데이터베이스는 데이터 보호와 보안을 위해서 유저와 권한을 관리함

개별 오브젝트에 대한 작업을 위해서는 오브젝트 권한 부여 필요

 

 - GRANT : 권한 부여

 - REVOKE : 권한 취소

 

 ex) GRANT CREATE USER TO SCOTT;

     GRANT CREATE SESSION TO PJS;

     GRANT CREATE TABLE TO PJS;

     REVOKE CREATE TABLE FROM PJS;

반응형