반응형

1. 기본 구조

- From 절에서 department 테이블과 Student 테이블을 카티션 프로덕트한다.

- 밑의 관계대수와 같은 의미이다.

 

 

 

 

 

 

* 일반적으로 카티션 프로덕트 보다는 조인이나 자연 조인을 사용한다.

< 오라클에서 조인 사용법 >

 

1) SELECT s.name, d.dept_name

    FROM Student s, Department d

    WHERE s.dept_id = d.dept_id

         AND d.dept_name = '컴퓨터공학과';

 

 

2) SELECT s.name, d.dept_name 

    FROM Student s INNER JOIN Department d          <-- INNER 생략 가능

        ON (s.dept_id = d.dept_id)                            <-- () 생략 가능

    WHERE d.dept_name = '컴퓨터공학과';

 

3) SELECT s.name, d.dept_name

    FROM Student s INNER JOIN Department d          <-- INNER 생략 가능

        USING (dept_id)                                          <-- () 필요. 컬럼 앞에 alias 접두사 사용 불가 (s.dept_id X)

   WHERE d.dept_name = '컴퓨터공학과';

 

4) SELECT s.name, d.dept_name

    FROM Student s NATURAL JOIN Department d      <--  join 조건 생략

    WHERE d.dept_name = '컴퓨터공학과';

 

 

 

 

< 여러 개의 조건을 하고 싶을 때 >

 

1) SELECT s.name, d.dept_name, c.col_name 

    FROM (Student s JOIN Department d ON s.dept_id = d.dept_id)      <-- () 생략 가능                

                           JOIN Collage c  ON d.col_id = c.col_id           

    WHERE c.col_name = '정보과학대학';

 

2) SELECT s.name, d.dept_name, c.col_name 

    FROM Student s JOIN Department d  USING (dept_id)                       

                          JOIN Collage c  USING (col_id)           

    WHERE c.col_name = '정보과학대학';

 

 

 

 

 

 

 

 

 

 

 

 

2. 두 개 이상의 테이블이 포함된 질의

 

 

 

 

 

 

 

3. 레코드 정렬 : ORDER BY

 

 

이름과 학생 아이디로 정렬

-> 기본적으로 오름차순 정렬이다.

 

 

 

 

 

* 내림차순 정렬하려면 해당 필드명 뒤에 'desc'를 붙여주면 된다.

 

 

 

 

 

 

 

 

 

4. 재명명 연산

 

 

* 주의 *

특정 테이블에만 존재하는 변수의 테이블명은 생략 가능하다.

 

 

- 셀프 조인

 

- 필드의 재명명

 

 

 

 

 

 

5. LIKE 연산자

: 일부분만 일치하는 경우를 찾아야 할 때

< 문자열 패턴 >

_ : 임의의 한 개 문자에 대응

% : 임의의 여러 개 문자들에 대응

 

 

 

 

like 연산 예시

 

반응형
반응형

1. 레코드 삽입

레코드 삽입 형식

- 필드 리스트 순서대로 값 리스트도 작성하여야 한다.

- 필드 리스트에 나열되지 않은 필드는 NULL 값이 입력된다.

- 팰드 리스트는 생략 가능하다. -> 생략하면 값 리스트는 원래 테이블 열 순서대로 입력된다.

 

 

 

 

레코드 삽입 예시

 

특정 필드를 생략하는 경우

 

 

 

* 레코드 삽입 시 주의사항 *

외래키 필드를 포함하는 레코드를 삽입할 때,

참조하는 테이블의 해당 필드에 그 값을 갖는 레코드가 존재하여야 한다.

 

 

 

 

 

 

 

 

 

 

 

 

2. 레코드 수정

 

 

 

 

name 필드에 값이 없는 조건은?

-> where name is null

But, count(*)는 특정 필드가 아닌 전체 레코드에 대한 연산이므로 null의 존재 여부와는 무관하다.

 

 

 

 

 

 

 

 

 

 

 

3. 레코드 삭제

 

 

 

 

 

 

* 주의 *

모든 레코드를 삭제한다고 하더라도 테이블은 삭제되지 않는다.

 

 

 

 

 

 

 

 

 

 

4. 레코드 검색

: 레코드 정렬, 재명명 연산, LIKE 연산, 집합 연산자, 외부 조인, 그룹화 및 집계 함수, 중첩 질의

 

- where 절은 생략 가능하다.

 

* 중요 *

from 절에서 여러 개의 테이블이 나열될 경우, 관계대수의 카디션 프로덕트를 의미한다.

 

 

* 중요 *

관계대수는 집합이기 때문에 중복되는 레코드를 제거해 주지만,

SQL에서는 중복되는 레코드를 그대로 검색한다.

 

 

 

 

 

- 중복 레코드를 제거하고 싶다면?

select 절에 distinct 키워드를 넣어주면 된다.

 

 

 

 

 

 

 

 

 

- select절에 필드 이름 외에도 산술식이나 상수를 사용할 수 있다.

 

 

반응형
반응형

1. SQL이란?

: Structured Query Language

: 관계형 데이터베이스를 위한 표준 질의 언어

 

 

- 질의어와 SQL

: 관계 대수나 관계 해석은 질의 언어의 이론적 배경을 제공하나, 상용 언어로 쓰기에는 어렵고 적절치 않다.

: 관계 대수는 질의 연산과 그것들의 순서까지 기술해야 한다.

: 반면, SQL은 자연어와 유사하고 수행 절차를 명시할 필요가 없는 비절차적 언어이므로 사용하기 용이하다.

 

 

 

 

 

 

2. SQL의 구성

1) DDL(Data Definition Language)

: 데이터의 저장 구조를 명시하는 언어

: 테이블 스키마의 정의, 수정, 삭제를 위한 명령문 제공

 

 

2) DML(Data Manipulation Language)

: 데이터를 접근하고 조작할 수 있게 하는 언어

: 레코드의 검색, 삽입, 삭제, 수정을 위한 명령문 제공

 

 

 

 

 

 

[ DDL ]

3. 테이블 생성 (기본키, 외래키 설정)

 

테이블 생성 형식
테이블 생성 예시

 

 

 

 

< 주요 데이터 타입 >

 

 

 

< 기본키 설정 >

 

기본키 설정 형식 및 예시

 

- pk_department 는 기본키의 이름이다.

- 기본키의 이름을 설정하지 않아도 된다면, 데이터 타입 뒤에 'primary key'라고만 입력해도 기본키가 된다.

 

 

 

 

 

< 외래키 설정 >

 

외래키 생성 형식 및 예시

- fk_student 는 외래키의 이름이다.

- 외래키의 이름을 설정하지 않아도 된다면 데이터 타입 뒤에 'references 참조하는 테이블(참조하는 기본키)' 를

 작성해주면 된다.

 

 

 

 

 

 

 

 

 

4. 테이블 삭제

 

테이블 삭제 형식

* 주의 *

다른 테이블에서 외래키로 참조하는 경우 삭제할 수 없다.

-> 해당 기본키를 삭제하거나, 외래키 제약조건을 삭제해야 한다.

 

 

 

 

 

 

 

 

 

 

5. 테이블 수정

 

 

- 테이블 추가 수정

테이블 추가 형식
테이블 추가 예시

 

 

 

- 테이블 삭제 수정

테이블 삭제 형식 및 예시

 

 

- 이 때에도 다른 테이블에서 외래키로 참조하는 기본키가 있는 경우 삭제 명령을 수행할 수 없다.

 

 

 

 

 

 

* 중요 *

외래키 제약조건을 삭제하는 방법 !!

[ alter table 테이블명 drop constraint 제약조건명 ]

 

 

 

 

반응형

'Computer Science > Database' 카테고리의 다른 글

SQL 3) DML : select문  (0) 2020.10.20
SQL 2) DML : 삽입, 수정, 삭제, 검색  (0) 2020.10.20
Oracle 오라클 테이블 스페이스 명령어  (0) 2020.10.16
Oracle 오라클 데이터 구조  (0) 2020.10.16
SQL Plus 명령어  (0) 2020.10.16
반응형

1. 테이블 스페이스 생성

CREATE TABLESPACE <테이블 스페이스 이름>

DATAFILE '<데이터 파일 경로>' SIZE <데이터파일 크기>

 

 

2. 테이블 스페이스 변경

ALTER TABLESPACE <테이블 스페이스 이름>

ADD DATAFILE '<데이터 파일 경로>' SIZE <데이터파일 크기>

 

 

3. 기존 테이블 스페이스 삭제

DROP TABLESPACE <삭제할 테이블 스페이스 이름>

 

 

4. 테이블 스페이스 조회

SELECT <테이블 스페이스 이름>, <파일 이름> FROM dba_data_files;

 

 

5. 테이블 스페이스 사용

CREATE USER <사용자 계정>

IDENTIFIED BY <비밀번호>

DEFAULT TABLESPACE <사용할 테이블 스페이스 이름>

QUOTA <용량> ON <사용할 테이블 스페이스 이름>

 

권한 부여

GRANT CONNECT, RESOURCE TO <사용자 계정명>

 

반응형

'Computer Science > Database' 카테고리의 다른 글

SQL 2) DML : 삽입, 수정, 삭제, 검색  (0) 2020.10.20
SQL 1) SQL 기본, DDL  (0) 2020.10.20
Oracle 오라클 데이터 구조  (0) 2020.10.16
SQL Plus 명령어  (0) 2020.10.16
관계형 데이터베이스 5) 집합 연산, 조인  (0) 2020.10.13
반응형

 

 

< 논리적 구성요소 >

- 데이터 블록

- 익스텐트

- 세그먼트

- 테이블스페이스

 

< 물리적 구성요소 >

- 데이터 파일

- 컨트롤 파일

- redo 로그 파일

- 매개변수 파일

- alert/trace 로그 파일

- 백업 파일

 

 

 

 

 

 

1. 데이터 블록  

: 데이터가 저장되는 가장 작은 단위 (입출력 단위)

: 데이터 블록 표준 크기는 db_block_size 라는 파라미터 값에 저장

: 데이터베이스 설정 정보는 v$parameter 라는 이름의 테이블에 저장됨

 

 

2. 익스텐트(extent)

: 연속적인 여러 개의 데이터 블록들이 모여 하나의 익스텐트를 구성

 

 

3. 세그먼트(segment)

- data segment : 테이블 데이터를 저장

- index segment : 인덱스 정보를 저장

- temporary segment : 임시 데이터를 저장

- rollback segment : 트랜잭션에 의해 변경되는 데이터의 변경 전 값을 저장

 

 

 

 

 

 

 

 

 

4. 테이블 스페이스

: table, index, view 등 스키마 객체들을 저장

: 성격이 다른 데이터들을 서로 분리해서 저장 관리

: 테이블 스페이스는 하나 이상의 세그먼트를 포함

: 물리적으로는 하나 이상의 데이터 파일들로 구성됨

 

* 테이블 생성 전에 데이터베이스와 테이블스페이스가 먼저 생성이 되어 있어야 함

 

 

< 용도에 따른 테이블 스페이스 구분 >

1. 시스템 테이블 스페이스

- System : 롤백 세그먼트 포함 가능

 

2. 논 시스템 테이블 스페이스

-  Users : 일반 사용자가 생성한 데이터 저장

-  Temp : 임시 데이터

-  Undo : 변경 전 값 저장

 

 

 

 

< 물리적 구성요소 >

1. 컨트롤 파일 : 데이터베이스 이름, 데이터 파일  및 redo 로그파일의 이름과 위치 정보 등 저장

2. Redo 로그 파일 : 데이터베이스 변경 내역을 저장

3. 설정 파일 : 데이터베이스 및 오라클 설정 정보 저장

4. alert/trace log file : 오류 데이터 저장

 

 

 

5. 데이터 파일 : 오라클이 관리하는 데이터가 실제로 저장되는 디스크 상의 파일 

 

 

 

 

< 오라클 서버 인스턴스 구조 >

: 데이터베이스를 사용할 수 있게 하는 프로세스와 메모리 구조의 집합

반응형
반응형

1. 편집 명령어

 

- list : 버퍼에 저장된 내용을 화면에 출력

- edit : 버퍼에 저장된 내용을 메모장 편집기를 통해 편집 가능, 저장

- append : 버퍼에 추가

- change : 버퍼 내용 변경

 

 

 

2. 파일 명령어

 

- save 파일 이름 : 버퍼에 있는 내용을 파일에 저장

- get 파일 이름 : 파일의 내용을 버퍼로 불러옴

- spool 파일 이름 : 이후의 작업 내용을 파일에 저장

- spool off : spool 작업 해제

- host dir : 디렉토리 보기

- host more 파일 이름 : 파일 내용 보기

 

 

 

3. 실행 명령어

 

- start 파일 이름(@ 파일 이름) : 파일에 저장된 SQL 스크립트를 실행

- Run(/) : 버퍼에 있는 SQL문을 실행

 

 

 

4. 환경 명령어

 

- set linesize : 출력하는 페이지의 폭을 문자수로 결정한다.

- set pagesize : 페이지 당 행의 수를 설정한다.

 

 

 

5, 형식 명령어

 

- column 열 이름 format a20 : 열의 폭을 20자로 출력

- column 열 이름 format L99,999 : 열의 값을 통화로 표시

 

 

6. 기타

 

- desc(describe) 테이블이름 : 테이블의 구조 정보 출력

 



반응형

+ Recent posts