[DB][SQL][국비교육] Day 20

Ga02·2023년 1월 25일

국비교육

목록 보기
19/82

🔍 Oracle DataBase, SQL Developer 설치하기

💡사용자 계정이름이 영어인지 꼭 확인하기! 한글이면 오라클 접속이 안됨
win + rnetplwiz 에서 확인
👉🏻 사용자 이름이 한글인 경우 영어로 변경학 재부팅하기

➰ Oracle Database 11g R2 Express Edition 다운

url로 접속하여 다운받기
비밀번호 : 1234

➰ 오라클 SQL Developer with JDK 11 included 다운

➰ 오라클 DB서버 설치 확인하기

  • cmd 창에서 sqlplus /nolog 입력
  • conn sys as sysdba ➡ 비밀번호 입력
  • show user; 입력 👉🏻 USER is "SYS"라고 출력되면 완료

➰ 컴퓨터 부팅할 때 DB서비스가 자동으로 켜지지 않게 설정하기

  • win + rservices.msc 입력
  • Oracle... 시작유형을 수동으로 변경하고 저장
    👉🏻 다음 부팅할 때부터 시작메뉴에서 Start Database 프로그램을 실행해줘야함

➰ scott.sql 파일 적용하기

scott.sql : 테스트용 데이터 준비파일

  • 폴더 위치 : C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin
  • 파일 이름 : scott.sql
  • cmd 창에서 sqlplus /nolog 입력 ➡ 계정접속 없이 aql 프로그램 실행
  • conn system/1234 ➡ system 계정으로 비번 1234 입력해서 접속
  • show user; 입력 👉🏻 USER is "SYS"라고 출력되면 완료
  • @만 타이핑한 상태로 scott.sql파일을 드래그 앤 드랍, 엔터 -> 파일의 경로를 자동으로 입력해줌
  • ALTER USER scott IDENTIFIED BY tiger; ➡ scott 계정의 비밀번호를 tiger로 설정
  • conn scott/tiger; ➡ scott계정으로 로그온
  • show user; 👉🏻 USER is "SCOTT"으로 나오면 성공!

🔍 오라클 기본 명령어

➰ 계정을 이용하여 로그온 하기

conn [계정이름]/[비밀번호];
👀 Example
conn system/1234; / conn scott/tiger; / conn sys as sysdba; ➡ sys라는 관리자 계정으로 로그온

➰ 계정의 비밀번호 바꾸기

💡 관리자 계정으로 실행해야 함

  • 관리자 계정 로그온
    conn system/1234; 또는 conn sys as sysdba;
  • 비번 바꾸는 명령어
    ALTER USER [계정명] IDENTIFIED BY [비번];
    👀 Example
    ALTER USER scott IDENTIFIED BY tiger; / ALTER USER system IDENTIFIED BY 1234;

➰ LOCK 걸린 계정 풀어주기

💡 관리자 계정으로 실행해야 함

  • 비번을 여러번 틀리면 계정에 LOCK이 걸림
    ALTER USER [계정명] ACCOUNT UNLOCK;

👀 Example
ALTER USER scott ACCOUNT UNLOCK; / ALTER USER system ACCOUNT UNLOCK;


🔍 오라클 클라이언트 툴(TOOL)

  • 오라클 데이터베이스 서버에 접속하여 DB에 대한 작업을 수행하는 도구 프로그램
  • DB 클라이언트 프로그램

➰ SQL * PLUS

Oracle DB 서버를 설치할 때 같이 설치되어 제공되는 툴

  • 별도의 설치가 필요없고 기본적으로 사용할 수 있음
  • CLI환경 (Command Line Interface) 👉🏻 마우스 없이 키보드로만
  • 콘솔창에서 'sqlplus' 라고 입력하여 실행할 수 있음
  • 시작 메뉴에서 오라클 설치폴더에 있는 'Run SQL Command Line'으로 실행할 수 있음

➰ SQL * Developer

  • Oracle에서 제공하는 추가적인 클라이언트 툴
  • 별도의 설치 필요
  • GUI(Graphical User Interface) 👉🏻 마우스 사용

🔍 SQL Developer에서 데이터베이서 접속 만들기

파일 메뉴 ➡ 새로만들기 ➡ 왼쪽 메뉴 General ➡ 접속 ➡ 오른쪽 항목에서 데이터베이스 접속 선택 ➡ 확인 ➡ 접속이름(아무거나) ➡ 사용자 이름 scott ➡ 비밀번호 tiger -> 비밀번호 저장 체크 ➡ 테스트 버튼 클릭, "상태 : 성공" 뜨는지 확인 ➡ 접속버튼 누르기


🔍 DBMS, DataBase Management System

데이터베이스 관리 시스템

  • 오라클 Database, MS-SQL, MySQL, MariaDB, SQLite, CUBRID 등등

➰ 데이터베이스, Database, DB

데이터 저장소

  • 데이터를 저장하고 체계적으로 관리하는 방법이 적용되어 있음
  • 여러 종류의 클라이언트들이 데이터를 동시에 공유하면서 사용하기 위해 관련 데이터들을 통합하여 관리하는 시스템
  • 데이터베이스 내부에 테이블(Table) 객체를 만들어서 관련 데이터끼리 같은 테이블에 저장하고 관리

➰ 테이블, Table, TB

DB 내에서 실제 데이터를 저장하고 관리하는 단위

  • 표 형식으로 데이터를 관리
  • 행(row), 열(column)을 기준으로 데이터를 표현하고 저장
    • 행, row : 한 줄, 데이터 묶음, 행의 수를 데이터의 개수로 취급
    • 열, column : 같은 칸, 행들의 데이터 항목(설명)을 나타냄
  • 테이블은 소유자(Owner)를 가지고 있음
    • 소유자(Owner) : DB에 존재하는 객체들을 생성할 때 사용한 사용자 계정
      👀 Example
      scott.dept / scot.dept.dname(행) 👉🏻 scott계정으로 로그온하여 생성한 dept 테이블 객체

👀 Example

  • dept 테이블(부서 정보 테이블)
부서번호부서이름부서 위치
10ACCOUNTINGNEW YORK
20RESEARCHDALLAS
30SALESCHICAGO
40OPERATIONSBOSTON
public class Dept {
	private int deptno; //부서번호
	private String dname; //부서이름
	private Stirng loc; //부서위치
}

Dept d1 = new Dept(10, "ACCOUNTING", "NEW YORK");
...

👉🏻 한 행이 한 객체 / 한 행이 데이터 하나

➰ 우리가 설치하여 사용하는 오라클 DB의 스펙(상황)

  • DBMS버전 : Oracle Database 11g Release 2
  • 제품군 : Express Edition 👉🏻 학습용, 테스트용
    • Express Edition은 데이터베이스가 한 개만 존재 ➡ DB 이름 (SID) : xe
    • Standard Edition은 데이터베이스가 한 개만 존재 ➡ DB 이름 (SID) : orcl
    • Enterprise Edition은 데이터베이스를 여러 개 구성할 수 있음

✔ 실 서버 구축하려면 아마존꺼 사용하는 것이 좋음(유료)


🔍 SQL, Structured Query Language

구조적인 질의 언어

  • DB에 저장된 자료의 검색(조회), 관리 / DB객체의 생성, 수정, 관리, 등을 수행하는 언어
  • 주로 CRUD 작업을 수행하는 명령어들 👉🏻 Create, Read, Update, Delete
  • 스크립트 언어(Scripting Language)
    • DBMS가 곧바로 해석하면서 명령을 수행할 수 있도록 작성됨
    • 작성된 코드를 곧바로 실행 ➡ 자바처럼 메인메소드가 있어야 실행되는 것 x
    • 인터프리트를 수행

➰ SQL의 용도에 따른 분류

  • DML, Data Manipulation Language, 데이터 조작어

    • 테이블 내부의 데이터를 조작(CRUD, 삽입, 조회, 수정, 삭제)하는 SQL 구문
    • 데이터를 처리할 때 사용하는 SQL 명령어들
    • INSERT(삽입)C, SELECT(조회)R, UPDATE(수정)U, DELETE(삭제)D
  • DDL, Data Definition Language, 데이터 정의어

    • 데이터베이스의 구조를 정의, 조작하는 SQL 구문 (ex. 테이블 생성)
    • 데이터베이스 내 객체에 대한 조작에 사용
    • CREATE(생성), ALTER(변경), DROP(삭제) 👉🏻 DDL에는 조회(Read)에 해당하는 SQL구문이 없음
    • DDL을 사용할 때마다 적용된 설정사항(변경사항)이 데이터사전에 기록됨
      ➡ DB 구조에 대한 정보는 데이터 사전을 통해 확인
      ➡ SELECT 구문을 이용하여 데이터사전을 조회
  • DCL, Data control Language, 데이터 제어어

    • DBMS(데이터베이스)에 대한 제한사항을 적용하거나 해제할 때 사용하는 SQL 구문
    • 보안성, 데이터의 무결성, 권한 설정 등을 관리할 수 있음
    • 주로 DB 관리자(DBA)가 데이터베이스를 관리하는 목적으로 주로 사용
  • TCL, Transaction Control Language

    • 트랜잭션 관련 명령어 - COMMIT, ROLLBACK
    • 권한 관련 명령어 - GRANT, REVOKE

➰ 데이터 사전, Data Dictionary, 자료사전

데이터베이스의 모든 정보(DBMS 객체들의 구조에 대한 설정값 정보)를 기록해둔 특수한 테이블들 👉🏻 관리자계정인 SYS 계정이 소유자(Owner)

  • 데이터베이스에 설정된 모든 정보들, DB객체에 대한 기록들을 확인할 수 있음
    • DB Schema, 스키마 : DB 객체들의 구조
  • 설정항목별로 각각 다른 자료 사전들(테이블들)이 여러개 준비되어있음
  • tabs : 테이블들의 정보를 저장하고 있음

--한 줄 주석 단축키 : ctrl + /
--한 줄 복사 단축키 : ctrl + shift + d
--한 줄 삭제 단축키 : alt + shift + d
--선택영역 구문 대소문자 변경 단축키 : alt + '

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

--자료사전 : DBMS 객체들의 구조(DB Schema, 스키마)에 대한 설정값 정보를 저장하고 있는 테이블들

--  tabs : 테이블들의 정보를 저장
SELECT * FROM tabs;

--  user_tabs_columns : 사용자 테이블의 컬럼 정보를 저장
SELECT * FROM user_tab_columns
--WHERE table_name = 'DEPT';
--WHERE table_name = 'EMP';
WHERE table_name = 'BONUS';

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

--DESC 키워드, describe : 테이블의 기본정보 출력
DESC emp;
DESC dept;
DESC bonus;
profile
IT꿈나무 댓츠미

0개의 댓글