일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 제네릭
- start.spring.io
- unboxing
- Jenkins
- 콜렉션
- dependency
- 스프링
- wrapper
- 제너릭
- 루프
- bootstrap
- Short
- maven
- 언박싱
- 클래스
- 인텔리제이
- Scanner
- 싱글톤
- suvlet
- 자동형변환
- boxing
- 내장객체
- Java
- 컬렉션
- 빌드
- https://start.spring.io
- 무한
- 메소드
- 싱글턴
- 박싱
- Today
- Total
Developer Gonie
[6주차] 27. PL/SQL언어, 사용전 기초 지식 본문
PL(Procedural Language, 절차적 언어)/SQL이란?
오라클 DBMS에서 SQL 언어를 확장하여 사용하기 위해 만들어진 프로그래밍 언어이다.
SQL 명령문만으로 처리하기에는 복잡한 자료의 저장이나 프로시저와 트리거 등을 작성하는 데 쓰인다.
각 관계형 데이터베이스마다 확장 언어들이 있는데, 이러한 확장 언어의 대표적인 예로 마이크로소프트의 마이크로소프트 SQL 서버와 SybaseASE에는 트랜잭트 SQL(Transact SQ; TSQL)이 있고 PostgreSQL에는 PL/pgSQL 마지막으로 IBM DB2는 ISO SQL의 SQL/PSM 표준을 따르는 SQL Procedural를 포함한다.
PL/SQL 코드를 실행하는 위치
SQL PLUS 콘솔창, SQL DEVELOPER 둘 다 그냥 쿼리문 사용하듯이 입력후 실행
PL/SQL 코드를 실행하기 위한 이름없는 일회용 함수를 작성하는 방법
declare
-- 변수선언, 선언할게 없으면 declare를 지워줘도 됨
begin
-- 실행부 코딩
end;
/ -- 콘솔을 이용하는 SQL PLUS 창에서는 이걸 쳐줘야 코드의 끝을 알릴 수 있음(SQL DEVELOPER 에서는 없어도 됨)
PL/SQL 코드의 실행결과를 눈으로 보기위해 필요한 명령
* SQL PLUS 콘솔에서는 콘솔창을 닫았다가 실행할 때 마다 1번씩은 입력해 줘야하는 명령이다.
-- 결과를 화면에 출력할 준비를 하겠다는 의미.ㅡ이게 없으면 코드가 실행되어도 결과값이 화면에 안보여짐
-- 이건 SQL DEVELOPER에서도 맨 윗줄에 입력해둬야 함.
set serveroutput on
1-1. 변수를 선언, 값 할당, 연산, 출력 방법을 알 수 있는 기본예제
- 사용할 변수의 선언은 declare 부에서 이뤄진다.
- 변수에 값을 할당하는 연산자는 ':=' 이다.
- 출력을 위한 dbms_output.put() 함수를 사용했다면 이를 최종적으로 잘 출력하기 위해서는
맨 마지막 줄에 줄바꿈을 포함하는 dbms_output.put_line()을 사용해줘야 한다.
그리고 출력문 안에서 문자열 혹은 값들을 연결하고 싶다면 "||" 를 사용한다.
- SQL PLUS에서는 코드의 끝을 알리기 위해 '/' 를 마지막에 입력해줘야 함.
- 앞에서 배운 mode(), floor(), round() 등의 Oracle의 주요 함수를 여기서도 동일하게 사용가능하다.
- [6주차] 17. 쿼리문 사용시 사용할 수 있는 주요함수(그룹함수 + 기타)***
declare
x number := 10; -- 변수 선언과 동시에 값 할당 가능
y number;
z number;
name varchar2(10);
addr varchar2(10);
begin
y := 20;
z := x+y; -- 덧셈연산 가능
name := '김연아';
addr := '서울';
dbms_output.put('z=' || z || '입니다.' || chr(10)); -- chr(10) 은 엔터의 아스키코드값임
dbms_output.put_line('z=' ||(x+y)||'입니다.'); -- 연산은 ( )로 묶어주지 않으면 오류남
dbms_output.put_line('12 나누기 7의 몫: ' ||(12/7)); -- 나눗셈 연산
dbms_output.put_line('12 나누기 7의 몫: ' ||floor(12/7)); -- 결과에서 소수점 이하를 버리는 floor 함수
dbms_output.put_line('12 나누기 7의 몫: ' ||round(12/7)); -- 반올림하는 round 함수
dbms_output.put_line('12 나누기 7의 나머지: ' || mod(x,y)); -- 나머지를 구하는 mod 함수
dbms_output.put(1);
dbms_output.put_line(2);
dbms_output.put_line(name || '는 ' || addr || '에 살고있습니다.');
end;
/ -- SQL DEVELOPER 에서는 안쳐줘도 되나, 콘솔을 이용하는 SQL PLUS 창에서는 이걸 쳐줘야 코드의 끝을 알릴 수 있음
z=30입니다.
z=30입니다.
12
김연아는 서울에 살고있습니다.
PL/SQL 처리가 정상적으로 완료되었습니다.
1-2. 사용자 입력을 받아 사용하는 방법을 알 수 있는 기본예제
사용자 입력을 받고 싶다면 '&아무거나' 를 위치시키면 되는데 아래와 같이 사용하면 된다.
* '& '안에 들어가있는 문자열에 공백이 있으면 에러나니 이 부분을 주의하여 사용하자.
-- 사용자한테 입력받은 값으로 변수를 초기화 하거나 입력받자마자 사용하는 예시
-- 아래서 사용자에게 입력받는 값은 총 3개임에 주의하자
declare
x number := '&x값'; -- 사용자로부터 입력받아 초기화
y number := '&y값'; -- 사용자로부터 입력받아 초기화
begin
dbms_output.put_line('3개 총 합 = ' ||(x + y + '&k')||'입니다.');
end;
/
x값의 값을 입력하십시오: 10
구 2: x number := '&x값'; -- 사용자로부타 입력받아 초기화
신 2: x number := '10'; -- 사용자로부타 입력받아 초기화
y값의 값을 입력하십시오: 10
구 3: y number := '&y값'; -- 사용자로부타 입력받아 초기화
신 3: y number := '10'; -- 사용자로부타 입력받아 초기화
k의 값을 입력하십시오: 10
구 5: dbms_output.put_line('3개 총 합 =' ||(x + y + '&k')||'입니다.');
신 5: dbms_output.put_line('3개 총 합 =' ||(x + y + '10')||'입니다.');
3개 총 합 = 30입니다.
PL/SQL 처리가 정상적으로 완료되었습니다.
'K-DigitalTraining 강의 > 2. Oracle + PLSQL' 카테고리의 다른 글
[6주차] 29. PL/SQL언어, INSERT, UPDATE, DELETE 쿼리 사용방법 (0) | 2022.06.16 |
---|---|
[6주차] 28. PL/SQL언어, SELECT into from쿼리(결과가 1개 행만 나오는 쿼리에서 값을 가져올 수 있음) (0) | 2022.06.16 |
[6주차] 26. 부모 테이블이 존재하도록 특정 필드를 foreign key(=자식키)로 지정하는 방법*** (0) | 2022.06.16 |
[6주차] 25. 상위 N개의 데이터를 추출하는 Top N 쿼리(Inline View, 특수컬럼)*** (0) | 2022.06.15 |
[6주차] 24. 셀프 조인 (0) | 2022.06.15 |