반응형

Database 22

[SQL] INDEXES (인덱스)

인덱스 생성CREATE INDEX index_name ON table_name (column_name); Multi Column Indexes 생성CREATE INDEX index_name ON table_name (column_name1, column_name2); 인덱스 제거DROP INDEX index_name; 자동 인덱스 생성SQLite, MYSQL 의 경우 기본적으로 기본키(primary key) 나 고유 제약 조건 (unique)이 설정된 컬럼에 대해 자동으로 인덱스를 생성함 인덱스 최적화 고려사항- 인덱스를 너무 많이 생성하면 검색 속도는 향상되지만, 데이터 삽입 수정 삭제 작업이 느려짐. 데이터 삽입 수정 삭제 시 인덱스도 갱신(update) 해야 하기 때문- 자주 검색하는 컬럼에 인덱스..

Database 2025.07.09

[MySQL] 테이블 분할 & 분석(PARTITION BY)

순위함수를 이용하여 순위 매기기 SELECT 컬럼 이름, 순위함수() OVER (ORDER BY 컬럼이름) FROM 테이블 이름 순위함수 설명 RANK() 중복 순위 적용, 다음 순위가 중복 순위 적용 후 순위 예) 1, 2, 2, 4 DENSE_RANK() 중복 순위 적용, 다음 순위는 중복 순위 적용 + 1 예) 1, 2, 2, 3 이전 행, 다음 행 가져오기 SELECT 컬럼이름, 이동함수(컬럼이름, offset) OVER (ORDER BY 컬럼이름) FROM 테이블이름 이동함수 설명 LAG() 이전 행 가져오기 LEAD() 다음 행 가져오기 테이블 분할 & 분석(PARTITION BY) SELECT 컬럼이름, 함수() OVER(PARTITION BY 컬럼이름 [ORDER BY 컬럼이름]) FROM..

Database 2023.11.25

[오라클DB] PL/SQL 프로시저 반복문 - 0329 2교시

--0329 DB7 2교시 : 프로시저 반복문 -- FOR ~ LOOP, END LOOP --부서번호를 받아서 해당 부서사람의 사번, 이름, 급여 정보 출력 SET SERVEROUTPUT ON; SELECT * FROM EMP; CREATE OR REPLACE PROCEDURE LOOP_TEST1 ( P_DEPTNO IN EMP.DEPTNO%TYPE) IS TYPE EMPNO_TABLE IS TABLE OF EMP.EMPNO%TYPE INDEX BY BINARY_INTEGER; TYPE ENAME_TABLE IS TABLE OF EMP.ENAME%TYPE INDEX BY BINARY_INTEGER; TYPE SAL_TABLE IS TABLE OF EMP.SAL%TYPE INDEX BY BINARY_INT..

Database 2023.03.29

[오라클DB] 프로시저 복습문제 - 0329 1교시

--0329 DB7 1교시 : 프로시저 복습 2 문제 --1. 프로시저 이름 : UPDATE_TEST1 --2. 호출 방법 : EXECUTE UPDATE_TEST1(101, 5); --3. 결과 : ENROL 테이블의 SUB_NO가 101인 학생들의 GRADE를 5증가 SELECT * FROM ENROL; CREATE OR REPLACE PROCEDURE UPDATE_TEST1 ( P_NO IN ENROL.SUB_NO%TYPE, P_GRADE IN ENROL.ENR_GRADE%TYPE) IS BEGIN UPDATE ENROL SET ENR_GRADE = ENR_GRADE + P_GRADE WHERE P_NO = SUB_NO; COMMIT; END UPDATE_TEST1; / EXECUTE UPDATE_T..

Database 2023.03.29

[DB] SQL 기본

데이터 조작어 - 검색 SELECT 문의 문법 SELECT 속성이름(들) FROM 테이블이름(들) [WHERE 검색조건(들)] [GRUOP BY 속성이름] [HAVING 검색조건(들)] [ORDER BY 속성이름 [ASC | DESC]] 데이터 정의어 CREATE 문 CREATE TABEL 테이블 이름 ALTER 문 ALTER TABLE 테이블 이름 DROP 문 DROP TABLE 테이블 이름 데이터 조작어 - 삽입, 수정, 삭제 INSERT 문 INSERT INTO 테이블이름[(속성리스트)] VALUES (값리스트); UPDATE 문 UPDATE 테이블 이름 SET 속성이름 1=값 1 [, 속성이름 2=값 2, ... ] [WHERE ]; DELETE 문 DELETE FROM 테이블 이름 [WHERE ..

Database 2023.03.29

[오라클DB] 뷰 VIEW

-- 뷰(VIEW) 하나 이상의 테이블을 합쳐 만든 가상의 테이블 -- UPDATE로 수정하면 안됨. 원본 테이블 회손하면 안됨. --뷰 생성 : 사번, 이름, 직책, 사수번호, 급여, 입사일, 부서번호, 부서명, 부서위치, 급여 등급 CREATE VIEW VI_EMP2 AS SELECT EMPNO,ENAME,JOB,MGR,SAL,HIREDATE,E.DEPTNO,DNAME,LOC,GRADE FROM EMP E LEFT JOIN SALGRADE S ON SAL BETWEEN LOSAL AND HISAL LEFT JOIN DEPT D ON D.DEPTNO = E.DEPTNO; -- 뷰 확인 SELECT * FROM VI_EMP2; --뷰 생성 : VI_EMP3 (읽기 전용) CREATE VIEW VI_EMP..

Database 2023.03.28

[오라클DB] 시퀀스 SEQUENCE

--시퀀스 --숫자를 자동으로 증가시켜줌 SELECT * FROM DUAL; SELECT * FROM TEST_BOARD; --DELETE FROM TEST_BOARD; INSERT INTO TEST_BOARD VALUES (T_SEQ.NEXTVAL,'곤니치와'); --DROP SEQUENCE T_SEQ; CREATE SEQUENCE T_SEQ2 INCREMENT BY 1 -- 1씩 증가 START WITH 1 -- 시작값 MINVALUE 1 -- 최소값 MAXVALUE 1000 -- 최대값 NOCYCLE; --순환 (CYCLE, NOCYCLE) -- 다음값 SELECT T_SEQ2.NEXTVAL FROM DUAL; -- 시퀀스 현재값 SELECT T_SEQ2.CURRVAL FROM DUAL;

Database 2023.03.28
반응형