SQL

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를 사용하기 전에 필요한..

Programming/Oracle

[Oracle] 시퀀스 (Sequence)

💡시퀀스 시퀀스(Sequence)는 일련 번호를 생성한다. 시퀀스는 데이터베이스 객체 중 하나로, 오라클 전용 객체이므로 다른 DBMS 제품에는 없다. 주로 식별자(일련번호)를 만드는데 사용하며, 기본값(PK)으로 사용되는 경우가 많다. CREATE SEQUENCE seqNum; SELECT seqNum.nextVal FROM dual; --일련 번호 생성 호출할 때마다 숫자를 증가하면서 돌려준다. 일련번호를 생성하고 있는 것을 확인할 수 있다. 시퀀스 객체 생성하기 CREATE SEQUENCE 시퀀스명; 시퀀스 객체 삭제하기 DROP SEQUENCE 시퀀스명; 시퀀스 객체 사용하기(함수) 시퀀스객체.nextVal 시퀀스객체.currVal 시퀀스의 사용 CREATE TABLE tblMemo ( seq n..

Programming/Oracle

[Oracle] 데이터 정의어 (DDL)

💡DDL DDL은 데이터 정의어이다. 데이터의 구조를 만들며, 데이터와 관계되지 않은 것을 만들기도 한다. 데이터베이스 객체로는 테이블, 뷰, 인덱스, 프로시저, 트리거, 제약사항, 시노닙 등이 있다. DDL의 키워드로는 CREATE, ALTER, DROP이 있다. 데이터베이스 오브젝트를 만드는 역할을 하며, 만드는 것 뿐만 아니라 수정 삭제도 수행한다. DDL은 DB 작업에 있어 건물의 뼈대를 만드는 작업을 한다. 테이블 생성하기 > 스키마 정의하기 > 컬럼 정의하기 > 컬럼의 이름, 자료형, 제약을 정의 테이블을 생성할 때, 스키마를 정의한다고 말한다. 이는 속성(컬럼)을 정의한다고 볼 수 있다. 컬럼을 정의한다는 것은 해당 컬럼에 어떤 데이터를 집어 넣을지 이름을 정하거나 어떤 자료형을 넣을지, 어..

Programming/Oracle

[Oracle] 제약 사항 (Constraint)

💡제약 사항 제약사항(Constraint)은 해당 컬럼에 들어갈 데이터(값)에 대한 조건이다. 사용자는 컬럼에 엉뚱한 값이 들어가지 않고 올바른 값만 저장될 수 있도록 해야 한다. 만약 숫자형만 들어가야 하는 컬럼에 날짜형이나 문자형이 들어가는 등 데이터가 훼손이 되면 테이블의 무결성이 깨졌다는 표현을 쓴다. 하지만 올바른 데이터만 들어가는지 사람이 일일이 확인하기 어렵다. 그래서 사람이 오라클에게 규칙을 알려주고, 오라클이 이러한 규칙에 따라 데이터를 감시하고 관리한다. 이때 데이터의 정확성과 일관성을 유지하고 관리하기 위한 규칙을 제약사항이라고 한다. NOT NULL PRIMARY KEY (PK) FOREIGN KEY (FK) UNIQUE CHECK DEFAULT NOT NULL NOT NULL은 해..

Isaac-Christian
'SQL' 태그의 글 목록 (6 Page)