나의 공부방/SQLD

[SQLD] 2장 - SQL 기본

jojaeguk 2023. 6. 4. 17:35

제2장. SQL 기본

* 데이터베이스 정의

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

- DBMS : 데이터베이스 관리 소프트웨어

 

=> SQL 문장들의 종류

     1. 데이터 조작어(DML)

     (1) SELECT (2) INSERT (3) UPDATE (4) DELETE

     2. 데이터 정의어(DDL)

     (1) CREATE (2) ALTER (3) DROP (4) RENAME

     3. 데이터 제어어(DCL)

     (1) GRANT (2) REVOKE

     4. 트랜젝션 제어어(TCL)

     (1) COMMIT (2) ROLLBACK 

 

=> Table 칼럼에 대한 정의 변경

     1. ORACLE

     ALTER TABLE 테이블명 MODIFY 컬럼이름 컬럼유형 NOTNULL/NULL

     2. SQLSEVER

     ALTER TABLE 테이블명 ALTER 컬럼이름 컬럼유형 NOTNULL/NULL

 

=> NULL의 정의

     - 모르는 값, 값의 부재를 의미함

     - 0 or 공백(' ')의 의미도 아님

     - NULL은 "NOT NULL" 이나 "IS NOT NULL"로만 비교 가능

     - NULL과 모든 비교는 알수없음을 반환함

 

=> 제약조건의 종류

     1. PRIMARY KEY : 기본키, 테이블당 1개만 생성이 가능하다. NULL값을 허용하지 않음

     2. UNIQUE KEY : 고유키, 행을 고유하게 식별하기 위한 키, NULL값을 허용함

     3. NOT NULL : 명시적으로 NULL값을 방지

     4. CHECK : 데이터의 무결성을 위하여 특정 컬럼에 설정하는 제약

     5. FOREIGN KEY : 외래키, 참조 무결성, 여러개 사용 가능

 

=> DROP, TRUNCATE, DELETE 비교

 

=> 트랜잭션의 특성

     1. 원자성(atomicity)

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

     2. 일관성(consistency)

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

     3. 고립성(isolation)

     : 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안 된다.

     4. 지속성(durability)

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

 

=> 저장점(SAVEPOINT)

     : 정의하면 롤백(ROLLBACK) 할 때 트랜잭션에 포함된 전체 작업을 롤백하는 것이 아니라 현 시점에서 SAVEPOINT

       까지 트랜잭션의 일부만 롤백할 수 있다.

 

=> WHERE절과 FROM절의 위치

     WHERE절은 FROM절 다음에 위치하며, 조건은 아래 내용으로 구성된다.

     - 칼럼(Column)명(보통 조건식의 좌측에 위치)

     - 비교 연산자

     - 문자, 숫자 표현식(보통 조건식의 우측에 위치)

     - 비교 칼럼명(JOIN 사용시)

     ex) SELECT * FROM WHERE 단가 = 1000;

 

=>  연산자의 우선 순위

     1. 괄호로 묶은 연산자

     2. 부정 연산자(NOT)
     3. 비교 연산자

     4. 논리 연산자 AND, OR의 순으로 처리

 

=> SELECT 문장 실행 순서

     1. 발췌 대상 테이블을 참조한다.(FROM)

     2. 발췌 대상 데이터가 아닌 것은 제거한다.(WHERE)

     3. 행들을 소그룹화 한다.(GROUP BY)

     4. 그룹핑된 값의 조건에 맞는 것만을 출력한다.(HAVING)

     5. 데이터 값을 출력/계산한다.(SELECT)
     6. 데이터를 정렬한다.(ORDER BY)

 

 

참고 : SQL_문제풀이강의 - YouTube