VARCHAR2 란? 오라클에는 문자열을 표현하기 위한 VARCHAR2 라는 데이타 유형이 오래전부터 제공되어 왔습니다. VARCHAR2 는 문자열의 바이트를 기준으로 하기 때문에 ASCII Code 에 있는 문자(!Byte)인지 한글(2BYTE)인지에 따라 저장할 수 있는 단어수가 달라집니다. 즉 20 바이트자리 VARCHAR2 일 경우 Ascii 코드표에 있는 문자라면 20자를 넣을 수 있지만 한글만 넣는다면 10자밖에 못 넣게 되며 한글과 영어를 섞어 쓸 경우 한글이 몇 자인지에 따라 달라지게 됩니다. 이런 특징은 개발자를 매우 혼란스럽게 해서 VARCAHR2 타입에 넣을때는 자리수 확인을 한글과 영어로 나눠서 입력 가능한 길이를 체크하는등 매우 번거로운 작업을 수행해야 합니다. NVARCHAR2 ..
커서란? 행 단위 작업을 효율적으로 하기 위한 방식으로 테이블에서 여러 개의 행을 조회한 후 쿼리의 결과를 한 행씩 처리하는 방식입니다. SELECT 한 결과(행 집합)를 반복 작업해줘야 할 경우 유용하게 사용 가능 한 방식입니다. 커서의 특징 1. 커서는 내장 SQL 문의 수행 결과로 반환될 수 있는 복수의 튜플들을 액세스 할 수 있도록 해주는 개념입니다. 2. 커서는 질의 수행 결과로 반환되는 첫 번째 튜플에 대한 포인터로 생각할 수 있습니다. 3. 커서를 사용하여 질의 결과로 반환될 수 있는 튜플들을 한 번에 하나씩 차례대로 처리할 수 있습니다. 커서 관련 명령어 DECLARE : 커서를 정의하는 등 커서에 관련된 선언을 하는 명령입니다. OPEN : 커서가 질의 결과의 첫 번째 튜플을 포인트 하도..
스키마는 개념 스키마, 내부 스키마, 외부 스키마로 3가지가 있습니다. 먼저 스키마란, 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것입니다. 스키마의 특징 1. 스키마는 데이터 사전(Data Dictionary)에 저장되며, 다른 이름으로 메타데이터라고도 한다. 2. 스키마는 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어진다. 3. 스키마는 시간에 따라 불변인 특성을 갖는다. 4. 스키마는 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정된다. 외부 스키마(External Schema) = 사용자 뷰(View) 1. 외부스키마는 사용자나 응용프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것이다. 2. 외부스키마는 전체..
-- EMP, DEPT 테이블을 기준해서, 잘못된 SQL문을 모두 고르고, 실행되지 않는 이유를 작성하시오. -- 1.1 O SELECT EMPNO, EMPNO EMP FROM EMP; -- 1.2 O SELECT EMPNO AS EMPNO, SAL+HIREDATE FROM EMP; -- 1.3 O SELECT EMPNO, 'DEPTN' FROM EMP; -- 1.4 X (원인은 날짜를 문자형태로 변환처리하는 구분에서 발생했는데 TO_DATE 대신 TO_CHAR를 사용해야 해결이 됩니다) SELECT TO_DATE(HIREDATE,'YYYYMMDD') FROM EMP; -- 1.5 O SELECT SAL + COMM FROM EMP ORDER BY 1; -- 1.6 O SELECT TO_CHAR(HIRE..
-- 1. CONNECT BY LEVEL 을 활용하여 1 ~ 10까지 출력하시오 SELECT LEVEL AS NO FROM DUAL CONNECT BY LEVEL 40; -- 4. WITH T AS ( SELECT '100,101,102,103,' AS TXT FROM DUAL ) 위와 같은 임시테이블의데이터에서 마지막 ',' 만 빼고 출력하려면? WITH T AS( SELECT '100,101,102,103,' AS TXT FROM DUAL ) SELECT RTRIM(TXT,',') AS TXT FROM T; -- 5. WITH TMPAS ( SELECT '10.100.10.1' AS IP FROM DUAL UNION ALL SELECT '10.100.1.10' FROM DUAL UNION ALL SE..
1. COUNT(*) / COUNT(컬럼명) / COUNT(DISTINCT 컬럼명) 실행결과와 차이점 COUNT(*)의 경우에는 컬럼의 전체행의 갯수를 가져오는 방식입니다. COUNT(컬럼명)은 NULL을 제외한 행의 갯수를 가져오는 방식입니다. 마지막으로 COUNT(DISTINCT COMM)은 중복을 제외한 값들의 갯수를 가져옵니다. 이때 NULL값 또한 갯수에서 제외합니다. 2. SELECT AVG(COMM) FROM EMP 와 SELECT AVG(NVL(COMM, 0)) FROM EMP 실행결과와 차이점. 왜 결과가 다른지? SELECT COUNT(COMM) FROM EMP; SELECT COUNT(NVL(COMM, 0)) FROM EMP; 전자의 경우에는 VALUE가 있는 값들의 평균을 구했지만,..