[sql]Procedure(프로시저)
·
SQL
:저장할 수 있는 준비된 SQL 코드로, 코드를 계속 다시 사용할 수 있다. 따라서 반복적으로 작성하는 SQL 쿼리가 있는 경우 이를 저장 프로시저로 저장한 후 호출하여 실행하기만 하면 된다.1. FUNCTION   -- 함수    - 결과값 반드시 한개만 돌려준다(RETURN 문 사용) 2. PROCEDURE  -- 프로시저(SUBROUTINE)   - 결과가 없거나 여러개일때  107 번 직원의 이름과 월급 조회 SELECT FIRST_NAME || ' ' || LAST_NAME 직원이름, SALARY 월급 FROM EMPLOYEES WHERE EMPLOYEE_ID = 107;stored procedureCREATE PROCEDURE 프로시저명 (매개변수 목록)BEGIN SQL 명령..
[SQL] DB LOCK
·
SQL
DB LOCK 개념DBLock (Database Locking)은 데이터베이스에서 동시성 제어를 위해 사용되는 메커니즘이다. 여러 사용자가 동시에 데이터에 접근할 때 데이터의 무결성을 유지하고 충돌을 방지하기 위해 락을 설정하게 된다.1)SQLDEVELOPER 에서 실행CREATE TABLE TABLE1 ( EMPID NUMBER(6,0) NOT NULL PRIMARY KEY, ENAME VARCHAR2(30 BYTE) NULL, TEL VARCHAR2(20 BYTE) NULL, EMAIL VARCHAR2(320 BYTE) ); INSERT INTO TABLE1(EMPID,ENAME,TEL,EMAIL)  VALUES(100,'가나','010','KANA'); 실행------..
[SQL] TRRIGER(트리거), TRANSACTION(트랜잭션)
·
SQL
트리거 : TRIGGER 방아쇠SQL의 트리거(Trigger)는 특정 이벤트가 발생할 때 자동으로 실행되는 일련의 SQL 문이다.  예들 들어,  회원정보가 추가되면 로그에 기록을 남기는 작업을 해야 할때, 게임에서 몬스터를 죽이면 해당 로그가 매번 기록되는 상황들이 있다. 트리거는 주로 데이터 무결성을 유지하고, 특정 작업을 자동화하는 데 사용된다.    1. 트리거의 종류 BEFORE 트리거: 데이터가 삽입, 수정, 삭제되기 전에 실행된다. 이 트리거는 작업을 수행하기 전에 데이터를 검증하거나 변형하는 데 유용하다.AFTER 트리거: 데이터가 삽입, 수정, 삭제된 후에 실행된다. 주로 로그 기록이나 다른 테이블에 데이터 복사 등의 작업에 사용된다.INSTEAD OF 트리거: 뷰에 대해 사용되며, 뷰에..
[SQL]VIEW - 가상의 테이블
·
SQL
CREATE OR REPLACE VIEW 뷰이름 AS SELECT문; 뷰(VIEW): 하나 이상의 테이블의 데이터를 기반으로 하는 가상의 테이블단순화: 복잡한 쿼리를 단순화하여 사용자가 쉽게 데이터에 접근할 수 있도록 한다.보안: 특정 열이나 행을 숨길 수 있어 사용자에게 필요한 데이터만 노출할 수 있다.재사용성: 자주 사용하는 쿼리를 뷰로 정의해 놓으면 코드의 재사용이 가능해진다.데이터 일관성: 뷰를 통해 여러 사용자나 애플리케이션이 동일한 데이터 집합을 사용할 수 있다.예시뷰 생성CREATE OR REPLACE VIEW VW_EMP_INFO --REPLACE: 없으면 만들고 있으면 덮어쓰기(ORACLE에만 있는 기능, 다른 곳에서는 ALTER를 쓰거나 DROP을 해야함.)AS SELECT EMP..
[SQL]PIVOT(행을 열로 전환)/UNPIVOT
·
SQL
테이블 생성참고 :[sql]테이블생성∙수정∙삭제, 제약조건, 데이터 삽입∙수정∙삭제 [sql]제약조건, 데이터 삽입∙수정∙삭제학생          : 학번(PK),    이름,        전화,   입학일 STUDENT     STID      STNAME PHONE INDATE 🐲제약조건(CONSTRAINTS)TABLE 에 저장될 데이터에 조건을 부여하여 잘못된 DATA 입력되는 것o94777.tistory.com 모든 학생의 학번, 이름, 과목점수 조회하기SELECT ST.STID 학번,ST.STNAME 이름,SC.SUBJECT 과목,SC.SCORE 점수FROM student ST left join scores SC on ST.STID=SC.STIDAND (SC.SUBJECT='국어' or SC...
[sql]제약조건, 데이터 삽입∙수정∙삭제
·
SQL
학생          : 학번(PK),    이름,        전화,   입학일 STUDENT     STID      STNAME PHONE INDATE🐲제약조건(CONSTRAINTS)TABLE 에 저장될 데이터에 조건을 부여하여 잘못된 DATA 입력되는 것을 방지 1. 주식별자 설정:기본키    PRIMARY KEY :NOT NULL+UNIQUE 기본적용, CREATE명령문 안에서 한번밖에 사용못함    CREATE TABLE 명령안에 한번만 사용가능 2. NOT NULL / NULL : 필수입력, 컬럼단위 제약조건(컬럼에만 적용됨) 3. UNIQUE :줄단위 중복방지 4. CHECK : 값의 범위 지정{DOMAIN(들어갈 수 있는 제약조건의 범위 ex)성별:남,여,모름) 제약조건} 5. FORE..
[SQL]테이블 생성, 삭제, 변경
·
SQL
🐲기본개념P (Primary Key): 해당 열이 기본 키임을 나타낸다. 기본 키는 테이블 내에서 각 행을 유일하게 식별하는 데 사용된다. 원칙은 수정이 가능하지만, 외래키로 설정(자식이 있을때)되있을 때는 수정 불가하다.U (Unique Key): 해당 열이 고유 키임을 나타낸다. 고유 키는 중복된 값을 허용하지 않지만, 기본 키와는 달리 NULL 값을 허용할 수 있다.F (Foreign Key): 해당 열이 외래 키임을 나타낸다. 외래 키는 다른 테이블의 기본 키를 참조하여 두 테이블 간의 관계를 형성한다.*: 해당 열에는 NOT NULL임을 의미한다. 필수입력해야하는 셀이다참고: https://inpa.tistory.com/entry/DB-%F0%9F%93%9A-%EB%8D%B0%EC%9D%B4%..
[sql]오라클 계정생성
·
SQL
🐲계정(ACCOUNT) 생성 : 본인 이니셜(ex:hgd)/1234 ORACLE 은 DATA(TABLE)를 계정이 관리하는 TABLESPACE 에 저장 ∴계정생성은 다른 DB(MSSQL,MYSQL, ...)의 CREATE DATABASE 와 같은 의미를 가진다.   -> DATABASE 파일에 보관 아래 코드를 명령 프롬프트나 windows powershell에 차례대로 입력sqlplus /nolog conn /as sysdba alter session SET "_ORACLE_SCRIPT"=true; create user hgd identified by 1234; grant CONNECT, RESOURCE to kyj; alter user hgd default tablespace users quota ..
[SQL]WINDOW FUNCTION(윈도우 함수),분석함수(Analytic Function)
·
SQL
윈도우 함수(Window Function)는 데이터 집합의 각 행에 대해 계산을 수행하면서도, 전체 결과 집합에 대한 집계 결과를 제공하는 함수이다. 즉, 그룹화된 결과가 아닌, 원래의 데이터와 함께 결과를 제공한다. OVER() 절을 사용하여 특정 범위(윈도우)를 정의하고, 그 범위 내에서 계산을 수행한다.주요 특징행 유지: 윈도우 함수는 결과 집합의 각 행을 유지하면서 계산을 수행하고 집계 결과를 추가한다.프레임 정의: OVER() 절을 사용하여 어떤 행을 기준으로 계산할지를 정의할 수 있다. 이 절 안에서 PARTITION BY와 ORDER BY를 사용하여 데이터의 구분과 정렬을 설정할 수 있다.다양한 함수 지원: SUM, AVG, COUNT, RANK, ROW_NUMBER 등 다양한 집계 및 분석..
[sql] 계층형 쿼리(Hierarchical Query)
·
SQL
계층형 쿼리(Hierarchical Query)는 데이터베이스에서 부모-자식 관계를 가진 데이터를 조회할 때 사용하는 쿼리입니다. 주로 조직도, 파일 시스템, 제품 카테고리 등과 같이 계층 구조로 구성된 데이터를 다룰 때 유용하다. 🐲 주요 개념 부모-자식 관계: 각 데이터 항목은 부모와 자식 항목을 가질 수 있으며, 이를 통해 트리 구조를 형성한다. 루트 노드: 계층 구조의 최상위 노드를 의미한다. Leaf 노드: 자식이 없는 노드를 의미한다. 🐲주요 예약어START WITH: 계층 구조의 루트 노드를 지정한다.CONNECT BY: 계층형 쿼리를 작성해 부모와 자식 간의 관계를 정의합니다. PRIOR 키워드를 사용한다.PRIOR: 이전 단계의 값을 참조하는 데 사용된다.LEVEL: 긱 노드의 깊이를..