ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DB2 - Oracle (1)Entry, CRUD (완)
    생활코딩 DB 2021. 9. 3. 03:11

    https://opentutorials.org/course/3885

     

    Oracle - 생활코딩

    수업소개 무료이면서, 오픈소스이고, 3대 데이터베이스 중에 하나인 Oracle의 입문 수업입니다.  수업대상 정보기술의 심장인 데이터베이스가 어떻게 동작하는지 궁금하신 분 데이터를 보다 전

    opentutorials.org

    -----------------------------------------------------------------------------------------------------------------------------------

    그래프형 데이터베이스

    문서형

    객체형

    계층형

    Key-Value

    그 많은 데이터베이스 시스템 중에서 압도적으로 많이 사용되는 데이터베이스가 바로

    관계형 데이터베이스

    핵심은 , 인류가 만든 수많은 정보 시각화 도구중에 가장 위대한 성취 두가지

    x, y축으로 이뤄진 좌표평면

    열과 행으로 이뤄진 표

    이 복잡한 세상에서 어떤 정보건 간에 2차원으로 표현할 수만 있다면 우리는 정보를 쉬우면서도 심도있게 따져볼 수 있. 1차원은 너무 단순하고 3차원부터는 너무 복잡해

    관계형 데이터베이스는 표라고하는 위대한 성취를 기계화한 것.

    정보를 일단 표로 표현하기만 하면 정보를 이해하기가 매우 쉬워짐.

    표를 기계화 시키면 기계가 가진 엄청난 능력을 가진 표 로봇을 만들 수 있다.

    핵으로 먼지가 뭉쳐 지금의 거대한 오라클이 됐듯이

    오라클의 기능이 만들어진 순서대로 학습하는 것이 맞다

    -------------------------------------------------------------------------------------------------------

    오라클은 무료제품도 있고 굉장히 비싼 제품도 있다. 그 비싼 제품을 이용해서 업무를 할 때는 굉장히 신중해야겠구나 정도의 인상

    Edition : Express Personal Standard Enterprise

    License : Named User plus(사용하는 컴퓨터가 몇 대냐), Processor(CPU의 성능에따라)

    Express는 라이선스랑 상관없고

    Personal은 개인이 쓰는거라 Named User plus방식만 있는데 그중에서도 1명만

    Standard부터 두 개중에 선택. 일정 사용자 수 이전까지는 Named User plus가 싸겠지

     

    작은 규모의 비즈니스를 하면 Express로도 충분히 가능

     

    설치시 관리자권한, DB와관련된 모든일을 할 때 사용할 비밀번호 111111

    -------------------------------------------------------------------------------------------------------

    나 이거 할 줄 알아 할때 생코가 따져보는 것

    1.설치SETUP

    2.CRUD : 정보기술에서 가장 본질적인 작업 : C생성하고 R읽고 // +업데이트, 딜리트

    뭘 배우든 CRUD할줄 알면 나 이거 할줄 알아 라고 생각한대 텅빈 공간에 원자를 채우는

    3.GROUP : 원자끼리 단단하게 연결을 해서 좀 더 큰 완제품을 만들어내보는 것. 또는 연결시켜서 더 견고하게, 이때도 나 이거 할줄알아 라는 생각을 가짐.

    4.RUN : 만든것들을  실행해보고 사용해보고

    1, 2, 3, 4 될 때마다 알게된것만으로도 많은것들을 해보려고 함.

    -------------------------------------------------------------------------------------------------------

    ---

    https://youtu.be/CRN4fRRS60E

    5.1 사용자와 스키마

    오라클에서 결국 우리가 할 것은 표에다가 정보를 기록하고, 기록된 정보를 읽는 것.

    그럼 표를 만들 수 있어야, 근데 스키마라는 걸 알아야함 + 사용자라는 개념이 있어야.

    스키마 :

    프로젝트가 커지면 표가 천개 만개가 됨.

    그럼 서로 연관된 표를 그루핑하기 위한 체계가 필요 -> 그게 스키마, 디렉토리 같은거구나

    정석적, 개념적인 정의는 스키마에 속한 표들을 정의,설명하는(형태, 정보) 것  ▽속성 다 모은게 스키마였잖아

     

    스키마를 만들고 사용하기 위해서 꼭 같이 생각해야 될 개념이 사용자라는 개념

    사용자 :

    오라클은 비싼건 1억이 넘고, 굉장히 고성능 컴퓨터에서 돌아감.

    ->혼자서 데이터를 쓰려고 오라클을 쓰는 경우는 없다는 말.

    ->즉 여러컴퓨터들이 오라클 데이터베이스가 설치된 컴퓨터에 네트워크로 접속해서 작업하게됨

    ->오라클에는 여러 사용자를 만들 수 있고, 각각의 사용자는 자신이 관리하는 테이블에 접속할 수 있다.

     

    사용자를 생성을 하게되면 그 사용자에 해당되는 스키마가 만들어진다

    사용자와 스키마는 같은게 아니지만 사용자를 만들면 스키마가 생성이 되고, 스키마를 관리하는 것은 사용자이기 때문에 두 가지는 함께 생각할 필요가 있다

     

    -------------------------------------------------------------------------------------------------------

    @5-2.사용자 생성

    cmd켜고

    sqlplus입력하면 실행됨

    사용자를 생성하기 위해서는 관리자 권한으로서 이런일을 해야함.

    만들지 않아도 sys, system 은 생성됨.

     

    sys AS SYSDBA : 아마도 system database administrate? 관리자로서 이 사용자를 사용하겠다

    ->이제부터 관리자로서 일을할 수 있음.

     

    사용자를 생성하는 방법이 내 머릿속에 없다 => 검색해야함.

    oracle sql reference create user 이렇게 검색해보기 -> create user라는 오라클의 공식 매뉴얼이 나옴

    강사를 하려면 매뉴얼을 볼 줄 알아야 함. 구글 번역을 잘 활용

    네모는 키워드, 그대로 써야 한다.

    타원은 내가 바꿔야할 내용

    BY or EXTERNALLY or GLOBALLY 선택

     

    비밀번호를 이용해서 사용자를 생성할거기 때문에 BY를 이용

    그 다음 표는 (사이트에 있음) 기찻길처럼 따라가다보면 어떤 문법들이 있는가를 알 수 있음.

     

    한번 해보면 보통 키워드는 대문자를 씀

     

    CREATE USER egoing IDENTIFIED BY 111111;

     

    에러가 나면 그대로 카피해서 검색을 해보면 됨, 어떤 고마운분이 왜 이런 문제가 생기는지 적어주심

    c##이라는걸 id앞에 붙이면 잘되고 CDB, PDB개념 때문에(어려운 개념이라 넘어감)

    ALTER SESSION SET“_ORACLE_SCRIPT”=TRUE;

    를 해주고(세션이 변경되었습니다).

    아까 했던 명령어를 다시 실행 - egoing이라는 유저와 egoing이라는 스키마도 생성된 것.

    이때 egoing으로 로그인을 하면 안됨. 콘솔에 다루기 위해선 권한이 있어야 하는데 지금 만든건 권한이 하나도 X

     

    -------------------------------------------------------------------------------------------------------

    @5-2.사용자 권한 부여

    sys AS SYSDBA 한 뒤

    GRANT : 부여한다 / 접속할 수 있는 권한, 표를 만들 수 있는 권한. / DBA : 모든일을 할 수 있는 권한.

    GRANT DBA TO egoing; - 슈퍼관리자가 돼버림. 실제선 이용자는 최소한으로 주는게 바람직. 교육용으로 이거줌.

     

    -------------------------------------------------------------------------------------------------------

    @6-1.테이블 생성

    사용자를 만들었고 사용자에 해당하는 스키마를 만듦.

    드디어 표를 만들어 넣을 수 있다.

    create table sql references oracle 검색(공식문서)

    SYNTAX그림, GLOBAL처럼 저렇게 위로 돼있는건 쓰거나 말거나

    CREATE ( ) ( ) TABLE (스키마 지정 가능, 없으면 이름과 같은 스키마) 테이블이름 [여기엔 여러 가지가 있는데 우린 column_definition을 쓸 것] - 뭐가이렇게 많아! 블로그 같은거 검색해서 일반적으로 많이 사용되는걸 찾아보자 -> CREATE TABLE topic (  ); 이게 빈 테이블을 만드는 명령문, 다음강에서 자세히

     

    표를 만들기 전에 엑셀같은걸 통해 미리 만들어보는게 좋음.

     > 표의 이름

     > 표는 고유 식별자로 id값을 가질것. / title / description / created(날짜) => 얘네를 , 영어로는 column이라고 함.

     > 그리고 그것에 해당하는, column해당하는 구체적인 값들이 한개씩 쌓일텐데 한건한건을 , 영어로는 row 라고함.

     

    GPT

    Oracle의 CREATE GLOBAL TEMPORARY TABLE에서 GlobalTemporary는 다음과 같은 의미를 가집니다:

    1. Global: 테이블의 정의가 글로벌하게 유지된다는 뜻으로, 모든 사용자에게 동일한 테이블 구조가 보장됩니다. 하지만, 데이터는 사용자 세션마다 분리되어 관리됩니다.
    2. Temporary: 임시 데이터만 저장되는 테이블입니다. 데이터는 사용자 세션이나 트랜잭션 종료 시 자동으로 삭제됩니다.

    즉, 테이블의 정의는 영구적이지만, 데이터는 일시적이라는 특징을 가지며, 주로 세션별 임시 작업을 위해 사용됩니다.

     

    -------------------------------------------------------------------------------------------------------

    @6-2.테이블 생성

    topic이라고 하는 표를 만들라고 지시.

    CREATE TABLE topic(

    id NUMBER NOT NULL,

    title VARCHAR2(50) NOT NULL,

    description VARCHAR2(4000),

    created DATE NOT NULL

    ); -> 괄호안에 여러 가지가 들어감.

     

    id NUMBER :

    id는 첫 번째 컬럼명이고,

    NUMBER행의 값으로 들어올 수 있는 형식,

    데이터 타입 정해주는 이유는 아무거나 막넣으면 넣을땐 편하지만 꺼내올 때 이게 진짜 숫자인지 아닌지 조건문과 같은 형식으로 체크해야 되므로 이게 편하다

     - 어떤 그릇에 아무거나 들어갈 수 있다면 이 그릇에 뭐가 들어가 있는지 먹을때마다 확인해야함.

     - 어떤 그릇은 우유여야한다 하고 봉인해 놓는다면 마실 때 의심없이 마실 수 있다.)

    ▽구조상 자동으로 될 수 없나봐, 이게 낫나봐

     

    그 다음엔 저 id라는 값이 반드시 있어야하는 값이냐, 아니면 비워질 수 있는 값이냐를 써야함 NULL은 없다는 뜻

    id NUMBER NOT NULL :

    DB진짜 중요한 기능 -> 값이 없는 상태로 입력하려면 거절해버림. -> 제약사항을 강제할 수 있는 굉장히 강력한 기능

     

    , 로 하나의 컬럼이 끝났다는걸 알려줌

     

    문자인데 제목의 길이가 가변적이면 VARCHAR2(50) - 5050이 넘어가면 짤림.

    더 긴 글자가 필요하면 데이터타입을 검색해서 찾아보래

     

    없을수도 있다고 설정해서 NULL이라고 해도 되고 안쓸수도 있고

     

    날짜는 텍스트로 저장을 할 수 있기 때문에 VARCHAR2로 저장할 수 있겠지만 오라클에선 날짜와 같은 시간을 위한 데이터타입이 준비돼 있음. DATE

     

    외울 필요가 전혀 없다. 표만드는건 자주있는 일이 아니기 때문에 검색하거나 어디다 적어둔걸 계속 보면 됨 - 내가 뭐가 필요한지만 알면 문제는 해결한 것과 다름이 없다.

     

    성공할때마다 박수치기 안그러면 뇌가 공부를 싫어함.

     

    어떤 표가 현재 나의 스키마에 존재하는가 확인하는 방법

    oracle table list 정도로 검색하니 좋은 블로그가 있네요

    SELECT table_name FROM all_tables WHERE OWNER = ‘EGOING’;

    EGOING이라는 유저 또는 스키마에 속해있는 테이블이 나옴.

     

    -------------------------------------------------------------------------------------------------------

    @7.행 추가

    이제 표안에 데이터를 CRUD 하는 것

    C : INSERT INTO topic -- 세미콜론이 나오기전까진 실행이 유보, 줄바꿈으로 가독성을 높일 수 있음

    INSERT INTO topic

    (id,title,description,created) -- 여기에 값을 넣을거야

    VALUES

    (1,‘ORACLE’,‘ORACLE is…’, SYSDATE); -- DATE라고 하는 타입으로 정했기 때문에 현재시간을 적는 SYSDATE

     

    여기서 끝내면 안됨. 나중에 트렌젝션에서 배우겠지만 행을 추가하거나 수정작업을 했다면 commit; 이거하기전까진 반영 안됨. 화면에서만 반영된 것처럼 보임.

     

    -------------------------------------------------------------------------------------------------------

    @8.SQL이란?

    앞에것처럼 하는건 엑셀보다 훨씬 어려움.

    잘하는건 인생을 갈아넣어야함.

    그럼에도 불구하고 이렇게 어려운 DB를 사용하는 이유는 쉽기 때문이 아니라 가치있기 때문

    엑셀과 같은 스프레드시트들은 데이터를 추가하는, 행을 추가하는게 한계가 있다. 일단 행이 65000개가 넘어가면 파일 분할해야 할 수도 있다.

    DB는 저장장치에 한계만 없다면 100억건 넣는것도 가능.

    또 그렇게 엄청나게 많은 데이터에서 원하는 데이터를 꺼내오는데 0.1가 걸림 ( 설계를 잘만한다면 ) - 엑셀과 같은 시스템은 꿈도 꿀 수 없는 엄청난 성능.

     

    명령어를 통해서 DB를 제어할 수 있다 - 단점처럼 느껴지지만 장점. - 명령어를 컴퓨터 프로그램을 통해 자동으로 만들어줘서 자동으로 만들어진 명령어를 DB시스템에 보내주기만 하면 DB시스템이 그 명령어를 받아서 처리를 할 수가 있음. - 자동화가 가능, 엑셀은 사용자가 직접 하나하나 입력해야함. 자동화하는게 어려움.

     

    구글 페이스북 네이버 자동차 전부 내부적으로 DB시스템이 동작중. 정보기술을 다루는데 있어 DB시스템을 이해하는 것은 언젠가는 넘어야할 산이다. 어차피.

     

    명령어를 SQL : 구조화된 정보를 다루는 언어다. (절대다수인)관계형 DBSQL을 사용한다. 아주아주 가성비가 높은 공부.

    Structured 구조화된

    Query 정보를 처리하도록 요청하는

    Language 컴퓨터 언어

    -------------------------------------------------------------------------------------------------------

    @9-1 행 읽기. Select

    R : SQL의 기능중에 가장 어렵, 추가 수정 삭제는 어려울게 없음.

    데이터를 가져오는 작업은 관계형 DB가 굉장히 많은 기능을 갖고 있기 때문에 강력하면서도 복잡함

     

    어떤 데이터를 가져올것인가 ‘선택‘하는 것이 핵심.

    가장 쉬운건 모든 컬럼과 모든 행을 가져오는 것.

    * : 모든

    SELECT * : 모든 컬럼 컬럼을 택하면 모든 데이터()을 다 보여주네

    FROM topic : topic에서.

    -------------------------------------------------------------------------------------------------------

    @9-2 행 읽기 - 행과 컬럼 제한하기

    보고싶은 컬럼이 전체가 아닌 경우가 많다. 컬럼이 100200개 되면 엉망진창, 의미없는 정보가 됨.

     

    컬럼제한 :

    SELECT id, title, created : 이 컬럼들

    FROM topic : topic에서.

    행 제한 :

    SELECT * FROM topic - 이게 전부였지 모든 컬럼, 토픽에서,

    WHERE id = 1; - where이 행에 대한 얘기 // id > 1; 이면 1보다 큰게 다 나옴.

    그럼 SELECT는 컬럼, FROM은 테이블, WHERE은 행?

     

    그럼 컬럼제한 + 행제한 동시에 :

    SELECT id, title, created FROM topic WHERE id > 1;

    -------------------------------------------------------------------------------------------------------

    @9-3.행 읽기 - 정렬과 페이징

    출력된 결과의 정렬상태를 바꾸고

    출력되는 행의 개수를 바꾸고

     

    SELECT * FROM topic ORDER by id desc; - id기준 내림차순 // asc는 오름차순(default)

     

    : 한 장에 다 담을 수 없으니 페이지를 만든다

    컴퓨터도 마찬가지, 물리적 한계 안에 존재하는 문서기 때문에 데이터를 조각조각내서 가져와야함

     = 페이지기법, OFFSET, FETCH로 페이지기능을 구현할 수 있다.

     

    SELECT * FROM topic OFFSET 1 ROWS;

     : 컴퓨터는 0부터 카운팅하는데, 첫 번째 행이 0. 두 번째 행부터의 애들을 가져온다 라는 말.

    ->OFFSET : 어디부터 가져올 것이냐

     

     ▽말그대로 데이터 다 가져오면 낭비니까 조각내서 가져오는거구나

     

    SELECT * FROM topic OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY;

    ->0부터라는건 전부 가져오겠다는것, 0번째 이후에 하나만 가져오겠다. 어떤거 이후 전부 중 하나만 ! 이런 느낌

    ∴ OFFSET + FETCH : ~부터 몇 개를 가져올거냐, ONLY는 설명안함 OFFSET 중에 이것만 이라는 뜻인듯

    > FETCH : 어디부터 가져올건 알겠는데 거기부터 몇개를 가져올것이냐

     

    OFFSET : 상쇄하다 / FETCH : 가져오다

     

    > FETCH는 하나의 페이지가 몇 개의 행을 가질까라는 뜻인거지

    > OFFSET도 잘 조종하면(수업에선 설명못한대) 몇 번째 페이지인가를 의미하게 만들 수 있대

    > 페이징이라는 개념기술이 필요하신분들은 검색하래 --▽그렇겠네 요청할 때 그 번호를 넣게하면

    (▽페이지가 담는 단위 인가?SELECT * FROM topic에선(전부일 때) 한 행을 한페이지에 담았댔어.)

     

    -------------------------------------------------------------------------------------------------------

    @10. 행 수정

    UPDATE topic(테이블) set title = ‘MSSQL’, --여기서 ,를 찍어야한대(당연하지 생각해보면 하나만일수도 둘일수도)

    description = ‘MSSQL is…’

    이러고 ;를 하면 큰일남. 모든 행titledescription값을 다 바꾸는 것.

    ->UPDATE나 DELETE를 하고 있을때 WHERE이 없다면 뭔가 심각한 실수를 하고 있는것

    WHERE id = 3;

    ▽select는 컬럼부터 했는데 업데이트는 테이블부터 가네?

     

    ∴ UPDATE topic set title = ‘MSSQL’, description = ‘MSSQL is…’ WHERE id = 3;

    UPDATE, set, WHERE 이런건 , 안붙임. -> 몇 개 바꿀줄 모르는건 당연히 , 로 구분. 오 아주 딱 떨어져

    commit; 으로 마무리.

     

    -------------------------------------------------------------------------------------------------------

    @11. 행 삭제

    수정과 삭제는 파괴적인 결과를 가져올 수 있으니 정신 바짝 차려야 한다. 어지롭고 졸린데 수정과 삭제작업을 해야한다. 그러면 하면 안됨. 내가 지금 위험한걸 하고있다는걸 자꾸 자기에게 각인 시키면서 정리도좀 하고 샤워도좀 하고 작업을 처리해야 여러분의 인생이 비극적으로 바뀌지 않습니다.

     

    DELETE FROM topic; -> topic테이블의 모든 행이 삭제된다.(백업을 안했다면 정말..)

    DELETE FROM topic WHERE id = 3; -> 컬럼의 id값이 3인 행만을 삭제하겠다.

     

    테이블을 지울때는 DROP TABLE topic; (이 명령어는 commit을 할 필요는 없대)

    -------------------------------------------------------------------------------------------------------

    @12. PRIMARY KEY

    CRUD가 거의 전부지만 많이 사용되는 기능들은 알려드리는게 좋겠죠

     

    식별자 = 다른사람과 구분하는 = 중복되면 안된다.

    중복이 생기면 그 행을 찾아내는데 굉장히 까다로워진다

    식별자의 자격은 중복되면 안된다는 것.

     

    이걸 내가 직접 입력을 하려고 하면 아이디를 입력할때마다 기존거랑 중복되는지 열때마다 따져봐야한다. 중복되지 않는 값을 뭘넣어야되는지 알기가 정말 힘들다, 1억건이고, 뒤죽박죽이고..(불가능)

    > 근데? 기능으로 이미 있다면 실행을 안시켜주고 없을때만 실행을 하게 할 수 있다 그게 바로

    > 기본키 = 주키 = PRIMARY KEY

     

    프라이머리키를 지정할 때는 1.생성할 때 지정할 수도 있고, 2.생성한 후에 alter라는 명령어를 통해 나중에 추가할 수도 있다. 가급적 처음부터 추가하는게 좋다. 나중에 데이터가 많아지면 프라이머리키를 추가하는게 부담스러운 작업이 될 수도 있다.

     

    CONSTRAINT : 제약조건(PRIMARY KEY는 존재하지 않는 값만 넣을 수 있다는 제약조건을 거는 것이니까)

     

    테이블 만들어보자

    CREATE TABLE topic (

    컬럼1~~~~

    컬럼2~~~~

    CONSTRAINT PK_TOPIC(우리가 만드려고 하는 프라이머리키의 이름) PRIMARY KEY(id)

    CONSTRAINT PK_TOPIC PRIMARY KEY(id) : id에다 제약조건을 건것임. (id,title)하면 두 개가 묶어서 됨(복합키)

    ▽프라이머리키는 이름이 필요한가봐

     

    PRIMARY KEY가 지정된 그 값을 가진 행은 이 표 안에서 유일무이하다.(▽컬럼들이 다 다르다)

     

    컴퓨터 공학적으로 PRIMARY KEY를 지정한 행을 찾는건 아닌것보다 속도가 비교할 수 없을 만큼 빠르다. ▽오

     

    필수는 아니지만 표를 만들때 지정하지 않으면 손해다 경제성이 없다. 라고 생각하세요.

     

    -------------------------------------------------------------------------------------------------------

    @13. SEQUENCE

    PRIMARY KEY는 중복되는 값이 들어갈 때 거절을 함.

    중복 안되려면 지금까지 한것중 가장 큰 수에 +1 하면 되지만 귀찮음

    게다가 내가 작업하는 동안에 누가 냉큼 값을 넣어버리면..?

    아 오라클이 이거 해줬으면 좋겠는데? 많이 사용하는 기능이니까~

     

    CREATE SEQUENCE SEQ_TOPIC(시퀀스 이름 내가 지정하는);

    이렇게 하면 시퀀스가 만들어진 것임. 자동으로 1씩 증가시키는 프라이머리키 값을 만들 수가 있음.

     

    그런 다음 이제 컬럼 속에 넣을 때 SEQ_TOPIC.NEXTVAL 이라고 하면 됨.

    SEQ_TOPIC0이라고 하는 숫자가 있는 상태. NEXTVAL이라는건 자기가 갖고 있던 숫자를, 0이라는걸 1증가시키고 그 값을 우리한테 줌. = 1이 된다고 생각해주세요.

     

    그럼 이제 INSERT INTO topic 할때 컬럼~~ 하고 VALUES ~~할 때 계속 추가할때마다 같은 자리에 SEQ_TOPIC.NEXTVAL넣으면 됨.

     

    ▽코드에 저것만 넣으면 계속 요청들어올때 똑같은 저 값이 들어가니까 계속 +1이 되는거지 

     

    현재 시퀀스의 값이 뭔지 알고 싶을 땐

    SELECT SEQ_TOPIC.CURRVAL FROM topic;

    -> 이건 토픽테이블에 있는 행의 개수만큼 똑 같은 값들이 출력됨. --무슨 원리지?

    -> 토픽처럼 실제 데이터가 있는 걸 쓰면 결과가 애매해진다.

    이때 쓰라고 DUAL이라고 하는 가상의 가짜 테이블이 있다. 그걸 쓰면 하나만 뱉어줌.

    SELECT SEQ_TOPIC.CURRVAL FROM DUAL;

     

    값을 10씩 추가시킬수도있는 등의 옵션도 있다.

    시퀀스는 PRIMARY KEY랑 패밀리라고 생각하세요 같이있을때 강력해진다.

    ▽primary key인 컬럼에 시퀀스 쓰라 뭐 이런소린가

    commit후 종료

     

    -------------------------------------------------------------------------------------------------------

    @14. 서버와 클라이언트

    오라클이 무지 비싸서 오라클이 설치된 저 컴퓨터에 여럿이 쓰는게 좋겠어.

    인터넷을 통해서 오라클이 설치돼 있는 저 컴퓨터에 오라클을 제어할 수가 있다.

     

    HOST : 인터넷에 연결돼 있는 컴퓨터 한 대 한 대를 부르는말

    데이터베이스의 HOST이름이 뭐냐? = DB가 설치돼있는 컴퓨터의 도메인이나 IP를 물어보는 것.

     

    네트워크를 만드는 사람들이 보니까

    네트워크에 연결돼있는 한 대 한 대를 부르는데 호스트라는 표현만으론 좀 부족하다.

    정보를 요청하는 컴퓨터, 응답하는 컴퓨터가 나뉘니까.

    그래서 나눔.

     

    CLIENT(정보를 요청하는사람, 고객)

    SERVER(정보를 응답하는 사람, 사업자, 서비스를 제공하는 자)

    ->네트워크, 더 나아가서 인터넷을 이해하는 핵심적인 개념이다. 이걸 알면 하면할수록 실력이 좋아짐

    모르면 실력이 0이다.

     

    ORACLE DB Server

    ORACLE DB CLient : 거기에 속하는 구체적인 제품으로 SQLPlus(오라클제품의 기본제공번들)

    오라클 서버랑 sqlplus는 다른거다!

    하나의 서버에 여럿이 다른공간에서 접속할 수 있다.

     

    그렇다면? 자기 취향에 맞는 오라클 client를 구해서 쓰면 됨.

    GUI환경에서 오라클을 제어할 수 있는 프로그램도 굉장히 많다.

    SQL Developer

    TOAD(비싸)

     

    ▽서버의 정보를 요청하는게 SQL Developer군

     

    -------------------------------------------------------------------------------------------------------

    @15. SQL Developer

    설치함

     

    왼쪽의 Connections..(초록+버튼 있는 그곳) 이 도구가 여러 DB서버에 접속을 할 수 있겠죠. 프로젝트가 여러 개면 여러 개의 DB서버가 있을거 아니에요. 그 서버들에 빠르게 접속할 수 있는 북마크 기능같은겁니다.

     

    + 버튼이나 우클릭 후 new connection으로 가면

    Name엔 사용할 서버의 이름, username, password 이거 egoing이랑 111111 입력하면 됨.

    Role은 관리자 모드가 가능

     

    Connection Type(접속 유형) : basic(기본)

    sql developerDB서버가 서로 다른 컴퓨터에 접속(인터넷, 네트워크)돼있을때 사용하는 옵션, 같은 컴퓨터면 local/Bequeath 하면 됨.

    save를 누르면 항목에 뜨고, Test를 누르면 Success인지, connect를 누르면 저장하지 않고 접속

    '생활코딩 DB' 카테고리의 다른 글

    관계형 데이터 모델링 (1)  (0) 2021.11.12
    SQL Join (2) (완)  (0) 2021.11.12
    SQL Join (1) (완)  (0) 2021.11.07
    DB2 - Oracle (2)Join (완)  (0) 2021.09.03
    DB1, 전문화된 소프트웨어 (완)  (0) 2021.09.03
Designed by Tistory.