본문 바로가기

SQL

SQLD 시험 대비 - SQL 기본 (1)

기본적인 단어의 복습과 암기를 하도록 하겠다.


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

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

 

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

- DML(Data Manipulation Language) : SELECT, INSERT, DELETE, UPDATE

- DDL(Data Definition Language) : CREATE, DROP, ALTER, RENAME

- DCL(Data Control Language) : REVOKE, GRANT

- TCL(Transaction Control Language) : COMMIT, ROLLBACK

 

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

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

- 세로 = 열 = 컬럼

 

정규화 : 데이터의 정합성 확보와 데이터 입력/ 수정/ 삭제 시 발생할 수 있는 이상현상을 방지하기 위해 중복 제거

(*데이터 정합성은 데이터가 서로 모순 없이 일관되게 일치해야 함을 의미한다. )

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

외래 키(FK, Foreign Key) :  다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 칼럼

 

데이터 유형:

- CHAR : 고정길이 문자열정보, 최대 길이만큼 공간을 채움 

- VARCHAR2 :  가변길이 문자열정보, 할당된 변숫값의 바이트만 적용

- NUMBER : 정수, 실수등의 숫자 정보

- DATE: 날짜와 시각정보

 

★DB생성 시 주의할 점

 - 테이블 명은 다른 테이블의 이름과 중복되면 안 된다.

 - 테이블 내의 칼럼명은 중복될 수 없다.

 - 각 칼럼들은 , 으로 구분되고 ; 끝난다.

 - 칼럼뒤에 데이터 유형은 꼭 지정되어야 한다.

 - 테이블 명과 칼럼 명은 반드시 문자로 시작해야 한다.

 - A-Z, a-z, 0-9,_,$,#만 사용가능

 

제약조건 : 데이터의 무결정 유지

1.PK(기본 키) : UNIQUE & NOT NULL;

2. UNIQUE KEY(고유 키) : 테이블 내의 고유키 정의 (*Null이어도 OK)

3. NOT NULL : NULL 값 입력 x

4. CHECK : 입력값 범위 제한

5. FK(외래 키): NULL 가능, 여러 개 생성가능, 여러 속성가능 ( 보통 기본 키를 다른 테이블의 외래 키로 지정해 둠)

 


테이블 생성하는 입력문과 조건등을 알아보겠다.

테이블 생성문

Create Table Exam(

Exam_ID CHAER(7) NOT NULL,

Exam_NAME VARCHAR2(20) NOT NULL

);

 

테이블 구조 변경

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

- 삭제 : ALTER TABLE EXAM DROP COLUMN ADDRESS;

- 수정 : ALTER TABLE EXAM TEAM_TEMP MODIFY(칼럼명 바꾸고자 하는 칼럼데이터유형) DEFAULT '기본값으로 할 데이터' NOT NULL);

 

 - 제약 조건 삭제 : DROP CONSTRAINT 조건 명;

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

 - 테이블 명 변경: RENAME EXAM TO EXAM_PRACTICE;

 - 테이블  삭제: DROP TABLE EXAM_PRACTICE;

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

(* TRUNCATE 는개별적으로 행을 삭제할 수 없으며, 테이블 내부의 모든 행을 삭제한다. 롤백도 안됨)

 - 칼럼명 변경 : RENAME COLUMN EXAM_ID TO E_ID;

 - 컬럼 삭제: ALTER TABLE 테이블명 DROP COLUMN 칼럼명;

 

(*DDL은 오토커밋이 되고 DML은 작업 이후 COMMIT을 해줘야 반영이 된다.)

- 데이터 조회 : SELECT 칼럼명 FROM 테이블명;

- 데이터 조회 시 중복제거 :  SELECT 칼럼명 FROM 테이블명 DISTINCT ; 중복 시 1회만 출력

- 데이터 수정 : UPDATE 테이블명 INTO 수정될 칼럼명 = 수정할 값 ex_NUMBER = 99;

- 데이터 삭제 : DELETE FROM 테이블명; 

 

트랜잭션 : 밀접히 관련되어 분리할 수 없는 1개 이상의 DB조작(전부 적용하거나 , 전부 취소하거나), 논리적 연산단위 (EX_ 은행 이체 (인출, 입금))

COMMIT : 반영된 데이터를 DB에 반영

ROLLBACK : 트랜잭션 시작 이전의 상태로 되돌림 (COMMIT 되지 않은 모든 트랜잭션을 롤백한다.)

SAVEPOINT: 저장시점을 지정 ex_ Save Transaction S1;

 

★트랜잭션의 특성 4가지 (원일격영)

1. 자성 : 트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않아야 한다.

2. 관성 : 트랜잭션 실행 전 DB내용이 잘못되지 않으면 실행 후에도 잘못되지 않아야 한다.

3. 리성 : 트랜잭션 실행 도중 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어내면 안 된다.

4. 속성 : 트랜잭션이 성공적으로 수행되면 DB에 내용이 영구적으로 저장된다.

 

반응형