냥코딩쟝
article thumbnail

임자가 존재하며 창고 내 에서는 구간을 나누어 물품들을 보관하고 있다.

각 구간에는 물품의 성 격 에 따라 이를 관리하는 담당자들이 존재하는데, 이들이 물품의 입고 및 출고, 관리를 맡고 있다. 개 별 물품들은 하나의 커다란 컨테이너 박스에 보관되는데 이 박스들에는 동일한 성격을 가진 물품 들을 보관

 

. 총괄 책 임자-> DBA

.구간 -> 테이블 스페이스

담당자 -> 사용자로서 여기서는 스키마 소유자

컨테이너 박스 -> 테이블

개별 물품 . 입고 및 출고  DBA

구간→ 테이블스페이스

담당자 -> 사용자로서 여기서는 스키마 소유자

컨테이너 박스-> 테이블

데이블에 저장되는 데이터 INSERT DELETE 등과 같은 DML

 

 

 

테이블 만들기

 

CREATE ( 컬럼1 컬럼2 컬럼3 ) / TABLE 테이블명 컬 럼 1 타입 , 컬 럼 2 타입 , 컬 럼 3 타 입

 

CREATE TABLE chr examl ( namesl CHAR(3BYTE), names2 VARCHAR2(3BYTE))' CREATE TABLE Succeeded INSERT INTO chr examl VALUES ( IAA', IAA' )f l rows 1nserred

 

SELECT REPLACE(namesI, ' I, 'B') nml, REPIACE(names2,'','B')nm2 FROM chr exam

 

 

 

 

CREATE TABLE chr examl ( namesl CHAR(3BYTE), names2 VARCHAR2(3BYTE))' CREATE TABLE Succeeded INSERT INTO chr examl VALUES ( IAA', IAA' )f l rows 1nserred

 

SELECT REPLACE(namesI, ' I, 'B') nml, REPIACE(names2,'','B')nm2 FROM chr examl;

 

CREATE TART.n chr exam2 l names3 CHAR(3BYTE), names4 CHAR(3CHAR), names5 CHAR(3));

 

 

컬럼 속성(무결성 제약조건)

무결성을 지키기 위해 제약조건(constraints)들을 제공하는데 이러한 제약조건들은 데이블의 컬럼에 적용되기 때문에 컬럼의 속성

NULL 이 책을 읽는 독자들이 프로그램 개발자라면 NULL이 무엇인지 알고 있을 것이다. 프로그래밍 언어에서 사용되는 NULL이나 데이터베이스상에서 사용하는 NULL은 같은 개념 

 

 

 

UNIQUE 키

UNIQUE 키는 말 그대로 테이블에 있는 데이터를 유일하게 식별하기 위한 무결성 제약조건 중 하 나이다. 예를 들어 EMPLOYEES 데이블은 사원정보를 담고 있고 각각의 로우에는 사원들을 유일 하게 식별하기 위해 EMPLOYEEID(사원번호)를 사용한다

 

CREATE TABLE unlque test ( unlc•11VARCHAR2(10) unlcol2VARCHAR2(10) unic•13VARCHAR2(10) unicoI4VARCHAR2(10) CONSTRAINTSunitmpuk CREATE TABLE SLIcceede UNlQUE NOT NULL, UN 1 QUE , NOT NULL/ NOT NULL, UNIQUE ( uni C•13, uni C•14 ) )/ INSERT INTO unique test ( uni C•11, unl C•12, unl Col3, unl col4 ) VALUES('AI', 'BII/ Tcl', 'DII); ' 7 _L r○ws 1nserEeα INSERT INTO unlque test ( uni C•11, unl c•12/ unl C•13, unl C•14 ) VALUES('A2r, 'B2','C2','D2')' 1 r•ws 1nserted

 

 

ALTER ADD TABLE employees CONSTRAINTS "emp emp id pk" PRIMARY KEY (emPloyee id);

 

기본 키 기본 키(Primaly Key)는 UNIQUE와 동일하게 한 테이블에 있는 데이터들을 유일하게hlnique) 식 별하기 위한 무결성 제약조건이다. 하지만 다른 점이 있다면 기본 키가 걸린 컬럼들은 반드시 NOT NULL 속성을 가진다는 점이다. 즉 기본 키는 UNIQUE十NOT

 

ⓐ employee_id NUMBER(,0) PRIMARY KEY → 인라인 표기방식 (employee_id NUMBERKi,0), CONSTRAINT ‘tmployee_pk'' PRIMARY KEYk긍mployee_id) 타 아웃라인 표기방식

 

ALTER TABLE 데이블명 ADD CONSTRAlNTS "기본키 이름" PRlMARY KEY (컬럼)

 

외래 키

관계형 데이터베이스에서 관계(relationship)리는 용어는 바로 테이블 간의 관계를 의미한다 그리 고 이러한 관계는 테이블 간에 공통값을 가진 컬럼을 통해서 이루어진다 샘플 스키마의 EMPLoYEES 테이블에는 시원에 대한 정보가 들어 있고, DEPARTMENTS 테이블에는 부서에 대 한 정보가 있다. 각 사원들은 소속된 부서가 존재하는데 EMPLOYEES 테이블의 DEPARTMENT ID 리는 컬럼에 소속 부서코드가 있고, 부서의 이름이나 위치 정보 등 부서에 대한 상세한 사항은 DEPARTMENTS 테이블에 저장되어 있다. 따라서 EMPLOYEES와 DEPARTMENTS 테이블은 DEPARTMENT一ID라는 컬럼으로 관계를 맺을 수 있다

 

UPDATE empl•vees SETdepartment1d= WHERE employee_id

 

UPDATE empl•vees SETdepartment1d= WHERE empIoyeeid = 2 8 0 1 7 8 /departement테이블에 2 8 0 인 부서 가 존재하지 않음 

 

 

l 컬럼명 CONSTRA,NTS "외래 키 이름, ' RE FE RE NC E S 참조 테 이 블명 (참조 컬럼) /

 

ALTER TABLE 테이블명 ADD CONSTRAINTS "외래 키 이름" FOREIGN KEY (컬럼) REFERENCES 참조테이블명 (참조 컬럼) ;

 

디폴트 데이터 제약조건에 포함되지는 않지만 컬럼 단위로 설정되는 속성이므로 이 절 에서 설명하겠다. 디폴트는 일반적인 프로그래밍 언어에서 사용되는 개념과 같다.

 

[ 구문 형 식 ] C R E A T E S E L E C T FROM TABLE "스키마명.테이블명" AS 컬럼 리스트 원본 테 이 블명

 

C R E A T E S E LE C T FROM TABLE emp copyl AS * EMP LOYE E S F CREATE TABLE Succeeded

 

테이블의 복사

[ 구문 형 식 ] C R E A T E S E L E C T FROM TABLE "스키마명.테이블명" AS 컬럼 리스트 원본 테 이 블명

테이블의 제거

DROP TABLE [스키마명] .테이블명 [ CASCADE CONSTRA1NTS ] /

 

참조 제약조건(외래 키)들까지 자동으로 삭제

참조 제약조건(외래 키)들까지 자동으로 삭제

 

인덱스의 생성

 

CREATE [UN1QUE] INDEX [스키마명.]인덱스명 ON [스키마명.]테이블명 ( 컬럼1 [, 컬럼2, 컬럼3, ...])

 

CREATE UNIQUE INDEX "HR"."EMP EMAIL UK'' 에 "HR"."EMPLOYEES" ("EMAIL")' CREATE INDEX "HR"."EMP DEPARTMENT IX'' ON "HR"."EMPLOYEES" ("DEPARTMENT ID") ; CREATE INDEX "HR"."EMP NAME IX" ON "HR''."EMPLOYEES" ("LAST NAME", "FIRST NAME")

 

인덱스의 삭제 인덱스의 삭제도 디른 오브젝트들처 럼 DROP 문을 사용하여 삭제할 수 있다 I 구믈 형 식 ] ; I D크C⊇ mDEX [스키마명.]인덱스명

 

. 유일성 여부에 따라 - UNIQUE 인덱스 떪 인덱스 컬럼 에 유일한 값만 입 력 가능, 중복값 불허 - N○N-UNIQUE 인덱스 : 중복값 입력 가능 . 인덱스 구성 컬럼의 개수에 따라 - 단일 인덱스Gingle index) : 인덱스 구성 컬럼 개수가 한 개 - 복합 인덱스tomposlte or concatenated index) : 인덱스 구성 컬럼 개수가 두 개 이상 . 인덱스 생성자에 따라 - 수동 인덱스 : CREATE INDEX 문을 사용하여 사용자가 생성 - 자동 인덱스 : UNIQUE나 기본 키 생성에 따라 오라클이 자동으로 생성

 

창고 안 들여다 보기, 뷰

 

S E L E C T FROM WHERE first name/ 1ast name, email, hire date emp 1 • ye e S department id = 20 ;

CREATE [OR REPLACE] V1EW 스키마이름.뷰이름AS SELECT 문장

 

C R E A T E S E L E C T FROM WHERE WITH OR REPLACE VIEW V empI read •nly AS first name, 1ast name/ email, hire date e mp 1 O ye e s department id IN (20,30) READ ONLYF CREATE OR REPLACE VIEw Succeeded C RE A T E S E L E C T FROM WHERE OR REPLACE VIEW v empl update first name, 1ast name, email/ e mp 1 • y e e s department id IN (20,30); CREATE OR REPLACE VIEW SLJcceeded U P DA T E SET WHERE v empl update 1ast name = '에디슨' first name = '마이클' 1 r•ws updated U P DAT E SET WHERE V empl read •nly 1ast name = '하트쉬타인' 1ast name 三 '마이클' ; A S 힌 U ', nlre αate SgL Err○rγ ORA-01733: 가상열은사용할수없습니다

 

Materialized 뷰

terialized 뷰는 일반 뷰외는 달리 쿼리에 의해 계 산된 결괴를 저장

 

인라인 뷰 인라인이리는 말 역시 낯설지는 않을 것이다. 앞에서 제약조건을 디룰 때 컬럼 정의와 동시 에(컬럼 정 의와 동일한 라인에) 제약조건을 정 의하는 것을 인라인 방식이라고 했었다

 

S E L E C T FROM ( ) W H E R E a.empI•yee id, a.first name, a.1ast name, k.department name EMPLOYEES a, SELECT b.department id, b.department name FROM departments b k a.department id = k.department id

 

클러스터custer)란 하나 이상의 컬럼을 공통으로 시용해서 동일한 데이터 블록을 공유히는, 즉 함 께 저장하는 데이블들의 집합

 

첫째 HR EMPLOYEES테이블에 대한 SELECT 권한이 있어야 한다. SELECT 권한이 없더라도 시노님 생성은 가능하지만 데이 터는 조회할 수 없다.

둘째. 시노님 생성 권한이 있어야 한다.

 

CREATE [ORREPLACE] [PUBLIC] SYNONYM '[스키마명].시노님명' FOR '스키마명.대상오브젝트명';

 

CREATE OR REPLACE PUBLIC SYNONYM pub emp FOR hr.empI•yeesI CREATE OR REPLACE PUBLIC Succeeded

 

E L E C T FROM WHERE Owner, Oblect name, object type dba objects WHERE object_name = 'DUAL';

 

DROP SYNONYM '스키마명.시노님명';'

 

CREATE SEQUENCE "HR"."EMPLOYEES SEQ" MINVALUE1 MAXVALUE999999999999999999999999999 INCREMENTBY1 STARTWITH207 NOCACHE NOORDER NOCYCLE;

 

. MINVALUE : 시퀀스가 시작되는 최초의 숫자 . MAXVLAUE : 시퀀스가 끝니는 최대 숫자 . INCREMENT BY 시퀀스가 증가되는 단위로 28자리 숫자까지 올 수 있다. 0은 올 수 없다. 이 값이 양수이면 시퀀스는 점점 증가하고 음수일 경우 감소하게 되며, 이 값의 절대값은 MAXVALUE - MINVALUE의 절대값보다 작아야 한다. . START WITH 偶 시퀀스 생성이 시작되는 값을 명시한다. 시퀀스 값이 오름차순일 경우 이 값은 MINVALUE 값보다 커야 하며, 내림차순일 경우 MAXVALUE 값보다 작아야 한다. 생략하면 오름 차순일 경우 MINVALUE, 내 림차순은 MAXVALUE 값이 된다. . CACHE l NOCACHE : CACHE를 사용하면 오라클에서 시퀀스를 생성하기 위해 미리 값을 할당 해 놓기 때문에 시퀀스에 좀 더 빠르게 접근이 7信하다. 따라서 동시 사용자가 많을 경우에 이 옵 션을 사용한다. NOCACHE의 경우에는 값을 미리 할당하지 않는다

'-java spring notes- > db' 카테고리의 다른 글

관계를 맺자! 조인  (18) 2023.03.24
오라클 day7~day8  (0) 2023.03.22
1오라클 - 오라클 이란?  (1) 2023.03.20
postgres실습,docker  (1) 2023.01.21
sql 조회  (0) 2023.01.21
profile

냥코딩쟝

@yejang

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!