본문 바로가기

IT코딩공부!

#12 DB공부 시작!

오늘의 노래!

 
아티스트
지수 (JISOO)
앨범
ME
발매일
2023.03.31

 

 

[0] DB란?

※ 정보와 자료
- 자료(Data) : 현실세계에서 관찰이나 측정을 통해 수집한 
             단순한 사실이나 결과값

- 정보(Information) : 의사결정에 도움을 줄 수 있는 유용한 형태,
                    자료를 가공(처리)해서 얻을 수 있는 결과

 

(예)를 들어  data : 시험점수
                  process : 총점, 평균, 최고점수 등등..
                  information : 성적표

 

 

※ DataBase(DB)
    : 필요한 데이터가 저장되어 있는 단위
    : 테이블들이 모여 이루는 데이터 단위

데이터베이의 기본 개념을 알아보았다!

 

※ 데이터베이스 정의(ISOS)   4가지 중요!!
    : 특정 조직의 여러 사용자가 (공유)하여 
      사용할 수 있도록 (통합)해서 (저장)한 (운영) 
      데이터의 집합

 

(1) Integrated(통합데이터)
    : 자료중복을 배제한 데이터 모임

 

(2) Stored Data(저장데이터)
    : 컴퓨터가 접근 할 수 있는 저장 매체에 저장된 자료

 

(3) Operation Data(운영데이터)
    : 지속적으로 꾸준히 유지해야 하는 데이터

 

(4) Shared Data(공유데이터)
    : 여러 사용자가 함께 사용할 수 있고, 
      사용 목적이 다를 수 있기 때문에 유연성 있게 데이터베이스를 설계

 

※ 데이터베이스 특징

(1) 실시간 접근성 : 사용자가 요구하는 데이터에 실시간으로 응답할 수 있어야 한다.

 

(2) 동시 공유 : 다수의 사용자가 동시에 이용할 수 있어야 한다.  >> 여러 사용자가 서로 다른 데이터를 동시에
                        사용하는 것은 물론, 같은 데이터도 동시에 사용할 수 있도록 지원해야 한다.

 

(3) 내용기반 참조 : 저장된 메모리의 주소나 위치가 아닌 데이터의 내용으로 참조한다.
                                EX) 힉잠이 B이상인 학생의 이름을 검색하세요. >> 위치 상관없이 불어올수 있다!!

 

(4) 계속적인 변화 : 현실세계의 상태를 정확히 반영해야 하기 때문에 끊임없이 변화하는 세계에 맞춰
                               데이터베이스 속 데이터도 계속 변해야 한다. 이를 위해 삽입, 삭제, 수정이 필요하다.

 

※ 데이터베이스 사용자
(1) DBA : 데이터베이스 관리자
(2) 응용프로그래머
(3) 사용자

 

※ DBA (DataBase Administrator)
    : 데이터베이스 시스템의 모든 관리와 운연에 대한 책임을 지고 있는 사람(관리자)  

 

※ DBMS (DataBase Mangement System)
    : 데이터들을 효율적으로 관리하기 위해 제공되는 시스템
    : EX) Oracle, mySQL, MSSQL, 등..  

 

// 테이블 생성 개념

-- 테이블 생성
--    CREATE TABLE [TABLE_NAME](
--        COL1_NAME   COL1_TYPE,
--        COL2_NAME   COL2_TYPE,
--        COLN_NAME   COLN_TYPE,
--    );

 

 

[1] 테이블 이름 생성 규칙
    - 문자로 시작해야된다.(한글가능, 숫자불가능)
    - 30byte 이하여야 한다.(영어 30자, 한글 15자)
    - 중복 될 수 없다.
    - 영문자 or 한글, 숫자와 특수문자 중 달러($), 샾(#), 언더바(_) 사용가능
    - SQL 키워드는 사용할 수 없다. (CR EATE, SELECT 등등)

 

[2] 열(COLUMN)이름 생성 규칙
    - 문자로 시작(한글o, 숫자x)
    - 30byte
    - 중복 X
    - 영문자1, 한글1, 숫자1, 특수문자($, #, _)1
    - SQL 키워드 사용불가

 

[3] 자료형(☆ 위주로 사용)
    1. VARCHAR(길이) : 가변길이 데이터타입(최대 4000바이트)
                      지정된 길이보다 짧은 데이터가 입력 될 시 나머지 공간은 채우지 않는다.
                        
    2. CHAR(길이) : 고정이 데이터타입(최대2000바이트)
                    지정된 길이보다 짧은 데이터가 입력 될 시 나머지 공간을 채운다.
                    
    ex) VARCHAR(5) : 'AA' 입력시 >> 'AA'
        CHAR(5) : 'AA' 입력시 >> 'AA'
        
    ☆3. NVARCHAR(길이) : VARCHAR + 국가별 문자세트(유니코드 지원 가변 문자열)
            == 몇글자 쓸건지 생각!
            
    ☆4. NUMBER : 숫자 데이터(정수, 실수 모두 사용가능)
        -NUMBER(5) : 5자리 정수
        -NUMBER(3,2) : 3자리 정수, 2자리 소숫점
    ☆5. DATE : 날짜 데이터(년/월/일/시/분/초 까지 표현가능)
    ---------------------------------------------------------------------------
    // 더큰 용량의 텍스트용!
    6. CLOB : 대용량 텍스트 데이터 타입으로 최대 4GB까지 저장가능
    7. BLOB : 대용량 텍스트 유니코드 타입으로 최대 4GB까지 저장가능
    8. BFILE : 대용량 이전 데이터 파일을 최대 4GB까지 저장가능

 

 


[1] SQL Developer 설정

 

SQL 기본 포트1521 설정방법!!
설정후 (상태 : 성공) 여부 확인하기!!
필수로 선택된거면 지정해주자!!

 

오라클 오류는 무조건 구글검색!!
오류 수정!!

 

다른영역의 친구들 (친구지만 서로 간섭은 안됌!)
C##없이 사용하는법!

 

무조건 Ctrl + Enter키 실행!!


[2] SQL Developer 진행

// 테이블 생성

CREATE TABLE PSTU(
PNAME NVARCHAR2(5),
PAGE    NUMBER
);

// 테이블 생성2

--STUDENT 테이블 생성
--(1) 이름(STU_NAME) : NVARCHAR2(5)
--(2) 나이(STU_AGE) : NUMBER
--(3) 생년월일(STU_BIRTH) : DATE

CREATE TABLE STUDENT(
STU_NAME NVARCHAR2(5),
STU_AGE NUMBER,
STU_BIRTH DATE
);

//테이블 확인
SELECT * FROM student; --*은 ALL의 의미를 가진다.
SELECT STU_NAME, STU_AGE, STU_BIRTH FROM STUDENT;

 

//데이터 추가
INSERT INTO (TABLE_NAME)

VALUES (COL1 data, COL2 data, CLON data);

 

--이름, 나이, 생년월일
--SYSDATE : 현재(날짜 + 시간)

INSERT INTO student VALUES('김정태', 25, '2023-04-05');
INSERT INTO student VALUES('김', 26, '2023-04-01');
INSERT INTO student VALUES('태', 1, SYSDATE);

// 테이블 생성3

CREATE TABLE Member(
Member_ID NVARCHAR2(20),
Member_PW NVARCHAR2(20),
Member_MNAME NVARCHAR2(20),
Member_BIRTH DATE,
Member_Email NVARCHAR2(20),
Member_Phone NVARCHAR2(20)
);

SELECT * FROM Member;  //출력

INSERT INTO member VALUES ('메롱','약오르지롱','킴',SYSDATE,'@naver.com','010-2555-0022'); //데이터 추가
INSERT INTO member VALUES ('메롱','약오르지롱','킴',SYSDATE,'@naver.com','010-2555-0022'); //데이터 추가

 

//테이블 삭제
DROP TABLE [TABLE_NAME];

 

//테이블 수정
ALTER TABLE [TABLE_NAME]...

 

테이블 수정!!

 

 

 

컬럼 타입 확인!!

 

오라클 자동 start or stop!!
자동 시작, 멈춤