11일차 - 240110

김리오·2024년 1월 10일

학원공부 TIL

목록 보기
11/13

Java 1차 종료 / Oracle 시작

📌 데이터베이스(Database)

  • 데이터베이스는 구조화된 정보 또는 데이터의 조직화된 모음이다.
    일반적으로 컴퓨터 시스템에 전자적으로 저장된다.
  • 일반적으로 데이터베이스 관리 시스템(DBMS)에 의해 제어된다.

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

  • MYSQL 프레임워크로 오해하고 있었는데 RDBMS였다..
  • 많은 양의 데이터를 편리하게 저장하고 효율적으로 관리하고 검색할 수 있는 환경을 제공해주는 시스템 소프트웨어

📌 데이터 딕셔너리(Data Dictionary : DD)

  • 관계형 데이터베이스에서 객체를 정의하면 그 객체가 가진 메타데이터(metadata; 객체에 대한 정보들, 테이블 객체인 경우 컬럼, 도메인 및 제약 조건에 대한 내용)의 정보가 저장되는 곳이다.
  • 사용자에 의해 추가/삭제/수정되지 못하며 오라클 시스템에 의해서만 가능

📌 SQL(Structured Query Language)

  • 직역하면 구조화된/형식화된 질의 언어
  • 사용자와 RDB를 연결해주는 표준 검색 언어

📌 다양한 SQL 명령어

  • 데이터베이스 접속을 시도하면, 데이터베이스를 사용할 수 있는 사용자인지 검증하기 위해 계정과 암호를 묻게 된다.
SQLPLUS 사용자계정/암호
sqlplus system/암호

sqlplus sys as sysdba/암호

set sqlprompt '_user>' : 현재 연결된 계정을 표시

connect 계정/비밀번호 : 계정전환(sys계정은 예외)

quit/exit : 종료

show user : 현재 연결된 계정 출력

alter user hr account unlock : 계정 활성화. System/Sys 계정만 가능하다

alter user hr identified by 비밀번호 : 비밀번호 변경. 

System/Sys 계정만 가능하다

select * from tab : tab 테이블 목록출력

set linesize 100 : 라인 당 출력될 문자 수 변경 (기본 80)

set pagesize 20 : 한 패이지에 출력되는 행의 수 변경 (기본 14)

DESC[RIBE] 테이블명 : 테이블의 구조를 확인하기 위한 명령어. 컬럼 이름, 데이터 형, 길이, NULL 허용 유무 등을 출력한다.
 -NOT NULL 표시가 되어 있으면, 값이 무조건 입력되어야 한다. (빈칸 안 됨)

📌 SQL 유형

  • DQL(Data Query Language, 질의어)

    • SELECT(데이터 검색시 사용)
  • DML(Data Manipulation Language, 데이터 조작어)

    • INSERT(데이터 입력)
    • UPDATE(데이터 수정)
    • DELETE(데이터 삭제)
  • DDL(Data Definition Language, 데이터 정의어)

    • CREATE(데이터베이스 객체 생성)
    • ALTER(데이터베이스 객체 변경)
    • DROP(데이터베이스 객체 삭제)
    • RENAME(데이터베이스 객체 이름 변경)
    • TRUNCATE(데이터베이스 저장 공간 삭제)
  • TCL(Transaction Control Language, 트랜재션 처리어)

    • COMMIT(트랜잭션의 정상적인 종료처리)
    • ROLLBACK(트랜잭션 취소)
    • SAVEPOINT(트랜잭션내에 임시 저장점 설정)
  • DCL(Data Control Language, 데이터 제어어)

    • GRANT(데이터베이스에 대한 일련의 권한 부여)
    • REVOKE(데이터베이스에 대한 일련의 권한 취소)

📌 오라클의 Datatype

NUMBER(precision, scale)

  • 숫자 데이터를 저장하기 위해서 사용한다.
  • precision은 전체 자리수(소수점 제외한 정수부분 + 소수 이하 자리)를 의미하고,
    scale은 소수점 이하 자리수를 지정한다.
  • scale을 입력하지 않고 precision만 입력하면 소수점 이하는 반올림되어 정수 값만 저장한다.
  • number(9,2) : 전체 9자리, 소수점 이하 세 번째 자리에서 반올림
  • number(9,-2) : 전체 9자리, 소수점 기준 왼쪽 두 번째 자리에서 반올림

VARCHAR2

  • 가변적인 길이의 문자열을 저장하기 위해서 사용한다.
  • varchar2(10) : 저장되는 데이터에 따라 최대 10바이트의 저장공간이 할당되므로, 메모리 낭비를 줄일 수 있다.

CHAR

  • 고정 길이 문자열을 저장하기 위해서 사용한다.

  • 입력된 데이터의 길이에 상관없이 지정한 크기만큼 저장 영역을 차지한다.

  • char(10) : 저장되는 데이터에 상관없이 10바이트의 저장공간이 할당된다. 저장공간의 크기와 편차가 심한 데이터를 저장할 경우, 메모리를 낭비하게 된다.


📌 SELECT문

  • 데이터를 조회하기 위한 SQL 명령어

  • SQL 명령어는 하나의 문장으로 구성되어야 한다.
    여러 개의 절이 모여서 하나의 문장이 되는데, 이러한 문장들은 반드시 세미콜론(;)으로 마쳐야 한다.

  • SELECT문은 반드시 SELECT / FROM 2개의 키워드로 구성되어야 한다.

  • SELECT절에는 출력하려는 칼럼 이름을 적는다.

    • 칼럼 이름 대신 *를 적으면 테이블 내의 모든 컬럼을 출력할 수 있다.
  • FROM절에는 조회하고자 하는 테이블 이름을 적는다.

  • SELECT sal + comm FROM emp; 이런 형태로 산술 연산자도 쓸 수 있다.

    • null 값이 존재하는 부분은 연산 작업이 실행되지 않는다.
    • nvl(e1, e2) : e1값이 null이면 e2값을 반환하고, e1값이 null이 아니면 e1값을 반환하는 함수를 이용하면 연산 작업을 할 수 있다.
    • nvl(comm, 0) : comm 컬럼에서 데이터가 null이면 0을 반환해서, 산술할 수 있게 된다.
  • as 컬럼이름 : 컬럼에 별칭을 부여하여 출력값으로 내가 원하는 이름을 컬럼에 부여할 수 있다. 키워드 as는 생략할 수 있다.

    • " "(더블코트)도 컬럼에 별칭을 부여할 수 있다. 대소문자를 구별할 수 있고, 공백문자/$/_/# 등의 특수문자를 포함할 수 있다.
  • Concatenation 연산자(||) : 여러 개의 컬럼을 연결할 때 사용한다.

  • Distinct 키워드 : 중복되는 값을 한 번만 출력하고 싶을 때 사용한다.


📌 SQL_Plus

  • SQLSQL_plus
    관계형 데이터베이스의 ANSI 표준 언어SQL문을 실행하는 오라클 툴
    여러 줄 시행 가능한 줄 단위로 실행
    종결문자(;) 필요종결문자 불요
    연결문자 불요연결문자(-) 필요
    키워드 단축 불가키워드 단축 가능
    버퍼에 마지막 명령문 저장버퍼 저장 가능(get)
L(IST) : 버퍼에 저장된 모든 SQL문 또는 검색한 라인의 SQL문을 나타낸다.
/ : SQL문을 보여주지 않고 바로 실행한다.
RUN(R) : 버퍼에 저장된 SQL문을 보여주고 실행한다.
EDIT(ED) : 파일 내용을 vi(unix)나 notepad(windows)와 같은 에디터로 읽어 편집할 수 있도록 한다.
HOST : 오라클을 종료하지 않고 OS명령을 수행할 수 있도록 OS환경으로 잠시 빠져 나갈 수 있도록 한다.
       OS Prompt 상에서 Exit하면 다시 오라클 환경으로 돌아온다.
SAVE : SQL 버퍼 내의 현재 내용을 실제 파일로 저장한다.(.sql)
@ : SQL 파일에 저장된 내용을 실행한다.
SPOOL : 오라클 화면을 갈무리하여 파일로 저장한다. (작업내역 저장)
GET : 파일의 내용을 SQL 버퍼로 읽어 들인다.
EXIT : 오라클을 종료한다.
profile
생각하는 사람이 되고 싶다

0개의 댓글