목록DBMS (34)
코딩항해기
CDATA (Character Data) 문자 데이터를 의미하는 Character Data의 약자를 사용하며, 마크업 언어(XML)에서 데이터를 표시하기 위한 것이다.특수문자들을 태그가 아니라 데이터로 명시하고 싶을 때 사용하며 데이터에 있는 특수문자가 태그 등과 혼동되지 않도록 한다. XML에서 쿼리를 짤 때 많이 사용된다. CDATA 영역 시작 CDATA 영역 종료]]> 예시John Smith]]> <sender>John Smith</sender>과 동일한 데이터 값을 지닌다. 주의사항CDATA 영역 안의 모든 특수기호 등을 전부 문자열로 만들어버리기 때문에 동적쿼리를 사용할 때는 주의해 사용해야한다.
한 계정에서 여러 프로젝트의 테이블을 생성할 수 없는 것은 아니지만, 관리를 용이하게 하고, 팀프로젝트에서 JDBCUtil을 사용할 때 팀원 모두가 공통된 아이디와 비밀번호를 가질 수 있도록 할 때 등등 계정을 생성하곤 한다. SQL 계정을 생성하기 위해서는 먼저 cmd창을 열어준다. cmd 창이 열리면 sqlplus를 입력한다. sqlplus 입력하면 로그인 창이 뜨는데, 관리자 권한을 가진 관리자 계정으로 로그인해 계정을 생성해 줄 예정이다.sys as sysdba user-name으로 해당 아이디를 입력한 후 오라클 등을 설치할 때 정의한 비밀번호를 입력한다.입력이 보이지 않지만 정상적으로 입력되고 있는 것이 맞다. 로그인에 성공하면 Connected to:라는 메세지가 뜨며 연결이 됐다고 안..
ROLLUP주어진 그룹 기준에 따라 계층적인 소계를 계산한다. 주로 데이터의 총합, 부분합을 구할 때 사용한다. 예를 들어, 부서별, 직급별 급여 합계를 구하고 전체 합계를 구할 수 있다. 계층적이기 때문에 앞쪽 열부터 소계가 계산되고, 마지막에는 전체 합계가 포함된다. 예시: ROLLUP(a, b, c)(a, b, c) : a, b, c별 소계(a, b) : a, b별 소계(a) : a별 소계() : 전체 소계 CUBE주어진 그룹 기준의 모든 조합에 대해 소계를 계산한다. ROLLUP과 달리, 모든 가능한 그룹 조합의 소계를 계산하며, 각각의 열에 대한 소계, 그리고 전체 합계도 함께 계산한다. 매개변수의 순서가 달라져도 값에 영향이 없다. 예시: CUBE(a, b, c)(a, b, c) : a, b,..
NULL 아직 정의되지 않은 값으로 0 또는 공백과 다르다. (0은 숫자이고, 공백은 문자다)테이블을 생성할 때 NOT NULL 또는 PRIMARY KEY로 정의되지 않으면 NULL을 포함할 수 있다. NULL을 포함하는 연산의 결과도 NULL이다 ( 1 + NULL = NULL) row에서 연산을 할 때 (컬럼1+컬럼2) NULL이 있다면 결과값은 NULL이 되며,집계함수를 사용할 때 column에 NULL이 있다면 해당 NULL을 무시하고 집계한다.NULL과의 비교는 무조건 false가 반환된다. (IS NULL, IS NOT NULL을 사용해야 비교가 가능하다) NULLIF(표현식1, 표현식2)표현식1이 표현식2와 같으면 NULL을, 같지 않으면 표현식1을 리턴한다.특정 값을 NULL로 변경해야 ..
SQL 실행 순서다음과 같은 순서로 진행된다. FROMONJOINWHEREGROUP BY (집계함수)HAVING SELECT (별칭, ROWNUM 등)DISTINCTORDER BY 실행 순서가 중요한 이유복잡한 쿼리를 작성하거나 쿼리의 성능을 최적화 할 때 실행 순서를 정확하게 이해하고 있어야 하기 때문이다.또한 실행 순서를 잘못 이해하면 원하는 방향과 전혀 다른 데이터가 나올 수 있어 실행 순서를 정확하게 인지하고 있는 것이 좋다.(앞 단에 실행된 부분만 현재 단계에서 인지할 수 있기 때문에, WHERE절에서 GROUP BY된 데이터를 인지할 수 없다.)실행 순서를 불가피하게 변경해야하는 경우에는 서브쿼리를 사용하여 실행 순서를 변경시킬 수 있다. 상황에 따른 조건 위치 효율성JOIN을 사용할 때ON..
정규화 Normalization중복된 데이터를 최소화하고, 데이터 무결성(Data Integrity)를 유지하기 위해 데이터베이스를 구조화하는 과정이다.데이터의 일관성을 높이고 데이터 저장 공간을 효율적으로 사용하여 이상 현상(Anoamalies)을 방지한다.정규화 단계는 순차적으로 진행해야한다. 제 1 정규형 (1NF)테이블 컬럼이 하나의 값을 갖도록 분리하는 것 제 2 정규형 (2NF) PK의 일부가 아닌 컬럼들이 PK 전체에 종속되도록 분리하는 것(복합식별자일 때 진행된다) 제 3 정규형 (3NF) PK가 아닌 컬럼이 다른 컬럼을 종속하지 않도록 분리하는 것보이스-코드 정규형(BCNF)모든 함수적 종속성이 후보 키에 대해서만 성립하도록 하는 것 제 4 정규형 (4NF) 한 테이블에 여러 개의 독립된..
VIEW 기존 테이블은 그대로 놔둔 채 필요한 컬럼들 및 새로운 컬럼을 만든 가상 테이블이다. 실제 데이터가 저장되는 것은 아니지만 VIEW를 통해서 데이터를 관리할 수 있다. 사용이유 독립성 다른 곳에서 원본 데이블에 접근하지 못하도록 할 수 있다. 편리성 긴 쿼리문을 짧게 만들 수 있다. 보안성 기존의 테이블 제작 쿼리문이 보이지 않아 보안이 올라간다. 문법 CREATE VIEW 뷰이름 AS 쿼리문; CREATE VIEW 뷰이름 AS SELECT 열1, 열2, ... FROM 테이블명 WHERE 조건; 관련 설정OR REPLACE 기존 VIEW의 구조나 내용을 새로운 쿼리로 교체한다.CREATE OR REPLACE VIEW 뷰이름AS SELECT 컬럼명 FROM 테이블명 WHERE 조건; ..
집합 연산자는 예전 where절과 연산자를 다룰 때 함께 다룬 적이 있다.Join을 정리하며 제대로 구분 짓기 위해 다시 한 번 더 정리한다. [DBMS/Oracle] WHERE절과 연산자WHERE절WHERE절은 SELECT문으로 데이터를 조회할 때 특정 조건을 기준으로 원하는 행을 출력할 수 있게 한다.이때 연산자를 사용하면 더욱 세밀한 데이터 조회가 가능하다.SELECT 컬럼1, 컬럼2 FROM 테이minibcake.tistory.com [DBMS/Oracle] JOIN집합연산자와 JOIN 집합연산자는 결과 값을 세로로 연결한 것이고, JOIN은 두 개 이상의 테이블 데이터를 가로로 연결한 것이다. JOIN조회하고자하는 테이블이 쪼개져있으면 데이터를 한 눈에minibcake.tistory.c..
집합연산자와 JOIN 집합연산자는 결과 값을 세로로 연결한 것이고, JOIN은 두 개 이상의 테이블 데이터를 가로로 연결한 것이다. [DBMS/Oracle] 집합 연산자집합 연산자는 예전 where절과 연산자를 다룰 때 함께 다룬 적이 있다.Join을 정리하며 제대로 구분 짓기 위해 다시 한 번 더 정리한다. [DBMS/Oracle] WHERE절과 연산자WHERE절WHERE절은 SELECT문으로 데이minibcake.tistory.com JOIN조회하고자하는 테이블이 쪼개져있으면 데이터를 한 눈에 확인하거나 사용하기 불편하기 때문에 입력, 수정, 삭제의 성능을 향상시키기 위해서 join을 통해 하나의 가상 테이블로 합친 후 사용한다.Join은 크게 내부 조인과 외부 조인으로 분류된다. (그 외 조..
[DBMS/Oracle] 테이블 쿼리문 (DDL) 기초[요약]테이블 생성CREATE TABLE 테이블명( 컬럼명 자료형, 컬럼명 자료형, 컬럼명 자료형 );테이블 조회SELECT * FROM 테이블명;테이블 삭제DROP TABLE 테이블명;테이블 삭제(연결값을 삭제 후 삭제)DROP TAminibcake.tistory.com 기존 테이블의 구조, 또는 구조와 데이터를 복사하여 새로운 테이블을 생성할 수 있다.복사하는 종류와 범위에 따라 3가지로 분류할 수 있다.기존 테이블의 열 구조와 데이터를 복사하여 새 테이블 생성기존 테이블의 열 구조와 일부 데이터를 복사하여 새 테이블 생성기존 테이블의 열 구조만 복사하여 새 테이블 생성위 3가지의 경우를 차례로 정리해보겠다. 열 구조와 데이터를 복사하는 경..