교육 (Today I Learned)/SeSAC

SeSAC 2일차 / SQL 기본(커맨드 명령, SQL 문-1)

Bay Im 2023. 7. 19. 00:21
SeSAC 2일차(2023-07-18)
SQL 기본(커맨드 명령, SQL 문-1)


- 오라클 다운로드 및 연결

Run SQL Command Line 창에서 conn hr/hr

 

SQL

 

SQL(Structured Query Language): 관계형 데이터베이스 처리 언어

SQL*PLUS: SQL언어를 구현하여 오라클 RDBMS를 관리할 수 있는 CLEINT TOOL

 

 

SQL 명령:

데이터베이스의 데이터 및 테이블 조작

모든 명령의 끝은 세미콜론으로 끝나야 한다.

가장 최근의 SQL 명령은 SQL 버퍼에 남아있다. (list 입력 시 최근 명령 출력)

비절차적 언어이다.

 

 

 

 

Table 구조

 

- Table 구조 확인

SQL> DESC[RIBE] table_name

 

 

 

 

Editing Commands

 

- 직전 수행한 SQL문 출력

SQL> L[IST]

SQL> L[IST] n (n line을 출력)

SQL> L[IST] m n (m~n line을 출력)

 

- SQL 버퍼의 내용을 출력하고 실행

SQL> R[UN]

SQL> / (실행만)

 

- current line 끝에 text 추가

SQL> A[PPEND] text

 

- n line 내용을 text로 교체

SQL> n text

ex) 3 WHERE ename = ‘SMITH’

 

- current lineold stringnew string으로 교체

SQL> c/old/new

 

- current line을 삭제

SQL> DEL

 

- SQL 버퍼의 내용을 Clear

SQL> CL[EAR] BUFF[ER]

 

- current line 밑에 line 한 개 추가 후 text 입력

SQL> I[NPUT] text

Ex) I AND hiredate >= to_date(‘910101’, ‘YYMMDD’)

 

 

 

 

File Commands

 

- SQL 버퍼 내의 현재 내용을 주어진 filename으로 저장

파일 이미 존재 시 Replace 옵션을 주면 Overwrite되고, APPEND 옵션을 주면 파일 끝에 추가된다.

SQL> SAVE filename[Replace][APPEND]

 

- filename 내의 내용을 출력하고 SQL 버퍼에 기록

SQL> GET filename

 

- filename 내의 내용을 실행

SQL> START filename

SQL> @filename

 

- filename 내의 내용을 Editor로 읽어서 수정

filename을 지정하지 않으면 afiedt.buf 파일로 SQL 버퍼의 내용을 수정할 수 있다.

SQL> ED[IT] filename

 

- filename으로 쿼리 결과 저장

SQL> SPOOL filename

 

- SQL*PLUS를 종료하지 않고 OS Command를 수행할 수 있도록한다.

SQL> HOST

 

- SQL*PLUS 종료

SQL> EXIT

 

 

 

 

환경설정 Commands

 

- 화면에 표시되는 컬럼명 자리수 지정

SQL> COL[UMN] column FORMAT Ann

ex) COL department_name FORMAT a15

 

- @filename으로 실행 시 파일내 명령을 출력하고 수행할지 결정

SQL> SET ECHO OFF (실행 결과만 출력)

SQL> SET ECHO ON (SQL 명령 출력 후 실행 결과 출력)

 

- 주어진 n보다 같거나 많은 Row가 조회되면 조회된 건수를 출력한다. (Defalut6)

SQL> SET FEED[BACK] n|ON|OFF

ex) SET FEEDBACK 6

 

- 조회되는 결과에 Column Heading의 표기 여부 결정

SQL> SET HEA[DING] ON (column heading이 나타나지 않는다.)

SQL> SET HEA[DING] OFF (column heading이 나타난다.)

 

- 조회되는 결과의 line character수를 결정한다. (Default line80)

SQL> SET LIN[ESIZE] n

 

- 조회되는 결과의 pageline 수 결정 (default24)

SQL> SET PAGES[IZE] n

 

- 조회되는 결과가 많아 화면에 스크롤될 때 일시 중지 여부 결정

SQL> SET PAU[SE] ON|OFF|text

 

- 현재 시각을 SQL*PLUS Prompt앞에 출력할지 여부 결정

SQL> SET TI[ME] ON|OFF

 

- SQL이 처리되는 시간을 출력할지 여부 결정

SQL> SET TIMI[NG] ON|OFF

 

 

 

 

 

 

 

 

 

데이터베이스 개론, SQL 기본

 

- 오라클 데이터베이스

권한 부여: GRANT [system_privilege | role] TO [user | role | PUBLIC] [WITH ADMIN OPTION]

 

(Role): 사용자에게 허가할 수 있는 권한들의 집합

 

데이터 사전(Data Dictionary): 읽기전용 테이블 및 뷰들의 집합

 

 

 

 

SELECT 문

 

기본 SELECT :

SELECT * | {[DISTINCT] column | expression [alias] …}

FROM table;

 

*: 모든 열 선택

DISTINCT: 중복 방지

Column | expression: 열 또는 표현식

Alias: 별칭 지정

 

 

산술 표현식: FROM 절 제외한 모든 절에서 산술 연산자 사용 가능 (+, -, *, /)

ex) SELECT column_name + 300, 12*(column_name+100)

 

 

Null: 알 수 없는 값, 0 또는 공백과 같지 않음.

Null 값을 포함하는 산술식은 Null로 계산된다.

 

 

Alias(별칭): 열 이름을 별칭으로 변경

ex) SELECT column_name AS 별칭

 

 

연결 연산자: 열 또는 문자열을 다른 열에 연결, ||로 표시

ex) SELECT column_name1 || column_name2 AS 별칭

 

 

리터럴 문자열: 작은 따옴표 안에 날짜나 문자 리터럴 작성 시 두 열 사이에 해당 리터럴이 넣어져서 출력

ex) SELECT column_name1 || ’ is a ‘ || column_name2 AS 별칭

 

대체 인용(q) 연산자: 자신의 따옴표 구분자를 지정

ex) SELECT column_name1 || q ‘[Department’s Manager Id: ]’ || column_name2 AS 별칭

 

 

DISTINCT: 중복 행 제거

ex) SELECT DISTINCT column_name

 

 

 

 

데이터 제한 및 정렬
WHERE 절

 

기본 WHERE 절:

SELECT * | {[DISTINCT] column | expression [alias] …}

FROM table

[WHERE condition(s)];

 

Condition: 열 이름, 표현식, 상수 및 비교 연산자로 구성, 조건은 하나 이상의 표현식과 논리 연산자의 조합을 지정

ex) WHERE department_id = 90;

 

 

문자열 및 날짜: 문자열 및 날짜는 단일 따옴표로 둘러싼다.

ex) SELECT SYSDATE

FROM dual;

==> 현재 날짜 기본 표시 형식으로 출력