무작정 개발.Vlog

[오라클] SQL 명령어, 연산자

by 무작정 개발
반응형
2022.01.21 (24일 차)

오늘부터 본격적으로 DB수업을 진행했습니다. 저희는 DB 중에 oracle DB에 대해 배웠습니다. 아래 책 사진은 학원에서

나눠준 책으로 부족한 부분은 책을 통해 공부하기로

 

do it DB 책
학원에서 준 책

 

 

오늘의 수업 내용

 

 

SQL이란?

먼저 SQL이란 데이터베이스(DataBase)를 구축하고 활용하기 위해 사용되는 언어이다.

 

 

 

SQL 명령어 

 

DQL데이터 검색어(쿼리)

  • SELECT : 선택

 

DDL - 데이터 정의어

  • CREATE : 테이블 생성
  • DROP : 테이블 일체 삭제
  • ALTER : 테이블 변경
  • RENAME : 테이블 이름 변경
  • TRUNCATE : 테이블 데이터 삭제
  • COMMENT : 테이블 데이터 삭제

DML - 데이터 조작어

  • INSERT : 데이터 입력
  • UPDATE : 데이터 업데이트
  • DELETE : 데이터 삭제
  • MERGE : 데이터 병합

DCL - 권한 정의어

  • GRANT : 권한 부여
  • REVOKE : 권한 박탈

TCL - 트랜잭션 언어

  • COMMIT : 변경사항 확정
  • ROLLBACK : 변경사항 취소

 

위의 SQL 명령어들은 매우 중요하다. SQLD 혹은 정보처리기사에 꼭 나오니 따로 정리를 할 예정입니다.


 

PERSONNEL 테이블

sql 실행 결과
sql 실행 결과

위는 PERSONNEL이라는 테이블이다. 관계형 데이터베이스는 기본적으로 데이터를 2차원 표 형태로 저장하고 관리한다.

위의 형태의 데이터 저장 공간을 테이블(table)이라 한다. 가로줄은 행(row), 세로줄은 열(column, 칼럼)이라 부른다.

 

 

(1) 첫 번째 사진처럼 PERSONNEL이라는 테이블 전체를 보고 싶으면 -->  SELECT * FROM PERSONNEL;

 

(2) 만약에 내가 칼럼에서 원하는 부분만 보고 싶을 때는 --> SELECT PNO, PNAME, PAY, DNO FROM PERSONNEL;

    입력하는 칼럼 순서가 바뀌어도 상관이 없다! 

 

(3) 내가 만약에 PERSONNEL테이블에서 JOB이라는 칼럼만 검색하고 싶을 때 --> SELECT JOM FROM PERSONNEL;

 

 

(4) 위의 3번은 검색하면 하단 사진처럼 중복된 데이터가 존재합니다. 중복되는 데이터를 삭제하기 위해 DISTINCT 사용!

 

--> SELECT DISTINCT JOB FROM PERSONNEL;

SELECT JOM FROM PERSONNEL; - 중복 제거 전
SELECT JOM FROM PERSONNEL; - 중복 제거 전
SELECT DISTINCT JOB FROM PERSONNEL;- 중복 제거 후
SELECT DISTINCT JOB FROM PERSONNEL;- 중복 제거 후


정렬

sql 정렬
sql 정렬

 

먼저 ORDER BY는 사용자가 원하는 순서대로 테이블을 출력할 때 사용한다.

 

ORDER BY와 함께 정렬 기준이 되는 속성을 지정하고, 오름차순 정렬이면 ASC, 내림차순 정렬이면 DESC로 표현한다.

따로 정렬 방법을 지정하지 않으면 오름차순으로 기본 정렬돼서 ASC(오름차순)은 생략이 가능하다.

오름차순은 가장 작은 값을 먼저 출력하고 큰 값을 나중에 출력한다. 내림차순은 그 반대로 출력한다.

 

 

(1) PERSONNEL 테이블에서 PNO, PNAME, PAY 칼럼을 출력하는데 PAY칼럼을 오름차순으로 출력하기

(1)번 실행 결과
(1)번 실행 결과

(2) PERSONNEL 테이블에서 PNO, PNAME, PAY 칼럼을 출력하는데 PNAME은 정렬시켜서 출력하기

(2)번 실행 결과
(2)번 실행 결과

(3) PERSONNEL 테이블에서 PNO, PNAME, PAY 컬럼을 출력하는데 PAY는 내림차순 정렬 출력

(3)번 실행 결과
(3)번 실행 결과

(4) PERSONNEL 테이블을 출력하는데 STARTDATE 컬럼을 날짜 순(오래된 사람 순)으로 정렬하기

(4)번 실행 결과
(4)번 실행 결과


DQL(쿼리)는 연산 가능

AS(별칭) : SELECT절 칼럼명 뒤에 작성. AS는 생략이 가능하다.

 

SQL 별칭
SQL 별칭

(1)  PERSONNEL 테이블에서 PNO, PNAME, PAY, 보너스를 출력하는데 보너스는 PAY +1000을 해서 출력한다.

(1)번 실행 결과
(1)번 실행 결과

(2) PERSONNEL 테이블에서 PNO, PNAME, PAY, 보너스를 출력하는데 보너스는 PAY +1000을 해서 출력하고 PAY는

    정렬해서 출력한다.

(2)번 실행 결과
(2)번 실행 결과

(3) PERSONNEL 테이블에서 PNO, PNAME, 보너스(PAY+1000)를 출력하는데 보너스만 정렬해서 출력한다.

(3)번 실행 결과
(3)번 실행 결과

(4) PERSONNEL 테이블에서 PNO, PNAME, 보너스(PAY+1000)를 출력하는데 4번째 칼럼만 정렬해서 출력한다.

(4)번 실행 결과
(4)번 실행 결과

 

퀴즈

부서번호는 오름차순, 사원번호는 내림차순 정렬
부서번호는 오름차순, 사원번호는 내림차순 정렬


NULL

NULL은 어떠한 값을 연산해줘도 값은 항상 NULL이 나온다. 그래서 0과 NULL은 엄연히 다르다.

오라클에서는 작은 값에서 큰 값 순(오름차순)으로 정렬하면 NULL이 마지막으로 나온다.

 

Oracle 정렬 - NULL
Oracle 정렬 - NULL
결과
결과

 

NULL값 처리 방법

NVL 함수 : (NVL(BONUS, 0) -> 보너스가 있으면 더하고 없으면 0을 더해서 NULL값을 처리해준다.

Oracle Null값 처리 방법
Oracle Null값 처리 방법
결과
결과


연결 연산자 

 

SQL 연결 연산자
SQL 연결 연산자
결과
결과


행 제한(조건식), WHERE절, 연산자, 논리 연산자

WHERE 절 : SELECT문으로 데이터를 조회할 때 특정 조건을 기준으로 원하는 행을 출력하는 데 사용

SQL 행 제한(조건식)
SQL 행 제한(조건식)
결과
결과

 

연산자

=, >, <, <=, >= 은 기존 다른 언어랑 뜻이 동일하다. <>는 같지 않다 라는 뜻

SQL 연산자
SQL 연산자
SQL 연산자
SQL 연산자

 

논리 연산자(AND, OR, NOT(!) )

SQL 논리 연산자
SQL 논리 연산자
SQL 논리 연산자
SQL 논리 연산자

 

BETWEEN 연산자

 

BETWEEN AND 조건절을 사용해 특정 범위를 만족하는 결과를 출력한다.

 

SQL between 연산자
SQL between 연산자

SQL between 연산자
SQL between 연산자

 


LIKE 절

 

쿼리문 WHERE절에 주로 사용되며 부분적으로 일치하는 칼럼을 찾을 때 사용됩니다.

SELECT * FROM [테이블명] WHERE LIKE [조건]

 

_ : 글자 숫자를 정해줌(EX 칼럼명 LIKE '홍_동')

% : 글자 숫자를 정해주지 않음(EX 칼럼명 LIKE '홍%')

SQL like 절
SQL like 절


NULL 찾는 방법

 

SQL NULL 찾는 법
SQL NULL 찾는 법


 

 

반응형

블로그의 정보

무작정 개발

무작정 개발

활동하기