SQL - 인덱스
·
DB/SQL
인덱스 데이터베이스 성능과 관련해서 매우 중요한 역할을 담당하는 오라클 객체 Database Buffer Cache : 물리적인 디스크 파일에 저장된 실 데이터를 임시적으로 메모리에 복사 저장 비어있는 상태로 시작됐다가 이후 사용자의 요청에 의해서 필요한 데이터를 물리적인 파일 에서 가져와 임시적으로 저장하게 된다. 물리적인 파일을 접근한다는 것은 파일 입출력이 발생되는 것으로서 데이터베이스 수행속도에 큰 영향을 미치게 된다. 많이 사용되는 데이터는 Database Buffer Cache에 저장해두고 자주 사용되지 않은 데이터는 디스크 파일에 저장했다가 필요할 때 Database Buffer Cache에 복사해서 쓴다. Database Buffer Cache에 필요한 데이터가 없어서 디스크 파일에서 찾을..
SQL - 뷰, 시퀀스, 시노님
·
DB/SQL
뷰(View) 테이블의 특정 컬럼 보호 복잡한 SQL문을 단순화 문법 CREATE [OR REPLACE] VIEW 뷰이름 [(alias[,alias] ...)] AS SUBQUERY [WITH CHECK OPTION [CONSTRAINT 제약조건명]] [WITH READ ONLY [CONSTRAINT 제약조건명] ]; 복잡한 SQL문을 단순화 하는 예시 -- 복잡한 SQL문 SELECT empno,ename, d.dname, d.deptno FROM emp e JOIN dept d ON e.deptno = d.deptno WHERE e.deptno = 20; -- VIEW를 이용해 단순화 CREATE VIEW emp_view AS SELECT empno,ename, d.dname, d.deptno FRO..
SQL - 테이블 변경 / 데이터 사전
·
DB/SQL
테이블 (Table) 변경 생성된 테이블에 대한 구조를 변경 컬럼의 추가,삭제 및 컬럼의 타입이나 길이 변경, 제약조건 추가,삭제 1. 컬럼 추가 ALTER TABLE 테이블명 ADD ( 컬럼명 데이터타입 [, 컬럼명 데이터타입]); 2. 컬럼 변경 컬럼에 대해서 데이터 타입이나 크기, DEFAULT 값을 변경 할 수 있다. 숫자 및 문자 컬럼의 전체 길이를 증가 또는 축소 시킬 수도 있으며 데이터 타입 변경도 가능하다. 단 모든 행의 컬럼이 널 (null)이거나 행이 없는 경우에만 컬럼 길이 축소와 데이터 타입 변경이 가능하다. ALTER TABLE 테이블명 MODIFY ( 컬럼명 데이터타입 [, 컬럼명 데이터타입]); 3. 컬럼 삭제 컬럼은 값의 존재여부와 상관없이 무조건 삭제된다. 한꺼번에 여러 개..
SQL - DDL
·
DB/SQL
데이터 딕셔너리 자원을 효율적으로 관리하기 위한 다양한 정보를 저장하는 시스템 테이블 사용자가 테이블을 생성하거나 사용자를 변경하는 등의 작업을 할 때 데이터베이스 서버에 의해 자동으로 갱신되는 테이블 USER_TABLES : 사용자가 작성한 테이블을 확인하는 뷰 SELECT * FROM USER_TABLES;​ DESC : 테이블의 구조 표시 DESC MEMBER;​ DDL ( Data Definition Language) 개념: 오라클의 5가지 객체를 생성, 수정, 삭제, 절삭 가능 5가지 객체 테이블(table) : 기본적인 데이터 저장 단위로 행과 열로 구성된 객체 인덱스(index) : 테이블에 젖아된 데이터의 검색 성능 향상 목적을 위한 객체 뷰(view) : 한 개 이상의 테이블의 논리적인 ..
SQL - DML
·
DB/SQL
모든 DML 작업은 메모리에서만 적용된다. 물리적인 파일에 반영이 안된 상태. 물리적인 파일로 변경하는 작업이 COMMIT (파일에 반영) 메모리에서만 쓰고 없어지는 게 ROLLBACK (취소) 1. INSERT 문 용도: 새로운 레코드(행) 생성 종류 단일 테이블의 단일행 생성 (기본적으로 INSERT문 의미) 1. 컬럼명 지정 (권장 방법) INSERT INTO 테이블명 (컬럼명,컬럼명2) VALUES (값,값2); - 명시된 컬럼명에 일대일 대응되어 값이 저장이 된다. ( 갯수일치, 데이터타입 일치, 크기 일치 ) - 명시되지 않은 컬럼의 값은 NULL이 자동으로 저장된다. - 주요 특징은 저장하고 싶은 컬럼만 지정할 수 있다. (나머지는 NULL로 저장됨) 2. 컬럼명 미지정 INSERT INTO..
SQL - 다중 컬럼 서브쿼리 / 인라인 뷰
·
DB/SQL
-- -- 서브쿼리에서 여러 개의 컬럼값을 검색하여 메인쿼리의 조건절과 비교하는 서브쿼리 -- 컬럼을 쌍으로 묶어서 동시에 비교하는 pairwise 방식 -- 컬럼별로 나누어 비교하고 나중에 AND 연산으로 처리하는 unpairwise 방식 SELECT last_name, department_id, salary FROM employees WHERE (department_id, salary) IN ( SELECT department_id, MAX(salary) FROM employees GROUP BY department_id ) ORDER BY 2; -- -- -- FROM 절에서 사용하는 서브쿼리 -- FROM절에서 참조하는 테이블의 크기가 클 경우에 필요한 행과 컬럼만으로 구성된 집합을 -- 재정의하..
SQL - 단일행/복수행 서브쿼리
·
DB/SQL
-- : 서브쿼리가 실행되어 반드시 한 개의 행을 반환하는 서브쿼리 -- 1. 비교 연산자 -- : 서브쿼리가 실행되어 반환되는 결과가 하나 이상의 행일 때 사용하는 서브쿼리 -- -- 1. IN 연산자: 서브쿼리 반환값이 복수이고 메인 쿼리와 동등 연산자(=) 방식으로 비교할 때 SELECT last_name, salary FROM employees WHERE salary IN ( SELECT salary FROM employees WHERE last_name IN ('Whalen','Fay') ); -- 2. 다중 연산자 > ALL : 최대값보다 큰 값을 조회 ( 최대 월급보다 많은 ) SELECT last_name, department_id, salary FROM employees WHERE sal..
SQL - 서브쿼리(sub query)
·
DB/SQL
서브쿼리 (sub query) query => select문 의미 sub query는 하나의 SQL문에 여러 개의 select문을 사용할 수 있다. 이유? 하나의 select문으로는 원하는 데이터를 못 얻을 때 사용 가능한 SQL **select 문** ( where절, from절, select, having절 ) **DML 문** ( insert, update, delete문 ) **DDL 문** ( create 문 ) **==> 값을 지정할 수 있는 곳이면 sub query 사용 가능하다.** sub query 특징 반드시 () 사용 다른 main sql문보다 먼저 실행하고 실행된 결과를 가지고 main sql문이 사용한다. main query와 sub query 간에 사용되는 연산자는 정해져 있다...
SQL - 그룹함수
·
DB/SQL
그룹함수 그룹핑 방법 기본적으로 테이블은 하나로 묶여 있음 - 그룹함수를 제한없이 사용할 수 있다. 가. 자동으로 묶임 나. 명시적으로 묶임 - 요청 text가 ~별로 요청하면 무조건 묶어야 된다. 예)학년별, 부서별, 성별, ... - group by 표현식 해석 순서 ⑤ SELECT 컬럼명 | 함수식 ① FROM 테이블명 [ + JOIN ] ② WHERE 컬럼명 | 함수식 비교연산자 비교값 ③ GROUP BY 컬럼명 ④ HAVING 그룹함수식 비교연산자 비교값 ⑥ ORDER BY 컬럼명 | 순번 | 별칭 정렬기준 SUM 함수 널(null)값을 제외한 해당 컬럼 값들의 총합을 구하는 함수 인자로 DISTINCT를 사용하면 중복된 값을 제외하고 총합 계산이 처리된다. ALL은 중복된 값을 모두 포함하여 ..
SQL - 날짜함수, 변환함수, 조건함수
·
DB/SQL
날짜 함수 select * from NLS_SESSION_PARAMETERS; create table exam (a date, b date); insert into exam (a, b) values (to_date('15/01/01','RR/MM/DD'), to_date('15/01/01','YY/MM/DD')); select to_char(a, 'RRRR'), to_char(b, 'YYYY') from exam; -- 시스템의 년도를 1995년도 변경 insert into exam (a, b) values (to_date('15/01/01','RR/MM/DD'), to_date('15/01/01','YY/MM/DD')); select to_char(a, 'RRRR'), to_char(b, 'YYYY')..
xoo | 수진
'DB/SQL' 카테고리의 글 목록