oracle
-
INDEXDB/SQL 2024. 7. 29. 19:59
/*INDEX-- SQL SELECT 처리 속도를 향상 시키기 위해 컬럼에 대해 생성하는 객체자동 정렬 및 검색 속도 증가조회 시 테이블의 전체 내용을 확인하며 조회하는 것이 아니라 인덱스가 지정된 컬럼만 이용해서 조회하기 때문에 시스템 부하가 낮아짐주의할 점데이터 변경(INSERT, UPDATE, DELETE) 작업시시스템 과부하가 늘어 성능이 낮아짐인덱스도 하나의 객체이다보니 별도 저장공간이 필요하기 때문에 메모리 소비인덱스 생성시간 필요[작성법]- 생성하기CREATE [UNIQUE] INDEX 인덱스명ON 테이블명 (컬럼명[,컬럼명 | 함수명]);- 삭제하기DROP INDEX 인덱스명;인덱스가 자동으로 생성되는 경우PRIMARY KEY 또는 UNIQUE 제약 조건이 설정된 컬럼에 대해UNIQUE I..
-
문자대소문자구분,결합DB/SQL 2024. 7. 24. 21:32
/*LOWER / UPPER INITCAP컬럼의 문자 혹은 문자열을 소문자 대문자 첫글자만 대문자로 변환해서 반환*/-- 사용법 LOWER : 모두 소문자로 변환해서 적용SELECT LOWER('wELCOME tO mY wORLD')FROM DUAL; -- welcome to my world-- 사용법 UPPER : 모두 대문자로 전환해서 적용SELECT UPPER('wELCOME tO mY wORLD')FROM DUAL; -- WELCOME TO MY WORLD-- 사용법 INITCAP : 첫 글지만 대문자로 변환해서 적용SELECT INITCAP('wELCOME tO mY wORLD')FROM DUAL; -- Welcome To My World-- 문자 처리 함수 CONCAT/*CONCAT : 컬럼의..
-
ROWNUMDB/SQL 2024. 7. 23. 20:44
/*ROWNUM쿼리의 결과 집합에서 각 행에 순차적으로 1 부터 시작하는 번호를 부여결과 집합의 크기를 제한*/-- 예제 1 : 상위 5 개의 행만 선택하는 예제SELECT ROWNUM,EMP_ID, EMP_NAME, SALARYFROM EMPLOYEEWHERE ROWNUM 5; -- 나오지 않음-- ROWNUM 은 무조건 1 부터 시작하기 때문에 5 이후는 처음부터 나올 수 없는 조건-- 랭킹-- ROWNUM 을 이용해서 월급이 가장 높은 3 명을 뽑으려 했지만 되지 않음SELECT ROWNUM, EMP_NAME, SALARYFROM EMPLOYEEWHERE ROWNUM
-
VIEWDB/SQL 2024. 7. 17. 21:05
/*VIEW - 논리적 가상 테이블-> 테이블 모양을 하고 있지만 ,실제로 값을 저장하고 있진 않음SELECT 문의 실행된 결과(RESULT SET)를 저장하는 객체VIEW 사용 목적복잡한 SELECT 문을 쉽게 재사용하기 위해테이블의 진짜 모습을 감출 수 있어 보안상 유리VIEW 사용시 주의사항가상 테이블(실체 없음) 이기 때문에 ALTER 구문 사용 불가VIEW 를 이용한 DML(INSERT, UPDATE, DELETE)이 사용 가능한 경우도 있지만제약이 많이 따르기 때문에 조회(SELECT) 용도로 많이 사용VIEW 작성법CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW 뷰이름 [컬럼 별칭]AS 서브쿼리 (SELECT 문)[WITH CHECK OPTION][WITH REA..
-
SUBQUERYDB/SQL 2024. 7. 5. 21:36
/***** SUBQUERY 실습 *****/-- 1. 각 직원의 급여가 부서 평균 급여보다 높을 직원들의 이름과 급여 조회하기-- 1) 부서 평균 급여 구하기SELECT AVG(SALARY) FROM EMPLOYEE E WHERE DEPT_CODE = E.DEPT_CODE;-- 2) 직원들의 이름과 급여 조회SELECT EMP_NAME, SALARY FROM EMPLOYEE WHERE SALARY > 3089820;-- 3) 서브쿼리 이용해서 한번에 쿼리 작성하기SELECT EMP_NAME, SALARY FROM EMPLOYEE WHERE SALARY > (SELECT AVG(SALARY) FROM EMPLOYEE E WHERE DEPT_CODE = E.DEPT_CODE);-- 2. 최대 급여를 받는 ..
-
JOINDB/SQL 2024. 7. 4. 19:53
/*[JOIN]- 하나 이상의 테이블에서 데이터를 조회하기 위해 사용- 수행결과는 하나의 RESULT SET 으로 나옴- 관계형 데이터베이스에서 SQL 이용해 테이블간 관계를 맺는 방법- 관계형 데이터베이스는 최소한의 데이터를 테이블에 담고 있어 원하는 정보를 테이블에서 조회하려면 한 개 이상의 테이블에서 데이터를 읽어와야 하는 경우가 많음 이 때, 테이블간 관계를 맺기 위한 연결고리 역할이 필요한데 두 테이블에서 같은 데이터를 저장하는 컬림이 연결고리가 됨 등가 JOIN --> 내부조인(INNER JOIN), JOIN USING, ON, 자연조인(NATURAL JOIN)포괄 JOIN --> 왼쪽외부조인(LEFT OUTER), 오른쪽외부조인(RIGHT OUTER), 전체외부조인(FULL OU..
-
INSERTDB/SQL 2024. 7. 1. 20:05
/*******DML : 데이터 조작 언어테이블에 값을 삽입하거나 수정하거나 삭제하는 구문INSERT : 삽입UPDATE : 수정DELETE : 삭제한 후에 반드시 COMMIT ROLLBACK 진행할 것COMMIT ROLLBACK - 팀원이나 다른 사람과 상의 후 진행개발 연습이기 때문에 단독으로 진행해도 좋음********/CREATE TABLE EMPLOYEE2 AS SELECT * FROM EMPLOYEE;SELECT * FROM EMPLOYEE2;CREATE TABLE DEPARTMENT2 AS SELECT * FROM DEPARTMENT;SELECT * FROM department2;------------------------------------ 1. INSERT -- 테이블에 새로운 행..
-
SELECTDB/SQL 2024. 6. 26. 21:27
SELECT(조회)지정된 테이블에서 원하는 데이터를 선택해서 조회하는 SQL작성된 구문에 맞는 행, 열 데이터가 조회됨 -> 조회된 결과 행의 집합 == RESULT SET(결과 집합) - RESULT SET 은 0 행 이상이 포함될 수 있음 -> 조건에 맞는 행이 없을 수 있다는 것*//*[SELECT 작성법 -1 (기초)]SELECT 컬럼명, 컬럼명, ... FROM 테이블명 -> 지정된 테이블 모든 행에서 컬럼명이 일치하는 컬럼값 조회 테이블의 모든 행 모든 컬럼 조회하는 방법 *(asterisk) : 모든, 포함하다를 나타내는 기호*/-- EMPLOYEE 테이블에서-- 모든 행의 사번(EMP_ID), 이름(EMP_NAME), 급여(SALARY) 조회SELECT EMP_ID,..