ORACLE SQL 정리 - 1
본문 바로가기
CS/Database

ORACLE SQL 정리 - 1

by IYK2h 2021. 11. 5.
728x90

오라클로 배우는 데이터베이스 개론과 실습 | 박우창, 남송휘, 이현룡 지음 | 한빛아카데미| 2020년 07월 30일 출간된 책을 통해 개념을 정리한 글 (문제시 삭제 하겠습니다.)


SQL 기능에 따른 분류

  • DDL (데이터 정의어) CREATE, ALTER, DROP
    • 테이블이나 관계의 구조를 생성, 변경, 제거
  • DML(데이터 조작어) SELECT, INSERT, DELETE, UPDATE
    • 테이블에 데이터를 검색, 삽입, 삭제, 수정
  • DCL(데이터 제어어) GRANT, REVOKE
    • 데이터의 사용 권한을 관리

DDL

CREATE TABLE

테이블을 구성하고, 속성과 속성에 관한 제약을 정의하며, 기본키 및 외래키를 정의하는 명령 PRIMARY KEY는 기본키, FOREIGN KEY 는 외래키

기본 문법

CREATE TABLE 테이블 이름 (

​	컬러명1 데이터타입 조건1, 컬러명2 데이터타입 조건2, 컬러명3 데이터타입 조건3, ...

​	)

외래키 제약조건을 명시할 때는 반드시 참조되는 테이블(기본키)이 존재해야 한다

ON UPDATE, ON DELETE 는 외래키 속성의 수정과 투플 삭제 시 동작을 나타낸다

ALTER TABLE

생성된 테이브르이 속성과 속성에 관한 제약을 변경하며, 기본키 및 외래키를 변경한다.

ADD, DROP은 속성을 추가하거나 제거할 때 사용

MODIFY 는 속성의 기본값을 설정하거나 삭제할 때 사용

ADD <제약이름>, DROP<제약이름>은 제약사항을 추가하거나 삭제할 때 사용

기본 문법

ALTER TABLE 테이블 이름

​	[ADD 속성이름 데이터 타입] 

​	[DROP COLUMN 속성이름] 컬럼 삭제

​	[ALTER COLUMN 속성이름 [NULL | NOT NULL]데이터타입]

​	[ALTER MODIFY] 테이블 컬럼 수정

​	[RENAME 전 TO 후] 테이블 컬럼 이름 변경

​	;

 

DROP TABLE

테이블을 삭제하는 명령(테이블의 구조와 데이터 모두 삭제하므로 주의)

기본 문법

DROP TABLE 테이블이름;

DML

SELECT

SELECT [ ALL | DISTINCT ] 속성이름(들)

FROM 테이블이름(들)

[ WHERE 검색조건 ]

[ GROUP BY 속성이름 ]

[ HAVING 검색조건 ]

[ ORDER BY 속성이름 [ASC(오름차순) | DESC(내림차순)] ]

[] : 선택적 사용, | : 문법들 중 한개 사용

WHERE

WHERE 절에 조건으로 사용되는 술어

술어 연산자
비교 =,<,>,<>,<=,>=
범위 BETWEEN <조건> AND <조건>
집합 IN, NOT IN
패턴 LIKE '<패턴>'
NULL IS NULL, IS NOT NULL
복합조건 AND, OR, NOT

 

와일드  문자의미
+ '문자열'+'연결':'문자열 연결'
% '%문자' 문자를 0개 이상 포함하는 문자열
[ ] '[0-10]%' : 0~10 사이 숫자로 시작하는 문자열
[^] '[^0-10]%' : 0~10 사이 숫자로 시작하지 않는 문자열
_ '-자%' :두 번째 위치에 '자'가 들어가는 문자열

위와 같은 와일드 문자의 종류(특정 문자나 문자열이 포함되어 있는지를 검색하고 싶은 경우)를 사용하여 부분검색(패턴 매칭)을 할 때 IN 대신 LIKE를 사용

SELECT * FROM BOOK WHERE bookname LIKE '%실습';

집계 함수

SUM : 결과 행들의 합

AVG : 결과 행들의 평균

COUNT : 결과 행들의 개수 (중복된 값도 COUNT)

MAX : 결과 행들 중 MAX값을 출력

MIN : 결과 행들 중 MIN값을 출력

GROUP BY, HAVING

  • GROUP BY 절은 데이터들을 원하는 그룹으로 나눈 수 있다
  • HAVING
    • WHERE 절에서는 집계함수를 사용 할 수 없다.
    • 집계함수를 가지고 조건비교를 할 때 사용한다.
    • GROUP BY절과 함께 사용이 된다.

조인

  • 내부조인
    • SELECT <속성> FORM 데이블1,데이블2 [WHERE <조인조건> AND <검색조건>]
    • SELECT <속성> FROM 테이블1 INNER JOIN 테이블2 ON <조인조건> [WHERE <검색조건>]
  • 외부조인
    • SELECT <속성> FORM 데이블1 {LEFT|RIGHT|FULL [OUTER]} JOIN 데이블2 ON <조인조건> [WHERE <검색조건>]

부속질의

SELECT * FROM 테이블 WHERE <검색조건>=(SELECT <검색조건> FROM 테이블 (같은 테이블도 가능))

집합연산

UNION 합집합, MINUS 차집합, INTERSECT 교집합 (DBMS 마다 차의가 있다)

EXISTS

원래 단어에서 의미하는 것과 같이 조건에 맞는 튜플이 존재하면 결과에 포함시킨다.

즉 부속질의문의 어떤 행이 조건에 만족하면 TRUE

DCL

INSERT

테이블에 새로운 투플을 삽입하는 명령어

기본 문법

INSERT INTO 테이블이름[(속성리스트)] VALUES (값리스트);

UPDATE

특정 속성 값을 수정하는 명령어

기본 문법

UPDATE 테이블이름 SET 속성이름 1=값1 [, 속성이름 2=값2, ... ] [WHERE <검색조건>];

DELETE

테이블에 있는 기존 투플을 삭제하는 명령

기본 문법

DELETE FROM 테이블이름

[WHERE 검색조건];

 

 

 

Reference - 오라클로 배우는 데이터베이스 개론과 실습 | 박우창, 남송휘, 이현룡 지음 | 한빛아카데미| 2020년 07월 30일 출간

728x90

'CS > Database' 카테고리의 다른 글

데이터 모델링  (0) 2021.12.17
ORACLE SQL 정리 - 2  (0) 2021.11.12
관계대수  (0) 2021.10.29
무결성 제약조건  (0) 2021.10.22
데이터베이스 시스템 구성 및 구조  (0) 2021.10.15

댓글