본문 바로가기

분류 전체보기

(71)
9. 집합연산자 집합연산자 두 개 이상의 쿼리 결과를 하나로 결합시키는 연산자 1. UNION 여러개의 SQL문의 결과(중복 제거)에 대한 합집합 예제: salesman과 mamger의 결과 결합 SELECT ename, job FROM emp_table WHERE job = 'SALESMAN' UNION SELECT ename, job FROM emp_table WHERE job = 'MANAGER'; 2. UNION ALL 여러개의 SQL문의 결과(중복 포함)에 대한 합집합 예제: 급여가 1000 미만인 직원, 2000 미만인 직원을 조회하여 결합 SELECT ename, sal FROM emp_table WHERE sal < 1000 UNION ALL SELECT ename, sal FROM emp_table WH..
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 데이터형....