본문 바로가기

Database

(16)
8. 서브쿼리 서브쿼리 하나의 SQL문장 안에 포함된 또 하나의 SQL 문장 예제: 사원 smith의 부서명 조회 단일행 서브쿼리 - 서브쿼리의 결과가 한 개의 행만 나오는 것. - 메인쿼리의 WHERE 절에서 단일행 연산자만 사용해야 한다.(=, , >, =, = (SELECT AVG(sal) FROM emp_table); 다중행 서브쿼리 - 서브쿼리의 결과가 두 건 이상 출력. - 단일행 연산자는 사용할 수 없으며 다중행 연산자를 사용해야 한다. * 다중행 연산자: IN, NOT IN, ANY, ALL, EXISTS 1. IN연산자(≒OR연산자) 예제: 급여를 3000 이상 받는 사원이 소속된 부서와 동일한 부서에서 근무하는 사원 조회 * NOT IN은 반대의 결과 가져옴 SELECT ename, sal, dept..
7. JOIN JOIN이란? - 둘 이상의 테이블을 연결하여 데이터를 검색 - 일반적으로 테이블의 식별키인 Primary Key와 공통키인 Foreign Key값을 사용하여 조인 JOIN의 종류 - Equi Join: 동일한 칼럼을 기준으로 조인 - Non Equi Join: 동일한 칼럼 없이 다른 조건을 사용하여 조인 - Other Join: 조인 조건에 만족하지 않는 행도 나타냄 - Self Join: 한 테이블 내에서 조인 - Inner Join: 일반적인 Join에서 ,(콤마) 대신 INNER JOIN절을 사용 → 조건을 만족하는 행만 반환 - Outer Join: 조인 조건을 만족하지 못하는 행들을 같이 조인하기 위하여 사용 → 조건을 만족하지 않는 행도 반환 1. Equi Join - 조인을 할 대상 테이블..
6. DML/TRANSACTION DML(data manipulation language) : 데이터 조작어 데이터를 조회(SELECT), 삭제(DELETE), 입력(INSERT), 변경(UPDATE)하여 데이터를 조작하는데 사용하는 SQL구문 1. INSERT INSERT INTO 테이블이름(컬럼명1, 컬럼명2../모든 컬럼에 입력시 생략) VALUES(값1, 값2...) 2. UPDATE -- 형식: UPDATE 테이블이름 SET 컬럼명 = 변경할 값 WHERE 조건; -- 예시 UPDATE emp_table SET ename = 'John' WHRE ename = 'Joohn'; 3. DELETE : 테이블의 행을 삭제 DELETE 테이블이름 WHERE 조건; 4. MARGE : 조건에 따라 삽입, 갱신, 삭제 후 갱신 작업을 한번..
5. 단일함수/그룹함수/CASE문 단일함수 숫자함수 함수 설명 예시 ABS 숫자의 절댓값 SELECT ABS(-100) FROM dual; -> 결과: 100 ROUND(a, b) 숫자를 반올림 (a: 변환할 숫자 / b: 반올림할 자리) * 반올림할 자리가 소수점: 양수 / 정수: 음수 SELECT ROUND(12.345, 2) FROM dual; -> 결과: 12.35 TRUNC(a, b) 숫자 버림 SELECT TRUNC(99.9, -1) FROM dual; -> 결과: 90 MOD(a, b) a를 b로 나누고 나머지 값 조회 SELECT MOD(21, 5) FROM dual; -> 결과: 1 CEIL 주어진 숫자에서 가장 근접한 큰 정수 조회 SELECT CEIL(123.1) FROM dual; -> 결과: 124 FLOOR 주어..
4. SQL언어의 종류 / SELECT / WHERE / 연산자 SQL 언어의 종류 1. DQL(질의어, Data Query Language) : SELECT(조회) ​ 2. DML(데이터 조작어, Data Manipulation Language) → 입력 후 COMMIT; : INSERT(입력), UPDATE(수정), DELETE(삭제), MERGE(입력수정삭제 한번에 실행) ​ 3. DDL(데이터 정의어, Data Definition Language) : CREATE(생성), ALTER(변경), DROP(삭제), RENAME(이름 변경), TRUNCATE(데이터 삭제) ​ 4. DCL(데이터 제어어, Data Control Language) : GRANT(권한부여), REVOKE(권한회수) ​ 5. TCL(트랜잭션 제어 언어, Transaction Control ..
3. 인덱스 인덱스란? - 데이터베이스 객체 중 하나로 테이블에 인덱스를 작성하며 검색속도를 향상시킬 수 있다. - 테이블과 별개로 독립적 객체로 작성되나, 테이블에 의존적이다. - 기본키와 같은 제약조건이 지정되면 따로 인덱스 생성을 안하더라도 해당 키에 자동으로 인덱스가 생성된다. 인덱스의 필요성 1. 구별될 값이 많은 컬럼 2. WHERE 조건절에서 자주 조회되는 컬럼 3. 큰 테이블에서 적은 데이터가 필요할 때 (검색 결과가 전체 데이터의 아주 소수일 때) 4. JOIN에 자주 사용되는 컬럼 5. NULL을 포함하는 행이 많은 컬럼 인덱스가 불필요한 경우 1. 데이터가 적음 2. 조회보다 삽입, 수정, 삭제 처리가 많은 테이블 3. 조회 결과가 전체 행의 15% 이상으로 조회될 것 같은 경우 인덱스 생성 CR..
2. 테이블 생성,변경,삭제 / 자료형 / 제약조건 사용자 계정 생성하기 -- 생성 CREATE USER user1 IDENTIFIED BY 1234; -- 권한부여 GRANT CONNECT, RESOURCE TO user1; -- CONNECT: 데이터베이스 접근 권한 -- RESOURCE: 특정 객체(CREATE, SELECT, INSERT 등)를 생성하고 조작할 권한 -- user1의 권한 조회 SELECT * FROM dba_role_privs WHERE upper(grantee) = 'USER1'; 테이블 생성 및 값 입력(CREATE, INSERT) 각 컬럼들을 괄호로 묶어 지정하며 반드시 데이터타입도 지정해야 한다. 테이블 내 컬럼은 같은 이름을 가질 수 없다 -- 형식: CREATE TABLE 테이블이름(속성1 데이터형, 속성2 데이터형....
1. DBMS란? DBMS(Database Management System) 응용프로그램과 데이터베이스의 중간 역할로 모든 응용프로그램들이 데이터베이스를 공유할 수 있도록 관리해주는 시스템 DBMS의 종류 계층형 DB 트리형 구조 / 부모-자식 형태를 갖는 구조(자식은 하나의 부모를 가짐) 네트워크형 DB 트리형 구조 / 다양한 관계를 갖는 구조(자식이 여러 부모를 가질 수 있음) 관계형 DB 키와 값들의 관계로 테이블 구조로 만듦(현재 많은 데이터베이스가 적용하고 있음 ex: oracle) NoSQL DB 관계형 데이터베이스 / 덜 제한적인 일관성 모델을 이용하는 메커니즘 제공(빅데이터 등 상업적 용도多) 관계형 데이터베이스의 특징 1. 정보 저장을 위하여 테이블 이용 행(row) 열(column) 2. 데이터베이스 생..