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;
'자격증 > SQLD' 카테고리의 다른 글
SQLD 요약 - (6) SQL활용_JOIN, 계층형질의,서브쿼리 (0) | 2021.05.25 |
---|---|
SQLD 요약 - (5) SQL기본_GROUPBY, ROWNUM, JOIN (0) | 2021.05.25 |
SQLD 요약 - (4) SQL기본_연산자,함수 (0) | 2021.05.25 |
SQLD 요약 - (2) 데이터 모델과 성능 (0) | 2021.05.24 |
SQLD 요약 - (1) 데이터 모델링의 이해 (0) | 2021.05.24 |
댓글