Oracle 7

[SQL]SQL -Day. 6

저장 프로시저([Stored] Procedure) 프로시저는 복잡한 처리의 SQL에 사용한다. 프로시저는 RETURN문이 없다. OUT 매개변수로 값을 RETURN한다. 저장 프로시저의 장점 매우 좋은 성능(최초 실행시에만 parsing(분석)하며 이후부터는 바로 실행한다.) 보안성을 높일 수 있다. 다양한 처리가 가능하다 네트워크의 부하를 줄일 수 있다.(1.과 동일한 이유) 프로시저 구문 CREATE [OR REPLACE] PROCEDURE 프로시저명 [( 매개변수 IN 자료형, //크기 지정 안함 매개변수 OUT 자료형, //출력용 매개변수 IN OUT 자료형 //입 출력용 EXEC시 숫자 전달 불가능 ,역시 변수 전달 )] IS [변수선언] BEGIN ........ END; / ▲ 내가 만든 M..

Oracle 2022.04.01

[SQL]SQL -Day. 5

트랜잭션 일련의 작업 처리 단위를 하나의 트랜잭션이라 한다. 일련의 작업에서 하나의 작업이라도 실패한다면 모든 작업을 취소시킨다.(ROLLBACK 한다고 한다) 일련의 작업이 정상적으로 끝나면 COMMIT 한다. - 오라클의 트랜잭션 제어 명령어 COMMIT : 모든 미결정 데이타를 영구적으로 변경함으로써 현재 TRANSATION을 종료 ROLLBACK [TO SAVEPOINT name] : 모든 미결정 데이터 변경을 원래대로 돌림으로써 현재의 TRANSATION종료 SAVEPOINT : TRANSATION내의 SAVEPOINT표시/ANSI 표준 SQL이 아님. - 자동 COMMIT일 얼어나는 경우 1. DDL/DCL문장 완료시 2. SQL*PLUS 정상 종료시(EXIT 한 경우) - 자동 ROLLBAC..

Oracle 2022.03.31

[SQL]DAY.4

FOR문 - 인덱스 카운터는 자동으로 선언된 변수 - FOR문은 1씩 밖에 증가 못한다. - 항상 초기값이 종료값보다 작아야한다. 초기값이 더 크면 반복하지 않는다. 예] FOR 인덱스 카운터 IN [REVERSE] 초기값 .. 종료값 LOOP statement1; statement2; END LOOP; ▲ REVERSE는 끝값부터 시작값까지 역순으로 진행 ▲PROMPT는 사용자로부터 입력을 받는 기능을 하는 함수다. 사용자로부터 값을 입력받아서 ACCEPT 뒤에 있는 변수명에 넣는다. PL/SQL문 밖에서 선언된 변수를 PL/SQL문 안에서 사용할 때는 앞에 '&'를 반드시 붙여서 구분하도록 하자! LOOP~ END LOOP; 시작부분과 끝부분을 의미하기 때문에 자바에서의 { } 처럼 사용되므로 꼭 열..

Oracle 2022.03.30

[SQL]SQL -Day.3

DEFAULT : 데이터 입력 시 해당 컬럼에 아무값도 입력하지 않았을 때 자동적으로 입력해주는 값이다.(제약명을 지정할 수 없다) ▲ COL4와 COL5는 각각 DEFAULT 값으로 Y와 100으로 설정했다. ▲ 위와같이 모든 데이터값을 정해서 넣어주면 디폴트 값은 아무 상관이 없다. ▲ 하지만 위 처럼 값으로 DEFAULT라고 입력해주면 기존에 정해놓았던 DEFAULT값이 자동으로 생성되어 들어가게 된다. CHECK - DOMAIN무결성 유지를 위한 제약으로 해당 컬럼에 잘못된 데이터가 입력 되지 않도록 유지하기 위한 제약조건이다. - 제약 조건은 QUERY조건과 동일하게 주면 된다 - 꼭 CHECK 함수를 쓰지 않아도 된다. 예] CHECK(regexp_like(컬럼명,'^[a-zA-Z]{3,10}..

Oracle 2022.03.29

[SQL]SQL -Day.2

JOIN문 1. INNER JOIN 두 개 이상의 테이블로부터 자료를 검색하기 위해서 join을 사용한다. 일반적으로 primary key(PK)와 foreign key(FK)를 이용하여 join하는 경우가 대부분이다. 가장 많이 사용되는 조인문으로 테이블 간에 연결 조건을 모두 만족하는 행을 검색하는데 사용한다 검색시 검색되는 Column이 join하는 테이블 모두에 존재한다면 반드시 컬럼명에 테이블 이름을 "테이블명.컬럼명"의 형태로 기술해야 한다. INNER JOIN은 자식테이블(FK가 있는 테이블)을 기준으로 모든 데이터를 가져온다. 예를들면 자식테이블에 전체 레코드가 10개이면 INNER JOIN한 결과의 레코드 수도 10개가 출력된다. SELECT 컬럼명.. FROM 테이블명1 (Inner) ..

Oracle 2022.03.28

[SQL]SQL -Day.1

SQL에서 Table에 저장된 데이터를 조회하고자 할 때 사용하는 질의어는 DML(Data Manipulation Language)이다. DML문을 이용해 Select(조회), Insert(삽입), Update(수정), Delete(삭제)를 한다. DML의 기본 형식은 다음과 같다. 위 쿼리들의 실행순서도 있는데 중요하며 다음과 같다. FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY 1. 모든 열 선택 SELECT 키워드에 " * " 를 사용하여 모든 열을 조회 할 수 있다. ▲ emp 테이블에서 모든열을 조회 및 출력한다. 2. 특정 컬럼 선택 Table의 특정 Column검색하고자 할 경우 Column이름을 " , "로 구분하여 명시함으로써 특정..

Oracle 2022.03.27

[SQL]What & why SQL

많은 회사들은 고객정보, 주문정보, 상품정보 등 주요한 데이터들을 RDBMS(Relational Database Management System) 저장하고 관리한다. RDBMS는 SQL 형태에 인터페이스를 제공한다. RDBMS에는 Oracle, My SQL, SQL 같은 것들이 있다. 데이터웨어 하우스를 구축하기 위해 많이 사용되는 Apache hive, Google bigquery, Amazon Athena 등 대부분 SQL 형태에 인터페이스 제공한다. 대부분 회사들은 SQL 인터페이스를 제공하는 서비스를 사용하여 데이터를 관리한다. 즉 이러한 환경 속에서 SQL을 통해 다양한 데이터에 접근이 가능하다. 즉, 데이터를 원하는대로 가공해서 처리, 이용하기 위해서 SQL을 사용한다. SQL(Structur..

Oracle 2022.03.27