SQL(24)
-
[SQL] DML, Data Manipulation Language
DML 종류 INSERT UPDATE DELETE INSERT 테이블에 새로운 행을 추가하는 구문이다. INSERT INTO (, ) VALUES(, ); # VALUES가 문자일 경우 ' '를 붙여서 입력, 숫자일 경우 ' ' 없이 입력 1. 데이터 추가 INSERT INTO (, ) VALUES(, ); 2. 컬럼목록을 생략하는 경우 데이터 추가 INSERT INTO VALUES(, ); 3. 컬럼 목록에 모든 컬럼이 있지 않는 경우 INSERT INTO () VALUES (); 4. NULL을 명시적으로 저장하는 경우 INSERT INTO (, ) VALUES(, null); 5. 서브쿼리로 가져온 결과를 테이블에 저장하는 방법 INSERT INTO (, ) SELECT , FROM WHERE = ..
2022.03.11 -
DDL, Data Definition Language
오라클에서 관리할 대상인 데이터들은 저장 객체로 데이터베이스에 저장이 된다. 데이터베이스에 저장된 저장 객체를 오브젝트(Object)라고 부르고 데이터를 저장하기 위한 저장 공간을 세그먼트(Segment)라고 부른다. ⇒ 데이터베이스에 저장된 객체 : Object (테이블) ⇒ 데이터를 저장하기 위한 공간 : Segment 오브젝트들을 생성, 수정, 삭제 등 관리하기 위해 사용하는 언어를 DDL이라 부른다. DDL 종류 CREATE 테이블과 같은 오브젝트를 생성하는 명령어이다. ALTER 테이블과 같은 오브젝트 구조를 변경하는 명령어이다. DROP 테이블과 같은 오브젝트를 삭제하는 명령어이다. TRUNCATE 테이블과 같은 오브젝트를 전부 삭제하고 사용중인 공간을 반납하는 명령어이다. # DROP 테이블..
2022.03.11 -
수직 결합 SET OPERATOR
SELECT문을 통해 얻어온 결과들에 대하여 집합 연산을 할 수 있는 명령문이다. SELECT문을 통해 가져온 컬럼의 형태가 완전히 일치해야 한다. UNION 합집합 ⇒ 중복된 것 배제, 정렬 포함 UNION ALL 합집합 ⇒ 중복된 데이터 모두 가져온다. (정렬 없음) INTERSECT 교집합 ⇒ 중복된 것 배제 MINUS (MY SQL : EXCEPT) 차집합 ⇒ 중복된 것 배제 일반적인 사용 형태 SELECT , FROM SELECT , FROM SELECT , FROM
2022.03.11 -
다중행 서브쿼리 MULTI ROW SUBQUERY 연산자
서브쿼리를 통해 가져온 결과가 다중행 결과인 경우 사용하는 연산자이다. SELECT , FROM WHERE IN ( SELECT FROM WHERE > 값 ); IN 서브쿼리의 결과 중 하나라도 일치하면 조건은 TRUE ANY, SOME 서브쿼리의 결과와 하나이상 일치하면 조건은 TRUE ALL 서브쿼리 결과와 모두 일치해야 조건은 TRUE EXISTS 데이터의 존재 여부를 확인하는 쿼리에 해당, 만족하는 값이 없으면 공집합 반환
2022.03.11 -
서브쿼리
쿼리문(메인 쿼리) 안에 들어가는 쿼리문을 말한다. ⇒ 쿼리문 작성시 사용되는 값을 다른 쿼리에서 구해야 할 경우 사용한다. SELECT FROM WHERE = ( SELECT FROM WHERE = 값 ) 반환 되는 데이터의 형태에 따른 서브 쿼리의 분류 SCALAR SUBQUERY 서브 쿼리 결과가 1행, 1열인 서브 쿼리를 의미한다. ⇒ 값이 단 1개 SINGLE ROW SUBQUERY 서브 쿼리 결과가 단 1건 이하인 서브 쿼리를 의미한다. ⇒ 단일 행 비교하는 =, 비교 연산자 사용 MULTI ROW SUBQUERY 서브 쿼리의 실행 결과가 여러 행인 서브 쿼리를 의미한다. ⇒ IN, ALL, ANY, SOME, EXIST 비교 연산자 사용 MULTI COLUMN SUBQUERY 서브 쿼리의 결..
2022.03.11 -
계층형 쿼리
부모와 자식와 같은 구조를 계층형 구조라 부르는데 ORACLE에서 이러한 계층형 데이터를 분석하기 위한 기능을 제공한다. ⇒ 계층형 질의 동일 테이블에 상위, 하위 데이터가 존재하고 엔터티가 순환관계로 설계하는 경우 발생한다. # 계층형 질의는 SQL 서버에서는 지원하지 않는다. SELECT ~ FROM START WITH IS NULL CONNECT BY PRIOR = ; 1 한 테이블에 컬럼간 상하위 관계가 있는 경우 상위 컬럼이 NULL인 행을 먼저 출력을 한다. 2 그 이후 CONNECT BY 절에 의해 이전 행에서 하위 컬럼값과 같은 값을 상위 컬럼에서 찾아 행을 출력한다. 3 2과정 반복 루트 노드 계층 전개가 시작되는 곳을 루트 노드라고 한다. (LEVEL = 1) 일반적으로 START WI..
2022.03.11