Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

Full-Stack 개발자가 되려는 작은 개발자의 블로그

데이터베이스(Oracle) 기초1 본문

강의 정리/Oracle

데이터베이스(Oracle) 기초1

jhjin 2020. 4. 21. 17:31

SQL(Structure Query Language)

    - 구조적 질의 언어

 

SQL 종류

DDL(Data Definition Language) - 정의어 CREATE 계정, 테이블, 뷰등을 생성
DROP 계정, 테이블, 뷰등을 삭제
ALTER 계정, 테이블, 뷰등을 수정
DML(Data Manipulation Language) - 조작어 INSERT 데이터를 삽입
UPDATE 데이터를 수정
DELETE 데이터를 삭제
SELECT 데이터를 검색
DCL(Data Contol Language) - 제어어 GRANT 권한 부여
REVOKE 권한 취소

- 사용자 계정 생성 -

CREATE USER '사용자명' 
IDENTIFIED BY '비밀번호' 
DEFAULT TABLESPACE USERS 
TEMPORARY TABLESPACE TEMP 
QUOTA UNLIMITED ON USERS;

GRANT DBA TO '사용자명';

※ TABLESPACE란? 오라클 DB가 데이터를 저장하는 논리 구조(파일) 하나 또는 여러개의 파일로 구성

 

- 테이블 생성(Table Creation) -

CREATE TABLE [tab_name] ( 
    [col_name] [data_type], 
        :          :     , 
    [col_name] [data_type] 
);	CREATE TABLE TEST1( 
    TEST_NUM NUMBER
);

------------------------------
CREATE TABLE TEST1( 
    TEST_NUM NUMBER 
);

제약 조건(Constraint)

    - 테이블에 부적절한 자료(데이터)가 입력되는 것을 방지하기 위해서 여러가지 규칙을 적용하는 것.

    - 데이터의 무결성 유지를 위해 사용자가 지정 할 수 있는 성질

    - 의미있는 이름을 부여하여 쉽게 참조 할 수 있음.

    - 제약조건은 테이블 생성 시에 지정하거나, 수정(ALTER) 명령으로 추가 할 수 있음.

 

NOT NULL 반드시 값을 입력해야하는 제약조건
UNIQUE 중복 된 값을 입력하지 못하는 제약조건
CHECK 특정 범위의 값만 입력하도록 하는 제약조건
DEFAULT 입력이 없을 경우 지정 된 값을 입력하는 제약조건
PRIMARY KEY 기본키를 설정하는 제약조건
FOREIGN KEY 외래키를 설정하는 제약조건
-- not null 제약조건 : 반드시 값을 입력해야 한다는 제약조건
drop table emp3;
create table emp3(
    -- ename VARCHAR2(20) constraint emp_nn_ename not null
    ename VARCHAR2(20) not null
);

 

-- unique 제약조건 : 데이터의 유일성 보장 조건(중복 불가)

create table dept3(
    -- deptno number constraint dept_uq_deptno unique
    deptno number unique
);
INSERT INTO DEPT3 VALUES(1);

--오류 발생
INSERT INTO DEPT3 VALUES(1);

-- check 제약조건 : 데이터를 특정 범위로 제한
create table emp4(
    gender VARCHAR2(1) constraint emp_ck_gender check(gender in('M','F'))
);
insert into emp4 values('M');
insert into emp4 values(' '); --공백은 check 조건으로 검사하지 않는다. 
insert into emp4 values('G'); --'M','F' 이외의 값이 들어오면 제약조건으로 인한 오류 발생

-- default : 값을 입력하지 않아도 지정한 값으로 입력 처리.
create table membertbl(
    mid varchar2(20) constraint mtb_pk_mid primary key,
    mname varchar2(20) not null,
    mpass varchar2(16) not null,
    mgrade varchar2(10) default 'SILVER'
);

insert into membertbl (mid,mname,mpass,mgrade) values('tester','정효진','1234','gold');
insert into membertbl (mid,mname,mpass) values('tester2','정효진2','1234');

-- 기본키 설정1 > 속성명 옆에 PRIMARY KEY
CREATE TABLE TEST1(
    TEST_NUM NUMBER PRIMARY KEY
);
-- 기본키 설정2 > 제약 조건으로 설정
CREATE TABLE TEST1(
    TEST_NUM NUMBER,
    CONSTRAINT TEST1_PK_TNUM PRIMARY KEY(TEST_NUM)
);
-- 기본키 설정3 > 테이블 생성 후 ALTER 명령을 통해 제약조건 추가
CREATE TABLE TEST1(
    TEST_NUM NUMBER
);
ALTER TABLE TEST1
ADD CONSTRAINT TEST1_PK_TNUM PRIMARY KEY(TEST_NUM);

Oracle 데이터 타입

1. 문자타입(문자열만 처리)

    - n만큼의 크기를 지정

    - n은 입력하는 문자열의 길이

CHAR(n) 고정 길이 문자열(byte 단위)
VARCHAR2(n) 가변 길이 문자열. 입력한 데이터에 따라 저장 공간 크기가 변경(byte 단위)
NCHAR(n) 고정 길이 문자열, n개의 글자만큼 저장 > 유니코드 기준(글자 단위)
NVARCHAR2(ㅜ) 가변 길이 문자열, n개의 글자만큼 저장 > 유니코드 기준(글자 단위)

2. 숫자타입

NUMBER(m,n) m - 전체 자리 수 , n - 소수의 자리수 

3. 날짜타입

DATE YYYY-MM-DD HH:MI:SS

 

'강의 정리 > Oracle' 카테고리의 다른 글

데이터베이스(Oracle) 실습1  (0) 2020.04.27
데이터베이스(Oracle) 기초2  (0) 2020.04.23
Comments