쥬로그
오라클 - SQL, CRUD 본문
< 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 |