본문 바로가기
자격증/SQLD

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

by 땅콩둘기 2021. 5. 24.
반응형

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;

반응형

댓글