단일행 함수 및 날짜변환 함수

두부링·2024년 11월 22일

sql

목록 보기
2/5

1. 컴퓨터 기초 지식

서비스: UI 없이 백그라운드에서 돌아가는 app(오라클도 포함)

oracle 노트북 설정은?
노트북에서 oracle 수동으로 설정(서비스-oracleServiceXE-수동)

2. 오라클

"테이블에는 순서가 존재하지 않음"

2-1. sequence

시퀀스 = 객체(객체 생성시 : create table,sequence,...)

  • 숫자를 미리 생성해서 요청 받으면 메모리에서 갖다가 사용 -> 컴퓨터가 재부팅 되면 ->글번호가 연속되지 않을수도 있음 but 괜춘
  • dual - 더미테이블

2-2. DQL

DQL(date query language) = 데이터를 빼는 언어
DML : 데이터를 관리 : commit & rollback 가능
DQL : select

2-3. 실행순서

  • where :필요없는 row 는 배제시킴
  • having : 필요없는 그룹을 배제시킴

3. oracle 연습문제

<정렬>
정렬을 두 번하는 의미?
같은 그룹끼리 몰리게 그룹 안에서의 정렬

<as - 칼럼의 별칭>
as와 큰 따옴표는 "는 생략이 가능함

<산술계산>
원 테이블을 가지고 가공함

<논리>
not : TRUE를 FALSE로 & FALSE를 TRUE로

<sql 연산자>
IN : or로 연결됐음
ANY : 어느 하나라도 맞으면 TRUE --해석이 중요
ALL : 모두 다 맞으면 TRUE --해석이 중요
BETWEEN : 사이에(경계값을 포함)
EXISTS : 결과가 TRUE or FALSE

<NULL(널)>
1. 오라클: 비어 있음 그리고 "알수 없음 "->그래서 비교할 수 없음 그래서 is null, is not null
2. 프로그래밍 : 비어 있음만!

<함수 - 암기X, 어떤 기능 있는지 어렴풋... => "결과값으로 대치된 이후에 select에서 조회됨"
1. 단일행 함수 : row 하나당 하나의 결과가 나옴
2. 복수행 함수 : 여러 개의 row에서 하나의 결과가 나옴


정호T 정리사항

  1. EMP 테이블에 대해서 다양한 SELECT 실습하기
  2. 단일행 함수 종류별로 테스트하기
  3. 날짜변환 함수 TO_CHAR TO_DATE 연습하기
  4. SYSDATE OR TO_DATE 함수를 이용해서 TABLE에 날짜 저장하기 연습

보완점

<질문>

산술연산자에서 나머지 구하는 걸 안되는가?
오라클에서는 나머지 구하는 연산자는 존해하지 않음(대신 함수 존재-mod) MYSQL에서는 % 존재함

<보완점>

한글은 보통 2~3 바이트

날짜도 문자열로 비교할 수 있음

문) 10% 인상된 금액 출력

oracle에서 문자는 싱글따옴표

파이썬만 조건을 동시에 사용이 가능함(1000<= sal <= 2000)

host : SQL 환경에서 임시로 Windows 명령 프롬프트로 나가기 위한 명령어
exit : SQL 인터프리터를 완전히 종료하고 Windows 환경으로 돌아가는 명령어

<함수>

ORACLE는 빈 가로를 두지 않음(SYSDATE에 가로가 없는 이유)

MONTHS_BETWEEN() : 큰 날짜 - 작은 날짜(빼기계산 느낌)

DAY : 요일 DATE : 날짜

일요일을 한 주의 시작으로 본다 -> 일요일 : 1

to_char와 to_date는 데이터를 조회할 때 많이 사용함
내가 원하는 특정 시간을 테이블에 넣기 / 들어갈 형식을 지정 가능 =to_date()

<놓친점>

notepad init.sql : 메모장에 자주 쓰는 코드 저장하기 -> acorn으로 위치가 같으니 굳이 경로 작성 안해도 0
=>select * from emp; -> @init.sql V

<내가 만든 문제>

직원 계급의 급여보다 많은 받는 직원이름, 직원계급, 급여를 알고싶으면?
단 급여가 큰 순서대로 정렬.
select ename, job, sal
from emp
where sal >all(select sal from emp where job='CLERK')
order by sal desc;

KING보다 일찍 입사한 사람의 sal를 조회하세요

profile
하이하잉

0개의 댓글