빅데이터 서비스 교육/데이터베이스

데이터베이스 입문

Manly 2022. 5. 1. 11:58
반응형

DBMS를 통한 효율적인 데이터관리

• 데이터를 통합하여 관리하기

• 일관된 방법으로 관리

• 데이터 누락 및 중복 제거

• 여러 사용자, 응용프로그램이 공동으로 실시간 사용가능

 

 관계형 데이터베이스란?

 관계형 데이터 모델

 RDBMS(Relational Database Management System)

 Oracle, MS-SQL, MySQL, MariaDB, PostgreSQL, DB2,....

 

 SQL이란?

 Structured Query Language

 DQL(Data Query Language)

 DML(Data Manipulation Language)

 DDL(Data Definition Language)

 TCL(Transaction Control Language)

 DCL(Data Control Language)

 

 

 

 

 데이터베이스 관리도구 종류

1. CLI(Command Line Interface)도구

   SQLPLUS : Oracle DataBase 설치시 함께 설치

2. GUI(Graphic User Interface)도구

   Sql Developer Orange, Golden Tad, Mysql workbench HeidiSQL DBeaver

 

실습을 위한 DB관리도구 sqlplus 사용

1. SQLPlus 프로그램 실행

   - 윈도우 검색창에서 sqlplus 실행 -. command 창에서 sqlplus 실행

2. 데이터베이스 접속

   - 사용자 입력 : / as sysdba 3. 실습계정(hr) 변경 -. alter user hr identified by hr account unlock;

4. sqlplus 종료

   - Exit, quit

5. sqlplus 재접속

   - sqlplus hr/hr

 

cmd
sqlplus / as sysdba(설치 후 첫 실행시에만)
sqlplus는 데이터베이스를 관리하기 위한 툴이다 (CLI환경에서 돌아가는 툴)

우리가 사용 할 계정을 열고 사용 할 소스를 만들기 위해
@create_scott.sql 파일을 cmd에 드래그 & 드랍

quit으로 데이터베이스 프롬트 SQL> 에서 윈도우 프롬프트로 나올 수 있다.

sqlplus hr/hr   데이터베이스에서 hr계정  /hr은 암호
계정별로 권한의 범위가 틀리다

Select table_name from user_tables;    -> 쿼리문의 마지막엔 ;이 있어야 한다. (데이터베이스의 언어)
    hr이 사용하는 테이블 이름이 뭐냐고 물어보는것

show user - sqlplus 툴에 대한 명령어     ed - 마지막 실행한 명령어를 에디터로 보여준다 (에디터에서 마지막에 세미콜론;을 넣으면 오류나니까 없어야함)
/ - 마지막 실행한 명령어를 실행   방향키 위아래 - 썼던 명령어 찾을 수 있다              이 5개다 sqlplus 툴에 대한 명령어
column table_name format a20    (a는 문자)

TABLE_NAME
------------------------------------------------------------   너무 길어서 길이 조절 column table_name format a20
REGIONS
LOCATIONS
DEPARTMENTS
JOBS
EMPLOYEES
JOB_HISTORY
JOB_GRADES
COUNTRIES

hr계정에서의 테이블
8개의 테이블이 나오는데 앞으로 공부해야 할 테이블들이다

quit으로 나가고
sqlplus scott/tiger    scott 계정에 접속

Select table_name from user_tables;       -> 쿼리문(데이터베이스언어)의 마지막엔 ;이 있어야 한다.   sqlplus 명령어 뒤에는 ;는 붙일필요 없다.

 



TABLE_NAME
------------------------------------------------------------
DEPT
EMP
BONUS
SALGRADE

scott 계정에서의 테이블


desc employees     ->   desc는 테이블 구조를 보는 명령어   (데이터베이스언어)

 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 EMPLOYEE_ID                               NOT NULL NUMBER(6)
 FIRST_NAME                                         VARCHAR2(20) 문자로 20
 LAST_NAME                                 NOT NULL VARCHAR2(25) 문자로 25
 EMAIL                                     NOT NULL VARCHAR2(25)
 PHONE_NUMBER                                       VARCHAR2(20)
 HIRE_DATE                                 NOT NULL DATE
 JOB_ID                                    NOT NULL VARCHAR2(10)
 SALARY                                             NUMBER(8,2)
 COMMISSION_PCT                                     NUMBER(2,2)
 MANAGER_ID                                         NUMBER(6)
 DEPARTMENT_ID                                      NUMBER(4)


select first_name, last_name
       from employees;
   
   FIRST_NAME
----------------------------------------
LAST_NAME
--------------------------------------------------
Karen
Colmenares

Curtis
Davies

Lex
De Haan


FIRST_NAME
----------------------------------------
LAST_NAME
--------------------------------------------------
Julia
Dellinger

Jennifer
Dilly

Louise
Doran                   (나머지 생략) 그냥 너무 긴 한줄에서 짧게 나타내는것
 
 한줄에 표기되는 길이가 너무 길게나와서
SQL> column first_name format a18
SQL> column last_name format a18
SQL> /                              다음 명령어로 짧게 정리가능.

Winston            Taylor
Sigal              Tobias
Peter              Tucker
Oliver             Tuvault

FIRST_NAME         LAST_NAME
------------------ ------------------
Jose Manuel        Urman
Peter              Vargas
Clara              Vishney
Shanta             Vollman
Alana              Walsh
Matthew            Weiss
Jennifer           Whalen
Eleni              Zlotkey         (나머지 생략)  긴 한줄에서 column last_name format a18을 이용해 이렇게 짧게 나타내는것

show linesize로 한줄에 얼마나 나오는지 불수있다            Set linesize 설정가능
show pagesize로 페이지당 데이터가 얼마나 나오는지 볼수있다     Set pagesize 설정가능



cl scr으로 화면 출력된 글자 다 없어짐 (sqlplus 명령어)

null 값이 정해지지 않음   not null 값이 꼭 들어가야 하는 테이블


countries 테이블 전체에 대해 조회하는 셀렉션
select * from countries;

departments / employees 두 테이블이 주 테이블


보고싶은 데이터만 골라서 조회하는  프로젝션
Select employee_id, last_name, job_id   (직원아이디,라스트네임,잡아이디만 조회)
from employees;


오라클 설치 및 접속
오라클 환경설정 - 스크립트파일로
sqlplus hr/hr

--hr 계정에서 사용할수 있는 테이블 조회
Select table_name from user_tables;

--테이블의 속성 조회
desc employees

--컬럼 길이 조절
select first_name, last_name
       from employees;
column department_name format a18
column last_name format a18

--sqlplus 환경설정
column department_name format a18
column last_name format a18
show linesize   set linesize
show pagesize   set pagesize
show user

conn scott/tiger (다른계정으로 바로 접속할때 quit나 exit 없이)

cl scr = clear screen
---------
표준 sql : sql-1999(이것을 기준으로 조금씩 변형)
---------

--직원의 조회 셀렉션
select * from employees;

--프로젝션
select employee_id, last_name,job_id 
from employees;

--테이블 join

각 대표적 명령어
-- DQL : select                   데이터를 조회 할때 사용하는 언어
-- DML : insert, update, delete   데이터 수정언어
-- DDL : create, drop, alter      데이터 정의하는 언어 (ex 엑셀에서의 머릿말
-- TCL(DCL에포함) : commit, rollback         데이터 수정 작업한 내역을 기억했다가   commit(저장)   / 롤백(취소)
-- DCL : grant                    데이터 수정 권한에 관한 언어

-- 오라클의 개체 종류
 - 테이블, 인덱스, 뷰, 시퀀스, 시노님, 프로시저 (데이터베이스 언어로 만들어진 프로그램)
    , 함수, 패키지, 트리거


행 / 열 (column 개체  속성)

CLI도구: 
ex) cmd 명령어프롬트 / SQLPLUS

select * from 테이블명(=data set 데이터집합)

반응형