쥬로그

오라클 - SQL, CRUD 본문

Study/Oracle

오라클 - SQL, CRUD

쥬쥬씨 2021. 8. 26. 18:34
반응형

< SQL, CRUD >

* SQL대소문자를 구별하지 않는다. (Case Insenstive)

  다만, 레코드 내용은 대소문자를 구분한다.
CRUD는 생성 Create, 검색 Retrive, 수정 Update, 삭제 Delete 의 약자이다.


* SQL이란?
= Structured Query Language


- 데이터베이스에 있는 필요한 정보를 사용(생성, 검색, 수정, 삭제)할 수 있도록 도와주는 언어
- 사용방법이나 문법이 다른 언어보다 단순함
- 하나를 배워두면 모든 DBMS에서 응용 가능함
- 인터프리터 (고급언어로 작성된 코드를 한 단계씩 해석하여 실행시키는 방법, 컴파일러를 사용하여 실행하는 것보다는 느리게 실행된다)
- 대소문자 구별하지 않음 (데이터 내용은 구별함)

- 사용자나 프로그램이 필요한 데이터를 가져오기 위해 SQL을 작성한다.
- DBMS가 DB에서 사용자가 작성한 SQL을 통해서 데이터를 가져온다.
- 사용자는 SQL을 통해서 가져온 데이터를 볼 수 있다.

◈ DML(Data Manipulation Language)
- 테이블의 데이터를 조작하는 기능
- 테이블의 레코드CRUD(생성, 검색, 수정, 삭제)


> INSERT : 데이터베이스 객체에 데이터를 입력한다.
> DELETE : 데이터베이스 객체에 데이터를 삭제한다.
> UPDATE : 데이터베이스 객체 안의 데이터를 수정한다.
> SELECT : 데이터베이스 개체 안의 데이터를 검색해서 표시한다.
> MERGE : 두 개의 데이터베이스 객체를 합친다. (오라클에만 있음!)

 


◈ DDL (Data Definition Language)
- DB, 테이블의 스키마정의, 수정하는 기능
- 테이블 생성, 컬럼 추가, 타입 변경, 각종 제약조건 지정, 수정 등


CREATE : 데이터베이스 객체를 생성한다.
ALTER : 기존에 존재하는 데이터베이스 객체를 다시 정의한다.
DROP : 데이터베이스 객체를 삭제한다.
TRUNCATE : 내용만 삭제한다.
RENAME : 데이터베이스 객체의 이름을 변경한다.

◈ TCL (Transactional Control Language)
- 트랜잭션 제어에 관련된 기능
- 커밋, 롤백, 세이브포인트가 이에 해당된다.


> COMMIT : 트랜잭션이 문제없이 수행되면 내용을 반영한다.

                 (메모리엔 반영되나 파일에 반영 안 될 경우, 꼭 커밋해줘야 함!)
ROLLBACK : 트랜잭션 수행 중에 문제가 발생하면 취소한다.
> SAVEPOINT : 롤백 시 특정한 시점까지만 수행을 롤백시킨다.

 DCL (Data Control Language)
- DB나 테이블의 접근권한이나 CRUD 권한정의하는 기능
- 특정 사용자에게 테이블의 조회 권한 허가/금지 등 (관리자, 사용자 등 role 부여)


> GRANT : 데이터베이스 객체에 권한을 부여한다.
> REVOKE : 이미 부여된 데이터베이스 객체 권한을 취소한다.


* CRUD 이해와 실습 (DML)
  CRUD (Create, Retrieve, Update, Delete)
  기본적인 데이터 처리 기능인 생성, 읽기, 갱신, 삭제를 묶어서 일컫는 말이다.
  사용자 인터페이스가 갖추어야 할 기능(정보의 참조/검색/갱신)을 가리키는 용어로서도 사용된다.

-> CRUD 대신 사용되는 유사 용어
  - ABCD
  add, browse, change, delete
  - ACID
  add, change, inquire, delete
  - BREAD
  brose, read, edit, add, delete
  - VADE(R)
  view, add, delete, edit, 트랜잭션 처리에서는 restore 추가

* CRUD - SQL문
생성 Create -> INSERT
읽기 Read(Retrieve) -> SELECT
갱신 Update -> UPDATE
삭제 Delete(Destroy) -> DELETE

◈ CREATE: 데이터베이스 객체 생성
-> INSERT INTO
    새로운 레코드 추가

 

◈ UPDATE: 데이터베이스 객체 안의 데이터 수정
-> UPDATE
    특정 조건의 레코드(들)의 컬럼 값을 수정

◈ DELETE: 데이터베이스 객체의 데이터 삭제
-> DELETE
    특정 조건의 레코드(들)을 삭제

◈ RETRIEVE (SEARCH): 데이터베이스 객체 안의 데이터 검색
-> SELECT
    조건을 만족하는 레코드(들)을 찾아 특정 컬럼 값(모두 표시하려면 * )을 표시


* 오라클을 이용한 CRUD 실습
- 접속

  sqlplus hr/hr or connect hr/hr


- 테이블 리스트 보기

   select * from tab;


- 컬럼, 컬럼 타입 보기

   desc 테이블명; 


- 해당 테이블의 모든 레코드 출력

   select * from 테이블명; 

 


◈ SELECT 명령문 (조회)

SELECT 컬럼명 FROM 테이블명 WHERE 조건절;

ex) desc employees;
     select * from employees;
     select * from employees where last_name = ‘Charles’;
     select * from employees where salary >= 25000;
     부서아이디가 3인 직원들의 ‘이름’
     연봉이 19,000달러가 넘어가는 직원들의 ‘이름’

◈ INSERT INTO 명령문 (입력)

INSERT INTO 테이블명(컬럼명) VALUES (값);

ex) insert into emp values (7777, ‘judy’, ‘SPRING’, 2323, ‘01-APR-2020’, 100000, 3, 17)

 -> select * from emp where empno=7777;

◈ UPDATE 명령문 (수정)

UPDATE 테이블명 SET 컬럼명 = 값, … WHERE 조건절;

ex) update emp set ename = ‘sam’ where empno = 3333;
 -> select * from emp where empno = 3333;

◈ DELETE 명령문 (삭제)

DELETE FROM 테이블명 WHERE 조건절;

ex) delete from emp where empno = 5555;
 -> select * from emp where empno = 5555;
 => no rows selected 가 출력됨

     !     

오라클은 DML의 경우 인서트되고 조회가 되지만 실제 DB에는 반영 되지 않는다.
그래서 반드시 COMMIT(TCL)을 실행해 주어야 실제 DB에 반영된다.
커밋이나 롤백은 줄 단위로 수행되는 것이 아니라 한 번 수행하면 커밋되지 않은 정보를 모두 실제로 반영한다.
롤백도 마지막 커밋한 지점까지 모두 취소된다.
(DDL은 바로 커밋되어 바로 DB에 반영됨)


< Point >

☆ SQL은 DML, DDL, DCL로 되어 있다.
    DML은 insert, select, update, delete와 같은 명령어가 있다.
    DDL은 create table, alter table / DCL은 grant, revoke 명령어 등이 있다.

☆ 테이블에 레코드를 추가할 때는 insert를 사용하면 된다.

☆ 특정 컬럼의 내용을 변경할 때는 update를 사용하면 된다.


< 요약 >
* SQL, CRUD
DML (Data Manipulation Language)
  SQL 종류의 하나로, 데이터의 삽입 / 삭제 / 갱신 등을 처리함


- CRUD (Create, Retrieve, Update, Delete)
  기본적인 데이터 처리 기능인 create, read, update, delete를 묶어서 일컫는 말
  : SELECT 컬럼명 FROM 테이블명 WHERE 조건절;
  : INSERT INTO 테이블명(컬럼명) values(값);
  : UPDATE 테이블명 SET 컬럼명=값; … WHERE 조건절;
  : DELETE FROM 테이블명 WHERE 조건절;


반응형

'Study > Oracle' 카테고리의 다른 글

오라클 - SELECT INTO, INSERT INTO SELECT  (0) 2021.08.30
오라클 - 조인, 별명, 뷰  (0) 2021.08.26
오라클 - 중복제거, 논리연산자, 결과정렬  (0) 2021.08.26
오라클 - 기본 사용법  (0) 2021.08.26
오라클 - DBMS 기초  (0) 2021.08.26