1. INSERT
한 번에 한 건만 입력
- 테이터의 칼럼을 정의할 수 있음
INSERT INTO 테이블명 (COLUMN_LIST)VALUES (COLUMN_LIST에 넣을 VALUE_LIST);
- 모든칼럼에 데이터를 입력하는 경우는 순서대로 빠짐없이 데이터가 입력되어야 함
INSERT INTO 테이블명VALUES (전체 COLUMN에 넣을 VALUE_LIST);
Char, varchar2 경우에는 ' ' 를 붙이고 숫자일 경우는 상관없음, NULL을 직접 입력할 수 있음
2. UPDATE
정보 수정하는 경우
UPDATE 테이블명 SET 수정되어야 할 칼럼명 = 수정되기를 원하는 새로운 값;
3. DELETE
데이터를 삭제하는 경우, where절을 사용하지 않을 경우 테이블 전체 데이터가 삭제됨
DELETE [FROM] 삭제를 원하는 정보가 들어있는 테이블명;
DDL(Create, Alter, Rename, Drop) 직접 테이블에 영향을 미치기 때문에 AUTO COMMIT 발생
하지만, DML(Insert, Update, Delete, Select) 테이블을 메모리 버퍼에 올리고 작업하기에 실시간 영향 미발생
반드시 DML 이후에는 TRANSACTION 명령어 수행 후 종료해야함
그러나, SQL server은 DML경우에도 AUTO CUMMIT이 발생
데이터 전체를 삭제하고 싶을때는?
삭제된 데이터 로그를 저장하는 DELETE TABLE 보단 시스템 부하가 적은 TRUNCATE TABLE 권고 단, ROLLBACK 불가
SQL server TRUNCATE TABLE 이후 ROLLBACK 하여 원상태 복구 가능
4. SELECT
데이터 조회
SELECT [ALL/DISTINCT] 조회할 컬럼명 FROM 칼럼이 있는 테이블명;
ALL : Default 유형, 중복된 데이터가 있어도 모두 출력
DISTINCT : 중복된 데이터가 있는 경우 1건으로 처리해서 출력
- WILDCARD
전체 칼럼을 한번에 보려고 할때, * 애스터 리스크를 사용
SELECT * FROM 테이블명;
문자 및 날짜는 좌측정렬, 숫자는 우측정렬, 기본적으로 대문자로 보임
- ALIAS(별명) 부여하기
칼럼명 바로 뒤에, 또는 as를 붙여서 사용함, 공백이나 특수문자, 대소문자를 구분할 경우 " "로 표현
SQL server의 경우 " " , ' ' , [ ] 의 방식으로 별명 부여
5. 산술연산자와 합성연산자
가. 산술연산자
Number와 date 자료형에 대해 적용
우선순위는 괄호적용 순서 : () → *, / → +, -
사용후에는 별명 붙여서 새로운 의미 부여
나. 합성연산자
문자와 문자를 연결하는 연산자, 캄럼과 문자또는 다른 칼럼 연결 가능, 새로운 칼럼 생성 가능
ORACLE 경우는 || , SQLserver 경우는 +, 두가지 모두 CONCAT(string 1, string2) 함수 사용 가능
6. 추가정보
가. Delete(/modify) Action
- Cascade : Master 삭제시 Child 삭제
- Set Null : Master 삭제시 Child 해당 필드 Null
- Set Default : Master 삭제시 Child 해당 필드 Default 값으로 설정
- Restrict : Child 테이블에 PK 값이 없는 경우만 Master 삭제 허용
- No Action : 참조무결성을 위반하는 삭제/수정 액션을 취하지 않음
나. Insert Action
- Automatic : Master 테이블에 PK가 없는 경우 Master PK를 생성한 후 Child 입력
- Set Null : Master 테이블에 PK가 없는 경우 Child 외부키에 Null 값으로 처리
- Set Default : Master 테이블에 PK가 없는 경우 Child 외부키를 지정된 기본값으로 입력
- Dependent : Master 테이블에 PK가 존재 할 때만 Child 외부키를 지정된 기본값으로 입력
- No Action : 참조무결성을 위반하는 입력 액션을 취하지 않음
다. DROP/TRUNCATE/DELETE 차이점
DROP |
TRUNCATE |
DELETE |
DDL |
DDL (일부 DML성격 가짐) |
DML |
Rollback 불가능 |
Rollback 불가능 |
commit 이전 Rollback 가능 |
Auto commit |
Auto commit |
사용자 commit |
테이블이 사용했던 Storage 모두 Release |
테이블이 사용했던 Storage 중 최초 테이블 생성시 할당된 Storage만 남기고 Release |
데이터를 모두 Delete 해도 사용했던 Storage는 Release 되지 않음 |
테이블 정의 자체를 완전히 삭제함 |
테이블 최초 생성된 초기상태로 만듬 |
데이터만 삭제 |
'자격증 공방 > SQLD' 카테고리의 다른 글
제 3-5절 WHERE 절 (0) | 2018.07.07 |
---|---|
제 3-4절 TCL (TRANSACTION CONTROL LANGUAGE) (0) | 2018.07.07 |
제 3-2절 DDL (0) | 2018.07.07 |
제 3-1절 관계형 데이터베이스 개요 (0) | 2018.07.07 |
제 2-6절 분산 데이터베이스와 성능 (0) | 2018.07.07 |