728x90
반응형
SMALL

SQL 15

[ORACLE] SQL 객체 변경 ALTER - 컬럼 추가, 수정, 삭제

ALTER 문데이터 정의 언어(DDL) 중 하나로 객체를 변경하는 구문이다. 이 글에서는 예시로 테이블로 정리했다. 테이블에 대한 변경ALTER TABLE 테이블명 변경할내용 변경되는 내용컬럼 추가 / 수정 / 삭제제약 조건 추가 / 삭제제약 조건은 수정이 불가!! 수정하려면 삭제 후 다시 생성해야 함!!컬럼명 / 제약조건명 / 테이블명 변경컬럼 추가 (ADD)ALTER TABLE 테이블명 ADD 컬럼명 데이터타입 [DEFAULT 기본값] [제약조건]; 예시ALTER TABLE DEPT_TABLE ADD CNAME VARCHAR2(20);ALTER TABLE DEPT_TABLE ADD LNAME VARCHAR2(20) DEFAULT '한국'; 컬럼 수정 (MODIFY)데이터 타입 수정ALTER TABLE..

데이터베이스 2025.03.18

[ORACLE] PL/SQL 제어문 - 조건문(IF-ELSIF-ELSE, CASE-WHEN-THEN)

PL/SQL의 조건문동작 방식은 흔히 알고 있는 IF문과 동일하다. 단지 문법만 조금 다를 뿐이다.단일 IF 문IF 조건식 THEN 실행내용 END IF; IF / ELSE 문IF 조건식 THEN 실행내용 ELSE 실행내용; END IF; IF-ELSIF-ELSE 문IF 조건식 THEN 실행내용 ELSIF 조건식 THEN 실행내용 ELSE 실행내용; END IF; 예시DECLARE EID EMPLOYEE.EMP_ID%TYPE; ENAME EMPLOYEE.EMP_NAME%TYPE; SAL EMPLOYEE.SALARY%TYPE; BONUS EMPLOYEE.BONUS%TYPE;BEGIN SELECT EMP_ID, EMP_NAME, SALARY, NVL(BONUS, 0) INTO E..

데이터베이스 2025.03.17

[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
728x90
반응형
LIST