DBeaver

Programming/Oracle

[Oracle] 조인: 외부 조인 (Outer Join)

💡외부 조인 외부 조인(OUTER JOIN)은 이름만 보면 내부 조인의 반대말인 거 같지만, 그렇지 않다. 모든 외부 조인은 내부 조인의 결과를 포함하고 있다. 여기에 + Alpha를 한 게 외부 조인이다. 내부 조인을 하면 일부 컬럼이 제외되는데, 외부 조인은 그 제외된 컬럼 중에 부모 테이블의 나머지 레코드도 가지고 있다는 특징이 있다. 외부 조인의 사용 select 컬럼리스트 from 테이블A (left|right) outer join 테이블B on 테이블A.컬럼 = 테이블B.컬럼; 외부 조인은 위의 문법으로 작성한다. 💡내부 조인과 외부 조인의 차이 고객, 판매 테이블 SELECT * FROM tblCustomer; --3명 > 5명 SELECT * FROM tblSales; --9건 insert..

Programming/Oracle

[Oracle] 조인: 내부 조인 (Inner Join)

💡내부 조인 내부 조인(INNER JOIN)은 단순 조인에서 유효한 레코드만을 추출하는 조인이다. 쓸모없는 것은 버리고 쓸모 있는 쪽만 남긴다. 내부 조인의 사용 select 컬럼리스트 from 테이블A inner join 테이블B on 테이블A.PK = 테이블B.FK; select 컬럼리스트 from 테이블A inner join 테이블B on 테이블A.PK = 테이블B.FK; 내부 조인을 작성할 때에는 on 조건을 걸어주어야 한다. 이때 테이블 A의 기본키와 테이블 B의 외래키를 찾아달라는 구문을 작성한다. 명확한 컬럼 이름 명시 SELECT * FROM TBLSTAFF INNER JOIN TBLPROJECT ON TBLSTAFF.seq = TBLPROJECT.staff_seq; 경우에 따라 테이블 이..

Programming/Oracle

[Oracle] 조인: 단순 조인 (Cross Join)

💡단순 조인 단순 조인(CROSS JOIN)은 카티션 곱(데카르트 곱)이라고도 한다. A 테이블 x B 테이블로 테이블을 곱하는 작업을 한다. 그 결과 가치가 있는 행과 가치가 없는 행이 뒤섞이게 된다. 이러한 이유로 크로스 조인은 더미데이터 이외에는 잘 사용하지 않지만, 다른 모든 조인의 근간이 된다. [Oracle] 관계대수 (Relational Algebra) 💡관계대수 관계대수(Relational Algebra)는 릴레이션에서 원하는 값을 얻기 위해 수학 연산을 이용해 질의하는 방법을 기술하는 언어이다. 관계대수는 수학 연산(+, -...)을 하는데, 피연산자가 테이 isaac-christian.tistory.com 카티션 곱에 대해서는 위 글을 참고하도록 하자. 단순 조인의 사용 SELECT *..

Programming/Oracle

[Oracle] 조인 (Join)

💡조인 조인(Join)은 (서로 관계를 맺은)2개(1개) 이상의 테이블을 1개의 결과셋으로 만드는 기술이다. 조인은 1개로도 가능하지만, 보편적으로는 2개 이상의 테이블을 사용한다. 조인의 종류 단순 조인 (CROSS JOIN) 내부 조인 (INNER JOIN) 외부 조인 (OUTER JOIN) 셀프 조인 (SELF JOIN) 전체 외부 조인 (FULL OUTER JOIN) 단순 조인 [Oracle] 조인: 단순 조인 (Cross Join) 💡단순 조인 단순 조인(CROSS JOIN)은 카티션 곱(데카르트 곱)이라고도 한다. A 테이블 x B 테이블로 테이블을 곱하는 작업을 한다. 그 결과 가치가 있는 행과 가치가 없는 행이 뒤섞여지게 된다. 이 isaac-christian.tistory.com 내부 조..

Programming/Oracle

[Oracle] 관계형 데이터베이스 시스템(RDBMS)이 지양하는 것들

💡RDBMS가 지양하는 것들 기본키가 없는 상태의 테이블 null이 많은 상태의 테이블 데이터가 중복되는 상태 하나의 속성값이 원자값이 아닌 상태 테이블은 기본키가 있어야 하며, null이 반드시 필요한 경우가 아니라면 사용하지 않는 게 좋다. 그리고 데이터가 중복되지 않도록 해야 한다. 이러한 조건에 해당한다면 공간이 낭비되거나 데이터 조작이 곤란해지는 상황이 생긴다. 테이블을 다시 만들어보면서 문제를 해결해보도록 하자!😁 해결책: 테이블 수정을 통해 고칠 수 있다. 이는 구조적인 문제임을 의미한다. 1. 기본키가 없는 상태의 테이블 CREATE TABLE tblTest ( name varchar2(30) NOT NULL, age nnumber(3) NOT NULL, nick varchar2(30) N..

Programming/Oracle

[Oracle] Main Query, Sub Query

💡Main Query Main Query(일반 쿼리)는 하나의 문장 안에 하나의 SELECT(INSERT, UPDATE, DELETE)로 구성 되어 있는 쿼리이다. 💡Sub Query Sub Query(서브 쿼리)는 하나의 문장(SELECT(INSERT, UPDATE, DELETE)) 안에 또 다른 문장(SELECT)이 들어 있는 쿼리이다. SELECT문 안에 SELECT문이 들어갈 수도 있고, INSERT문 안에 SELECT문이 들어갈 수도 있다. 이때 또 다른 문장은 SELECT만 가능하다. 삽입 위치는 모든 곳(SELECT절, FROM절, WHERE절, GROUP BY절, HAVING절, ORDER BY절..)이 될 수 있다. 즉, 컬럼(값)을 넣을 수 있는 장소면 어디든지 서브쿼리가 들어갈 수 있..

Programming/Oracle

[Oracle] SELECT문: GROUP BY절, HAVING절

💡GROUP BY절 [WITH ] SELECT column_list FROM table_name [WHERE search_condition] [GROUP BY group_by_expression] [HAVING search_condition] [ORDER BY order_expresstion [ASC|DESC]] SELECT 컬럼리스트: 4. 컬럼 지정 (보고 싶은 컬럼만 가져오기) > Projection FROM 테이블: 1. 테이블 지정 WHERE 조건: 2. 조건 지정 (보고 싶은 행만 가져오기) > Selection group by 기준: 3. (레코드끼리) 그룹을 나눈다. ORDER BY 정렬기준: 5. 순서대로 정렬 언제 GROUP BY를 사용할까? SELECT * FROM tblInsa; S..

Programming/Oracle

[Oracle] DML: INSERT, UPDATE, DELETE

💡INSERT INSERT는 DML의 한 종류이다. 테이블에 데이터를 추가하는 명령어이다. INSERT 구문 insert into 테이블명 (컬럼리스트) values (값리스트) INSERT의 사용 DROP TABLE tblMemo; CREATE TABLE tblMemo ( seq number(3) PRIMARY KEY,--메모번호(PK) name varchar2(30) DEFAULT '익명',--작성자(UQ) memo varchar2(1000),--메모(NN) regdate DATE DEFAULT sysdate NOT NULL--작성날짜 ); DROP SEQUENCE seqMemo; CREATE SEQUENCE seqMemo; SELECT * FROM tblMemo; INSERT를 사용하기 전에 필요한..

Isaac-Christian
'DBeaver' 태그의 글 목록 (5 Page)