Day 04 - 26.09.28

서코딩·5일 전

SQL

목록 보기
4/7

0. 복습

내장함수
: SQL에 내장되어 있는 함수

서브쿼리
: 다른 쿼리 내부에 포함되어 있는 SELECT문

  • ()소괄호를 감싸서 사용한다
  • 서브쿼리의 종류
    WHERE절 : 서브 쿼리
    SELECT절 : 스칼라
    FROM절 : 인 라인 뷰

1) WHERE절의 서브쿼리

  • 메인쿼리의 WHERE절에 사용하는 SELECT

(1) 단일 행 서브쿼리
: 서브쿼리 실행결과로 1개의 행이 조회되는 것
사용하는 연산자 : 관계(비교)연산자 : >, <, ...

(2) 다중 행 서브쿼리
: 서브쿼리 실행결과로 여러 개의 행이 조회됨
사용하는 연산자 : IN(), ANY(), ALL()

(3) 다중 컬럼 서브쿼리
: 여러개의 컬럼에 대한 조건을 한번에 비교할 때 사용

1. 서브쿼리

1) 스칼라 서브쿼리

  • 메인 쿼리의 SELECT문에서 SELECT문 사용
  • 반드시 1개의 행, 1개 칼럼만 반환하는 서브쿼리
    (여러 행이 반환되면 오류 발생)

2) 인라인 뷰(In Line View)

  • 메인 쿼리의 FROM절에 SELECT문 사용
  • 가상 테이블을 만드는 효과

2. SQL문 종류

1) DDL(Data Definition Language) : 데이터 정의어

  • 관계형 데이터 베이스의 구조를 정의함
  • 테이블 조작 또는 제어 관련 쿼리문
  • CREATE, ALTER, DROP, TRUNCATE

2) DML(Data Manipulation Language) : 데이터 조작어

  • 테이블에서 데이터를 입력, 수정, 삭제, 조회함
  • INSERT, UPDATE, DELETE, SELECT

3) DCL(Data Control Language) : 데이터 제어어(권한)

  • 데이터베이스 사용자에게 권한을 부여, 회수함
  • GRANT, REVOKE

4) TCL(Transaction Control Language) : 트랜젝션 제어어

  • 트랜젝션(작업 단위)을 제어하는 명령어
  • COMMIT, ROLLBACK, SAVEPOINT

3. DML

  • 테이블에서 데이터를 추가, 수정, 삭제, 조회하기 위한 SQL문
    => 데이터 조작어
  • WHERE절로 조건을 생성하여 원하는 조건을 검색한 다음, 데이터 수정, 삭제, 조회를 수행한다

1) SELECT : 조회
SELECT 컬럼명, ...
FROM 테이블명
[WHERE 조건];

2) INSERT : 추가

  • 테이블명-컬럼명-데이터 순서로 입력

INSERT INTO 테이블명(컬럼명, ...)
VALUES(값, ...); -- 원하는 컬럼만 골라서 값을 저장할 때 사용한다

INSERT INTO 테이블명
VALUES(값, ...); -- 모든 컬럼에 값을 넣을 때 사용한다

3) UPDATE : 수정
UPDATE 테이블명
SET 컬럼명1 = 값1, 컬럼명2 = 값, ...
[WHERE 조건];
** 주의 ! 만약 WHERE절을 생략하면 내가 선택한 컬럼의 모든 행의 값이 수정됨

4) DELETE : 삭제
DELETE FROM 테이블명
[WHERE 조건];
** 주의 ! WHERE절을 생략하면 모든 행의 데이터가 지워진다

  • DELETE 는 "삭제 여부"만 표시함 => 용량 초기화 x => 테이블 용량 감소 x
  • TRUNCATE 문은 테이블의 데이터 삭제 & 용량 초기화 o => 테이블 용량 감소
    (테이블의 데이터를 모두 삭제한 후 테이블 공간을 초기화함)

4. DDL

  • 관계형 데이터베이스는 릴레이션(relation)에 데이터를 저장, 관리한다
  • 릴레이션은 DBMS에서 테이블로 생성된다
  • 그래서 데이터베이스를 사용하기 위해서는 테이블을 먼저 생성해야 한다
  • DDL 은 관계형 데이터베이스의 구조를 정의하는 언어
    = 테이블 생성, 변경, 삭제를 위한 언어

1) 테이블 생성 : CREATE TABLE

  • 새로운 테이블 생성
  • 기본키(PK), 외래키(FK) 등 제약조건(제약 사항) 설정
CREATE TABLE 테이블명(
	컬럼명 자료형(용량) [제약조건],
    ...
);

+) 자료형(데이터 타입)

  • number : 숫자형 타입
  • varchar2 : 가변길이 문자열
    ex) varchar2(100) : 100글자 까지 저장할 수 있는 문자열
  • char : 고정된 크기의 문자열
    ex) char(2) : 2개의 글자만 저장할 수 있는 문자열
  • date : 날짜형 타입

2) 테이블 수정 : ALTER

ALTER TABLE 테이블명
	- 테이블명 수정 : RENAME TO 새로운 테이블명;
    - 컬럼 추가 : ADD(컬럼명 자료형);
    - 컬럼명 수정 : RENAME COLUMN 기존컬럼명 TO 새컬럼명;
    - 컬럼 삭제 : DROP COLUMN 컬럼명;
    - 컬럼 타입 수정 : MODIFY(컬럼명 자료형);

3) 테이블 삭제 : DROP TABLE

DROP TABLE 테이블명;

4) 테이블 내용 전체 삭제 : TRUNCATE

TRUNCATE TABLE 테이블명;

5. 제약조건(CONSTRAINT)

1) 기본키 : PRIMARY KEY(PK)

  • 고유값이며 각 행의 구분점으로 사용된다
  • 중복이 없고 NULL값을 허용하지 않는다

2) 외래키 : FOREIGN KEY(FK)

  • 다른 테이블의 PK를 사용하며 중복이 가능하다
  • NULL도 허용
  • 보통 테이블 끼리 관계를 맺을 때 사용한다

3) NOT NULL
: NULL을 허용하지 않는다

4) CHECK (컬럼명 = 값, 컬럼명 = 값)

  • 특정 컬럼에 특정 값만 허용하고 싶을 때 사용하는 제약조건
    (우리가 원하는 값이 들어왔는 지 체크한다)
    ex) CHECK(GENDER = 'M' OR GENDER = 'F')
    => GENDER 라는 컬럼에 M 혹은 F 만 허용

5) DEFAULT
: 해당 컬럼에 값을 추가하지 않으면 디폴트로 설정한 값이 들어간다 (기본값 설정)

6) 복합키(조합키)

  • 두개 이상의 컬럼을 KEY(PK)로 설정하는 것
  • 테이블에 한 개의 PK만 존재할 수 있다
    복합키를 사용하면 두 개 이상의 컬럼을 하나의 PK로 사용할 수 있다
profile
서코딩 127 !

0개의 댓글