SQL(Structure Quary Language), SQLPLUS 사용하기




SQL(Structure Quary Language)

- 데이터베이스에 다룰 때 최적화된 언어

- java로 쓰면 10만개의 데이터 조회를 클래스, 

  변수선언, 반복문 10만번, 조건문 등등 을 써야하지만,

  SQL언어이면 1줄이면 데이터조회가 가능하다.

Quary Language : 질문하듯이 만든 언어이다.


SQL은 어떤 언어인가요?


1. 비절차적인 언어


2. 구성요소

SQL은 여러가지 언어를 조합해서 만든 것이다.

아래 네가지 언어를 합쳐서 SQL이라고 한다.


1) DDL (Data Definition Languge)

- 데이터 정의

- 데이터가 저장 될 수 있는 환경을 만들어 준다.

   ① CREATE 만들기

   ② DROP 삭제

   ③ ALTER 수정

- 환경을 만들고 삭제하고 수정한다.

- 개발자가 알고는 있어야 한다.


2) DML(Data Manipulation Languge)

- 데이터를 제어하는 언어

   ① INSERT 추가

   ② DELETE 삭제

   ③ UPDATE 수정

- 실제 데이터를 추가하고 삭제하고 수정한다.

- 개발자가 많이 사용한다.

        


3) DCL(Data Control)

- 보안, 백업, 계정관리...

- 전문적인 관리자들이 알아서 사용.

- 개발자는 거의 사용 할 일이 없다.

- GRANT정도만 알아두면 편하다.

- GRANT, REVOKE, .....


4) QL

- 검색 조회

- DB의 90%이상의 기능

- 매우 주요기능 개발자가 반드시 알아야한다.

- SELECT : 다른 것 합친 것 보다 기능이 많다.



sqlplus 사용법


1. 접속

[방법1]

sqlplus

사용자 ID : 

비밀번호 :


예)

User@DESKTOP-G1R697G C:\Users\User

> SQLPLUS


SQL*Plus: Release 11.2.0.1.0 Production on 일 11월 26 11:04:01 2017


Copyright (c) 1982, 2010, Oracle.  All rights reserved.


사용자명 입력: SCOTT

비밀번호 입력:



결과값

다음에 접속됨:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Poduction

With the Partitioning, OLAP, Data Mining and Real Application Testig options


[방법2] 

sqlplus 사용자ID/비밀번호 (비밀번호가 보이기 때문에 반드시 뒤를 조심한다.)




[방법3] 

sqlplus 사용자ID

    비밀번호




4)  sqlplus 사용자ID/비밀번호@host명

- 다른 컴퓨터에 접속할 때 방법

- 별도의 설정이 필요하다.



5) connect 사용자ID/비밀번호

    conn ... (connect 의 약자)


 



2) 계정관리


show user 


를 치면 유저의 이름이 나온다.


SELECT username, account_status FROM DBA_USERS;


해석 : DBA_USERS 에서 username, account_status 를 가져와라


데이터베이스에는 데이터를 포함한 객체들로 구성되어 있다.



ALTER 

데이터가 아닌 그외의 나머지 수정


▶ 아래는 초기설정에서 사용자계정을 잠금으로 설정한 경우에 사용


ALTER user scott ACCOUNT UNLOCK; 

데이터가 아닌 scott이라는 사용자 계정을  잠금해제로 수정


ALTER user hr ACCOUNT UNLOCK; 

데이터가 아닌 hr이라는 사용자 계정을  잠금해제로 수정


ALTER user scott IDENTIFIED BY 1111;

데이터가 아닌 scott이라는 사용자 계정의 비밀번호를 1111로


ALTER user hr IDENTIFIED BY 1111; 

데이터가 아닌 hr이라는 사용자 계정의 비밀번호를 1111로


▶ scott을 연결해보자.


conn scott/1111

이는 샘플로 놓은 데이터이기 때문에 마음껏 사용해도 괜찮다.





★ Field( = duf, coumn, 속성)

칸 하나 하나

데이터의 최소단위


★레코드( = 튜블)

여기서 이름, 나이 성별, 주소 한 행을 레코드라고 한다.

레코드는 관련있는 필드끼리의 묶음이다.

- 필드 하나는 가치가 없지만 레코드부터 활용가치가 있다.

- 필드와 레코드까지는  메모리에 저장

- 테이블은 램에 저장



필드 < 레코드 < 테이블(파일) < 테이블 < 데이터베이스 < 데이터뱅크

여기서 실제 많이 사용하는 것은 데이터베이스 까지이다.


계정을 만들어 보자.


CREATE USER test1 IDENTIFIED BY 1111;


GRANT CONNECT TO test1;


GRANT 권한을 주는 객체

CONNECT 연결한다.

TO ~에게

test1 계정에 접근한다.


테이블을 생성하기 위한 명령어를 친다.


CREATE TABLE tbltest(id number, name varchar2(10));




권한이 불충분하다고 한다면, 관리자에게 간다.



GRANT RESOURCE TO test1 ;


다시 돌아가서 테이블을 생성한다.


CREATE TABLE tbltest(id number, name varchar2(10));




삭제 명령어인 DROP 을 사용해보자.

DROP USER test1;

를 누르면 삭제가 되지 않는다.

오라클의 안전장치 때문이다. 

테이블을 먼저 삭제하고 계정을 삭제해야한다.

계정 강제삭제는 CASCADE 를 누르면 된다.


DROP USER test1 CASCADE;

데이터베이스 개요, 오라클 소개 

데이터베이스 : 데이터를 모아 놓은 것

데이터를 활용하려면?

삽입, 삭제, 수정, 조회

이 네가지 기능이 반드시 필요하다.

이를 Database(DB)의 기본연산이라고 한다.

DBMS (Database Management System)
데이터베이스 관리 시스템

Oracle
Mysql
MongoDB
MS-SQL Server
Infomix
DB2
Sqlite
...


용도에 따라 구분한 Database

로컬용
- 하나의 컴퓨터 안에서만 내부에서 사용하는 데이터 베이스
- 예전에 많이 나옴
- 대표적인 로컬용 DB : Sqlite (안드로이드), Access (MS오피스)

서버용
- 네트워크 등 원격으로 외부에서 접속할 수 있도록 기능을 가짐  
- 최근에 주류. 대부분 데이터베이스는 서버용이다.
- 다른 컴퓨터가 접속하면 DB열람 가능
- 클라이언트, 서버 프로그램이 나뉘어져 있음

Oracle
- Full Version : 모든 기능 사용 가능, 용량 높음
- Express Version : 간단한 개발용, 간이용, 용량낮음

중소기업 이상의 데이터 베이스
오라클은 데이터 베이스 개발이 아니라 AS로 돈을 번다.

중소기업 등에서는 
Mysql
Infomix
을 많이 쓴다.

오라클을 국내에서는 아주 오래전에 나온 8i/9i 버전이 가장 많이 쓰이고 있다.


8i/9i(아주 오랫동안 사용) → 10g (단종, 보안취약) 
 11g(오랫동안 안정적으로 사용) → 12c(가장 최근에 나옴)

i, g, c 는 그 당시에 가장 트렌드 된 기술을 뒷글자로 붙힘.

i : iinternet  ▶인터넷
g : grid compotent  컴퓨터를 격자처럼 묶어서 사용
c : cloud ▶ 클라우드 서비스에서 알아서 제공


참고로 클라우드 서비스는 관리 서비스가 포함되어 db관리자가 사라질 수 있다.

오라클
데이터베이스 
실제 데이터를 관리할 수 있는 덩어리

소프트웨어
데이터베이스를 관리하기 위한 덩어리

데이터 베이스는 사용자에 따라 여러개 생성되지만 소프트웨어는 1번만 설치하면 된다.


오라클 oracle 설치방법 / docs 문서보기


<오라클 제품 종류>

Administrator (관리기능)
- 관리기능은 어마어마하다.
Developer(개발기능)
- 개발기능만 따지면 얼마되지 않는다.


데이터베이스는 설계가 매우 중요하다 
데이터베이스 설계에 관한 책을 사야 될 것이다.


<오라클에서 무료제공하는 클라이언트db 유틸리티>

sqlplus
오라클11g 에서 서버 프로그램은 오라클 클라이언트 유틸리티는 sqlplus 이다.
클라이언트 유틸리티 sqlplus는 도스에서 명령어를 쓸 수 있는데
오라클을 깔면 함께 깔린다.

sqldeveloper
윈도우에서 명령어 없이 사용하려면 sqldeveloper를 따로 깔아서 쓰면 된다.

<다른 회사 프로그램으로 오라클지원하는 유료제공 클라이언트db 유틸리티>
Toad
가장 비싸고 오래되었다.

그 외 sqlgate 등등이 있다.


<sqlplus를 접속해보자>

cmd 도스 창에서

sqlplus 를 눌러보자

사용자명 입력 : System
비밀번호 입력 : 1111

빠져나와 보자

quit


<Database 저장형태에 따른 구분>

1. 계층형 DB(HDB) -tree
- tree구조의 단점으로 조회하는데 시간이 오래걸린다.





2. 네트워크형 DB(NDB)
- 기본적으로 트리구조인데 그물망처럼 그래프(graph)로 묶는다.
- 어떤 것이든 연결이 되어 있어서 데이터가 이동
- 너무 복잡해서 설계가 어려워서 이론상으로만 생각한다.



3. 관계형 DB(RDB)
- table
- 현재 가장 많이 쓰는 DB 형태


4. 객체지향형 DB(ODB)
- object
- 현존하는 가장 좋은 DB방식
- 관리자들이 어려워서 못 쓴다.

5. 객체지향형 DB(ORDB)
- 관계형DB + 객체지향형 DB
- 오라클에서는 객체지향형 DB도 제공한다.


오라클 설치방법


오라클 홈페이지에 들어가자


https://www.oracle.com/index.html


아래 사진대로 하나씩 따라해보자.



Menu ▶ Database▶ All Database Download








전자메일 주소는 패스합니다. '예' 를 누른다.




DB 연습이므로 비밀번호는 기억하기 쉬운 1111로 한다.

실무에서 이렇게 하면 정말 큰일난다.





비밀번호 관리에 들어가서 관리자인 SYS와 SYSTEM의 계정잠금을 해제한다.




연습용 DB인 SCOTT과 HR의 비밀번호는 1111로 한다.

물론, DB 연습이라서 이렇게 한다.

실제로는 비밀번호 관리에 조심해야한다.





CMD에서 DB를 테스트 해보자.






<오라클 문서를 보려면 어떻게 해야할까?>


https://docs.oracle.com/cd/E11882_01/index.htm





+ Recent posts