[Oracle] SQL 기본 사용법

·2023년 10월 12일

Oracle

목록 보기
1/2

https://www.notion.so/SQL-fa7b5cad211c47aba3179faf3db9e547?pvs=4

오랜만에 sql 에 대해 다시 정리한다.
정보처리기사 시험 때 열심히 공부했었는데 다시 하려고 하니까... DDL DCL 도 헷갈린다...

그리고 벨로그 정리를 열심히 하다 보니 새로운 사용법을 익혔다
< br > 을 하면 띄어쓰기 되고
코드 블럭 뒤에 코드명을 붙이면 채색 처리가 마음대로 되는 것

노션에 비해 사용하기 어렵다고 느꼈는데 가독성이 좋아져서 마음에 든다.

1. SQL 개요

(1) Structured Query Language

  • DBMS상에서 데이타를 읽고 쓰고 삭제하는 등 데이타를 관리하기 위한 일종의
    프로그램 언어(CRUD - create read update delete)
  • 집합적 언어(데이타를 특정 집합 단위로 분류해 이 단위별로 한번에 처리하는 언어)
  • 1980년대 후반 RDBMS의 표준언어로 SQL을 채택
  • DDL, DML, DCL등으로 구별하여 사용

(2) DDL(Data Definition Language)

  • CREATE : 테이블이나 인텍스, 뷰등 데이타베이스 객체를 생성
  • DROP : 생성된 데이타베이스 객체를 삭제
  • ALTER : 이미 생성된 데이타베이스 객체를 수정
  • TRUNCATE : 테이블이나 클러스터의 데이터를 통째로 삭제

(3) DML(Data Manipulation Language) - CRUD

  • SELECT : 테이블이나 뷰에 있는 데이터 조회 : Read
  • INSERT : 데이터를 추가 : Create
  • UPDATE : 이미 생성된 데이터를 수정 : Update
  • DELETE : 데이터를 삭제 : Delete

(4) DCL(Data Control Language)

  • GRANT : 사용자에게 특정 권한을 부여
  • REVOKE : 사용자에게 부여된 권한을 회수

(5) 트랜잭션 제어

  • COMMIT : 트랜잭션 처리, 변경된 데이터를 최종 적용
  • ROLLBACK : 트랜잭션 처리, 변경된 데이터를 적용하지 않고 이전으로 되돌림
  • SAVEPOINT : rollback 위치 지정

(6) PL/SQL

  • SQL을 절차적으로 사용할 수 있게 해주는 언어
  • 코드와 문법이 존재하지만, 그 중심은 SQL에 있다
  • DB프로그래밍이라는 것은 PL/SQL을 이용해 함수나 프로시저를 만들어
    여러 작업을 처리하는 것을 말한다



2. 오라클 설치하기

(1) 순서

  1. 오라클 설치
  2. oracle plus 로 들어가서 system / oracle 로 로그인
  3. 명령어 입력 : 사용자 계정 생성
    alter session set "_oracle_script"=true;
    create user fin01 identified by fin01; // user, passwd
    grant create session to fin01; // 접근
    grant resource, connect to fin01; // 권한 주기
    alter user fin01 default tablespace users quota unlimited on users;
    // 데이터 베이스 공간 주기 -> 공간을 확보에 테이블을 사용할 수 있게 해 주세요
  4. 로그인 : conn fin01/fin01
  5. show user; // 현재 로그인한 사람 보기

(2) 계정 만들기

alter session set "_oracle_script"=true;
create user fin01 identified by fin01;
grant create session to fin01;
grant resource, connect to fin01;
alter user fin01 default tablespace users quota unlimited on users;

SQL 사용법

SQL의 개요

  • Structured Query Language
  • DBMS상에서 데이타를 읽고 쓰고 삭제하는 등 데이타를 관리하기 위한 일종의
    프로그램 언어(CRUD - create read update delete)
  • 집합적 언어(데이타를 특정 집합 단위로 분류해 이 단위별로 한번에 처리하는 언어)
  • 1980년대 후반 RDBMS의 표준언어로 SQL을 채택
  • DDL, DML, DCL등으로 구별하여 사용

DDL(Data Definition Language)

  • CREATE : 테이블이나 인텍스, 뷰등 데이타베이스 객체를 생성
  • DROP : 생성된 데이타베이스 객체를 삭제
  • ALTER : 이미 생성된 데이타베이스 객체를 수정
  • TRUNCATE : 테이블이나 클러스터의 데이터를 통째로 삭제

DML(Data Manipulation Language) - CRUD

  • SELECT : 테이블이나 뷰에 있는 데이터 조회 : Read
  • INSERT : 데이터를 추가 : Create
  • UPDATE : 이미 생성된 데이터를 수정 : Update
  • DELETE : 데이터를 삭제 : Delete

DCL(Data Control Language)

  • GRANT : 사용자에게 특정 권한을 부여
  • REVOKE : 사용자에게 부여된 권한을 회수

트랜잭션 제어

  • COMMIT : 트랜잭션 처리, 변경된 데이터를 최종 적용
  • ROLLBACK : 트랜잭션 처리, 변경된 데이터를 적용하지 않고 이전으로 되돌림
  • SAVEPOINT : rollback 위치 지정

PL/SQL

  • SQL을 절차적으로 사용할 수 있게 해주는 언어
  • 코드와 문법이 존재하지만, 그 중심은 SQL에 있다
  • DB프로그래밍이라는 것은 PL/SQL을 이용해 함수나 프로시저를 만들어
    여러 작업을 처리하는 것을 말한다
  1. 오라클 설치
  2. oracle plus 로 들어가서 system / oracle 로 로그인
  3. 명령어 입력 : 사용자 계정 생성
    alter session set "_oracle_script"=true;
    create user fin01 identified by fin01; // user, passwd
    grant create session to fin01; // 접근
    grant resource, connect to fin01; // 권한 주기
    alter user fin01 default tablespace users quota unlimited on users;
    // 데이터 베이스 공간 주기 -> 공간을 확보에 테이블을 사용할 수 있게 해 주세요
  4. 로그인 : conn fin01/fin01
  5. show user; // 현재 로그인한 사람 보기

오라클 계정 만들기 명령어

alter session set "_oracle_script"=true;
create user fin01 identified by fin01;
grant create session to fin01;
grant resource, connect to fin01;
alter user fin01 default tablespace users quota unlimited on users;

오라클 자료형

  • 수치형 자료형 : number // 오라클에서는 숫자 자료형이 하나밖에 없음~ 실수 정수 구분이 없다
  • 문자열 자료형 : char, varchar2(4000)

name char(3) : 3글자만 저장하고 나머지는 버려 버린다~

data

→ a : “a ”

→ 1234 : “123”

name varchar(3)

→ a : “a”

→ 1234 : “123” ⇒ 에러 발생!!

DDL

: 데이터 정의어

CREATE : 테이블 생성

create table test1(
	no number,
	name varchar2(15),
	tel varchar2(10)
);
// 세미 콜론이 들어올 때까지 알아서 줄 수를 늘려준다.

DROP : 테이블 삭제

drop table test1;

현재 테이블 보기

selecet * from tab;

Untitled

테이블 구조 보기

desc test1

Untitled

ALTER : 칼럼 추가

alter table test1 add address varchar2(50);

Untitled

ADDRESS 칼럼이 추가된 모습을 볼 수 있다

칼럼 수정

alter table test1 modify tel varchar2(12);

Untitled

칼럼명 수정

alter table test1 rename column address to addr;

Untitled

칼럼명 삭제

alter table test1 drop (addr);
// 컬럼명에 괄호를 꼭 쳐 줘야 함

Untitled

시퀀스 만들기

: 규칙에 따라 순서를 생성하는 시퀀스 → 번호 매길 필요 X

create sequence test1_seq
start with 1
increment by 1;
// 값 넣어 보기
insert into test1 values(test1_seq.nextval, '유재석', '123-1234');

Untitled

DML

: 데이터 조작어 CRUD

INSERT (create)

insert into test1(no, name, tel)
values(1, '유재석', '123-1234');
// 다른 방법 : 칼럼명 적지 않고 바로 가능
insert into test1
values(2, '하하', '123-5678');
// 예외 방법
// 일부 값만 넣는 방법 : 필요한 값만 넣어서 만들기
// 순서가 뒤바뀔 경우 : 칼럼명을 적어서 뒤바뀐 순서 알려 주기
insert into test1(no, name)
values(3, '지석진');

SELECT (read)

// 테이블 확인
select * from test1;

Untitled

// 검색 1: 조건
select * from test1 where name='유재석';

Untitled

// 검색 2 : like 조건
select * from test1 where tel like '%234';

Untitled

// 검색 3 : like 조건
select * from test1 where tel like '%23%';

Untitled

UPDATE (update)

update test1 set tel='555-5555';
update test1 set name='하동훈', tel='444-2323', where no = 2;

DELETE (delete)

delete from test1 where name='지석진';

DCL

COMMIT

commit;
// 현재까지 작업한 내용을 저장

ROLLBACK

rollback;
// 마지막 commit, savepoint 위치로 이동

SAVEPOINT

savepoint;
// 분기점이 생길 때 만들어 주면 rollback을 이 지점으로 돌릴 수 있다.
profile
자바 백엔드 개발자 개인 위키

0개의 댓글