Database 14

[ORACLE] SQL에서 페이징(Pagination)

기본 문법)SELECT 컬럼명FROM 테이블명ORDER BY 컬럼명OFFSET 시작행 ROWSFETCH NEXT 가져올행수 ROWS ONLY; ex)-- 예: 11번째부터 20번째 행까지 조회SELECT *FROM employeesORDER BY employee_idOFFSET 10 ROWS -- 앞 10개 건너뜀FETCH NEXT 10 ROWS ONLY; -- 다음 10개 가져옴11 ~ 20번째 행 조회 페이지 번호가 page이고, 한 페이지당 size개라면:OFFSET (page - 1) * size ROWSFETCH NEXT size ROWS ONLY;

Database/ORACLE 2025.08.05

[ORACLE] 문자열 찾기: LIKE / INSTR

📍 비교 INSTRLIKE용도문자열 위치 찾기패턴 매칭반환값정수 (1부터 시작, 없으면 0)TRUE / FALSE (조건식에서 사용)속도대체로 빠름(단, 인덱스 미사용 시 LIKE와 비슷)패턴 복잡도에 따라 느릴 수 있음활용포함 여부만 체크위치값 필요포함 여부만 체크복잡한 패턴 (와일드카드, 자리수)와일드카드없음%, _ 지원 ✅ LIKE기본 문법)SELECT * FROM 테이블명WHERE 컬럼명 LIKE '패턴'; 와일드카드% _ 0개 이상의 문자를 의미정확히 1개의 문자를 의미 ex) %SELECT * FROM usersWHERE name LIKE 'kim%';kim으로 시작하는 값kim123, kimmy, ... SELECT * FROM usersWHERE name LIKE '%park..

Database/ORACLE 2025.08.05

[DBMS] 트리거(trigger) / 프로시저(procedure)

📍비교 요약 프로시저 (Procedure) 트리거 (Trigger) 필요할 때 호출하여 실행이벤트 발생 시 자동으로 실행미리 저장된 SQL 문들의 집합으로, 서버에서 실행되는 일종의 함수테이블에 특정 이벤트 (INSERT, UPDATE, DELETE)가 발생할 때 자동으로 실행COMMIT, ROLLBACK 등의 트랜잭션 제어 가능 COMMIT, ROLLBACK 등의 트랜잭션 제어 제한 ✅ 트리거 (Trigger) 이벤트 발생 시 자동으로 실행 테이블에 특정 이벤트 (INSERT, UPDATE, DELETE)가 발생할 때 자동으로 실행되는 코드 블록트리거 내에서 COMMIT, ROLLBACK 등의 트랜잭션 제어는 제한 기본문법)CREATE TRIGGER 트리거_이름{BEFORE | AFTE..

Database/DBMS 2025.07.15

[ORACLE 이론] 중복 제거: UNION, DISTINCT / 중복: UNION ALL

📍 비교DISTINCTUNION UNION ALL하나의 SELECT 결과 안에서 중복 제거여러 SELECT 결과를 합친 후 중복 제거여러 SELECT 결과를 합친 후 중복 제거 X ✅ DISTINCT하나의 SELECT 결과 안에서 중복 제거대상 컬럼 전체를 기준으로 중복을 판단쿼리 구조가 단순할 때 사용 기본 문법)SELECT DISTINCT [컬럼명] FROM [테이블명]; ex)SELECT DISTINCT nameFROM table_a;table_a의 name 컬럼에서 중복 제거 ✅ UNION여러 SELECT 결과를 합친 후 중복 제거각 SELECT 결과를 합친 다음, 전체에서 중복을 판단컬럼 개수, 타입이 동일해야 함 기본 문법)SELECT column1, column2, .....

Database/ORACLE 2025.01.21

[ORACLE 이론] DECODE / CASE

1) 조건에 따라 다른 값을 반환하는 데 사용되는 함수2) DECODE는 CASE 구문과 유사한 기능3) DECODE는 Oracle에서 제공하는 고유한 함수    ✅ DECODE  📌 장점간단한 조건에 따른 값 변환을 처리할 수 있습니다.CASE 문에 비해 구문이 간단하고 직관적일 수 있습니다. 📌 단점복잡한 조건이나 여러 조건을 처리할 때 CASE 구문보다 가독성이 떨어질 수 있습니다.DECODE는 Oracle에 특화된 함수이므로 다른 데이터베이스 시스템에서는 사용할 수 없습니다.SQL 표준을 준수하려면 CASE 구문을 사용하는 것이 더 좋습니다.DECODE(컬럼명, 비교값1, 반환값1, 비교값2, 반환값2, ..., 기본값)   ex)1️⃣ 특정 값에 따라 다른 값을 반환하는 경우 SELECT e..

Database/ORACLE 2025.01.15

[DBMS] 서브 쿼리

서브쿼리란? Sub Query는 SQL 문 내부에 포함된 중첩된 쿼리 주로 외부 쿼리의 결과에 따라 내부 쿼리를 실행하고 결과를 필터링하는데 사용 서브쿼리는 특정 조건을 만족시키거나 특정 값을 계산하기 위해 사용 📌 서브쿼리 사용 시 주의사항 서브쿼리를 괄호로 감싸서 사용 서브쿼리는 단일 행 또는 복수 행 비교 연산자와 함께 사용 가능 서브쿼리에서는 ORDER BY 를 사용 불가능 서브쿼리 사용 가능한 곳 ✅ 1. SELECT 절 - 하나의 열처럼 사용 - SELECT 절의 서브쿼리는 결과가 반드시 하나의 값 SELECT [컬럼], (SELECT [컬럼] FROM [테이블] WHERE 조건) FROM [테이블] WHERE 조건; ✅ 2. FROM 절 - 하나의 테이블처럼 사용 - FROM 절의 서브쿼리는..

Database/DBMS 2024.02.16

[ORACLE 이론] 값이 null일 때 다른 값: NVL

NVLNVL2NULL 값인 경우 특정값으로 출력NULL 값이 아닐 경우 특정값으로 출력 ✅ NVL 함수NVL 함수는 값이 NULL인 경우 지정값을 출력하고, NULL이 아니면 원래 값을 그대로 출력함수 : NVL("값", "지정값") ex)SELECT NVL(HOBBY,'없음') FROM USER;hobby가 null이면 없음을 반환 ✅ NVL2 함수NVL2 함수는 NULL이 아닌 경우 지정값1을 출력하고, NULL인 경우 지정값2를 출력함수 : NVL2("값", "지정값1", "지정값2") / NVL2("값", "NOT NULL", "NULL") SELECT NVL(HOBBY, HOBBY, '없음') FROM USER;

Database/ORACLE 2024.02.15

[DBMS] JDBC에서 Query 사용

executeQuery() SQL Query문이 SELECT의 경우 사용 반환값 타입 ResultSet executeUpdate() SQL Query문이 INSERT, DELETE, UPDATE의 경우 사용 반환값 타입 int ✋ 알아두기 JDBC 동작 순서 변수 세팅(Connection, Statement, ResultSet) JDBC Driver 등록 Connection 객체 생성 Statement 객체 생성 실행할 Query ResultSet 객체로부터 데이터 조회 ResultSet 객체 close Statement 객체 close Connection 객체 close ✅ executeQuery() ex) package test; import java.sql.Connection; import java..

Database/DBMS 2024.02.15

[DBMS] JDBC 연결방법

1. 드라이버 설치 - java에서 데이터베이스를 사용하기 위해서는 드라이버를 설치 ▶ MySQL 홈페이지에서 드라이버를 설치합니다. ( 링크 ) 설치가 완료되면, mysql-connector-java-버전-bin.jar 파일이 생성 2. 이클립스에서 jar파일 연동 이클립스에서 새로운 프로젝트를 생성 프로젝트 폴더를 우클릭 -> Properties -> Java Build Path 항목 클릭 Libraries -> Add Library ... 클릭 -> User Library 클릭 -> User Libraries 클릭 New 클릭하여 아무렇게 이름을 작성합니다. ( 저는 JDBC라는 이름으로 생성하겠습니다. ) 생성된 Library를 클릭하고 Add External JARs 클릭 처음에 설치한 jar ..

Database/DBMS 2024.02.15