728x90
반응형
SMALL

전체 글 177

[ORACLE] PL/SQL - PL/SQL 구조와 변수

PL/SQL이란?PL/SQL : PROCEDURE LANGUAGE EXTENSION TO SQL 오라클 자체에 내장되어 있는 절차적 언어로 SQL 문장 내에서 변수 정의, 조건문, 반복문 등을 지원하고 다수의 SQL문을 한 번에 실행할 수 있다. SQL의 단점을 보완해준다. 구조선언부DECLARE로 시작.변수나 상수를 초기화하는 부분이고 생략이 가능하다.실행부BEGIN ~ END 사이의 부분으로 BEGIN으로 시작하고 END로 끝낸다.SQL문 또는 제어문 로직을 작성하는 부분이다.예외 처리부EXCEPTION으로 시작하고 예외 발생 시 해결하기 위한 부분이다. 생략이 가능하다.PL/SQL의 실행 결과를 출력하기 위한 설정-- * 화면에 표시하기 위한 설정SET SERVEROUTPUT ON; PL/SQL은 ..

데이터베이스 2025.03.17

[ORACLE] SQL - 시퀀스(SEQUENCE)

시퀀스(SEQUENCE)란?시퀀스는 자동으로 번호를 발생시켜 주는 역할을 하는 객체이다. 회원을 관리할 때 회원번호나, 게시판의 게시글 번호 등 테이블 내에서 데이터들을 구별해 줄 수 있는 기본키의 역할을 할 수 있다. MySQL에서는 AUTO_INCREMENT를 설정해 주면 되는데 오라클은 그런 기능이 없으므로 시퀀스를 생성해야 한다. 정수를 순차적으로 일정한 값마다 증가시키면서 생성한다.MySQL에서 AUTO_INCREMENT 같은 것이다.시퀀스 생성 방법CREATE SEQUENCE 시퀀스명 [START WITH 숫자] [INCREMENT BY 숫자] [MAXVALUE 숫자] [MINVALUE 숫자] [CYCLE | NOCYCLE] [NOCACHE | CACHE 숫..

데이터베이스 2025.03.17

[ORACLE] SQL - 뷰(VIEW)

뷰(VIEW)란?SELECT 문을 통해 얻어진 결과물을 저장해 둘 수 있는 객체이다. 자주 사용되는 쿼리문을 저장해두면 매번 다시 해당 쿼리문을 작성할 필요가 없다. 임시 테이블과 같은 존재라고 생각할 수 있다.SELECT 문을 통해 얻은 결과를 논리적으로만 저장하는 임시 테이블 VIEW 생성 방법CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW 뷰명 AS (서브쿼리) [WITH CHECK OPTION] [WITH READ ONLY] OR REPLACE : 기존에 동일한 이름의 뷰가 있을 경우 갱신하고 없을 경우 새로 생성한다.FORCE | NOFORCEFORCE : 서브쿼리에 작성한 테이블이 존재하지 않아도 뷰를 생성NOFORCE(기본값) : 서브쿼리에 작성한 테이블이 존재하..

데이터베이스 2025.03.17

[프로그래머스] SQL - 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기(ORACLE)

분석하기조회할 데이터 : 월, 자동차ID, 대여횟수대여 시작일을 기준으로 2022년 8월부터 2022년 10월까지 => CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일이 2022년 8월 ~ 10월 사이의 데이터이어야 한다.총 대여 횟수가 5회 이상인 자동차들에 대해서 => 해당 날짜에 해당하는 데이터 수가 5개 이상인 자동차ID를 알아야 한다.결과는 월을 기준으로 오름차순 정렬하고, 월이 같다면 자동차 ID를 기준으로 내림차순 정렬 => 월은 ASC, 자동차ID DESC 전체 코드SELECT EXTRACT(MONTH FROM START_DATE) AS MONTH, CAR_ID, COUNT(*) AS RECORDSFROM CAR_RENTAL_COMPANY_RENTAL_H..

프로그래머스 2025.03.13

[ORACLE] 문자 처리 함수 - LPAD / RPAD

LPAD / RPAD 함수는 지정 문자열을 입력한 크기만큼 본 문자열의 왼쪽 / 오른쪽부터 채워서 생성된 문자열을 반환하는 함수이다. 문자열을 조회할 때 통일감 있게 조회하고자 할 때 사용한다. LPAD 함수표현법LPAD(문자열 또는 컬럼, 총 길이[, '덧붙일문자']) 왼쪽에 덧붙일 문자를 사용하여 채운다.RPAD 함수표현법RPAD(문자열 또는 컬럼, 총 길이[, '덧붙일문자']) 오른쪽에 덧붙일 문자를 사용하여 채운다. LPAD / RPAD 함수를 사용할 때 덧붙일 문자를 생략하면 공백으로 채워진다. 예시SELECT EMP_NAME AS "사원명", LPAD(EMAIL, 20) AS "EMAIL"FROM EMPLOYEE; SELECT '000201-1', RPAD('000201-1', 14, '*')..

데이터베이스 2025.03.13

[프로그래머스] SQL - 자동차 평균 대여 기간 구하기

분석하기자동차ID, 평균 대여 기간자동차 별 평균 대여 기간을 구해야 하므로 자동차 ID별로 그룹화 설정을 해야한다.평균 대여 기간이 7일 이상인 데이터를 조회해야하므로 그룹화 이후에 평균 대여 기간을 구하고 그 값이 7이상인 데이터를 찾는 조건식이 필요하다.데이터를 출력할 때는 소수점 두번째 자리에서 반올림해서 첫번째 자리까지만 출력되게 해야하고 보기처럼 소수 첫번째자리가 없을 경우 0으로 표시해야하므로 포맷도 필요하다. 그리고 이때 평균 대여 기간은 별칭을 사용해야 한다.정렬 조건으로 평균 대여 기간 기준으로 내림차순, 같다면 자동차 ID로 내림차순 정렬을 해야한다.실행 순서에 따른 설명1. FROM 절FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY 조회할 테이블 CAR_RENT..

프로그래머스 2025.03.13

[ORACLE] 문자 처리 함수 - SUBSTR

컬럼이나 문자열에서 지정한 위치부터 지정한 개수의 문자열을 잘라내어 문자타입 값을 반환하는 함수이다. 표현식SUBSTR('문자열' 또는 컬럼, 시작위치[, 길이(개수)]); 길이를 생략하면 시작위치부터 끝까지 추출한다. 예시SELECT SUBSTR('ORACLE SQL DEVELOPER', 10) FROM DUAL;-- SQL만 추출SELECT SUBSTR('ORACLE SQL DEVELOPER', 8, 3) FROM DUAL; 음수 값 사용SELECT SUBSTR('ORACLE SQL DEVELOPER', -3) FROM DUAL;음수 값을 사용하면 끝에서부터 위치한 값을 찾게 된다.SELECT SUBSTR('ORACLE SQL DEVELOPER', -9, 3) FROM DUAL;끝에서부터 9번째 위치..

데이터베이스 2025.03.12

[ORACLE] 함수 - 문자 처리 함수 (LENGTH, LENGTHB, INSTR, INSTRB)

문자 처리 함수 중 LENGTH, LENGTHB, INSTR, INSTRB에 대해 알아보자! 구분입력 값 타입반환 값 타입설명LENGTH문자숫자문자열 길이 반환LENGTHB문자열의 바이트 크기 반환INSTR특정 문자의 시작 위치 반환INSTRB특정 문자의 위치 바이트 크기 반환 LENGTH, LENGTHB한글은 한 문자당 3Byte이고 그 외에는 1Byte이다.-- '오라클' 단어의 글자수와 바이트수를 확인SELECT LENGTH('오라클') AS "글자수", LENGTHB('오라클') AS "바이트수"FROM DUAL;INSTR, INSTRB함수 실행 결과값은 NUMBER 타입이다.표현식INSTR(컬럼 또는 '문자열', '찾고자하는 문자'[, 찾을 위치의 시작값, 순번]);-- 사원 정보 중 -- 이메..

데이터베이스 2025.03.12

[ORACLE] 함수 - 단일행 함수와 그룹 함수

함수 (Function)하나의 큰 프로그램에서 반복적으로 사용되는 부분들을 분리하여 작성해 놓은 작은 서브 프로그램호출하며 값을 전달하면 결과를 반환하는 방식으로 사용함수의 유형단일행 함수여러 개의 값을 전달하여 여러 개의 결괏값을 반환하는 함수를 단일행 함수라고 한다. 각 행마다 반복적으로 적용되어 입력받은 행의 개수만큼 결과를 반환한다. EX) 문자 처리 함수, 숫자 처리 함수, 날짜 처리 함수, 형변한 함수, 선택함수, NULL 처리 함수 등이 있다.그룹 함수여러 개의 값을 전달하여 하나의 결과값을 반환하는 함수를 그룹함수라고 한다. 특정 행들의 집합으로 그룹이 형성되어 적용된다. 그룹 당 1개의 결과를 반환한다. EX) SUM(), AVG(), COUNT() 등이 있다. SELECT 절에 단일행 ..

데이터베이스 2025.03.12

[ORACLE] SQL - ORDER BY (ASC/DESC)

SQL에서 SELECT 문을 사용하여 데이터를 조회한 결과를 정렬조건을 설정하여 출력할 수 있다. 이때 ORDER BY 절에 조건을 설정해 주면 된다. ORDER BY 절을 보기 전에..SQL DEVELOPER 응용 프로그램을 사용하는 경우(다른건 안 찾아봐서 모르겠습니다..) 도구 => 환경설정 => 데이터베이스 => 객체뷰어 에서 해당 체크란에 체크가 되어 있다면데이터를 추가 혹은 수정할 때 해당 데이터에 ORA_ROWSCN을 적용한다는 것인데 ORA_ROWSCN는 데이터의 마지막 수정된 시간이다. 즉, 마지막으로 수정된 시간을 기준으로 정렬을 한다. (체크 해제하실 분은 체크 해제!) SELECT 문SELECT 조회할 컬럼, ...FROM 테이블명WHERE 조건ORDER BY 정렬기준이되는컬럼 | ..

데이터베이스 2025.03.12
728x90
반응형
LIST