목록Programming/Oracle (41)
C#,Delphi,Oracle,MSSQL 개발자블로그
ROWID 정의 ▣ ROWID는 ORACLE에서 INDEX를 생성하기 위하여 내부적으로 사용하는 PSEUDOCOLUMN 으로 사용자가 임으로 변경하거나 삭제할 수 없다. ▣ 단지 테이블의 한 컬럼처럼 참조만 가능하며 데이타베이스에 값이 저장되지는 않는다. ▣ ROWID는 물리적인 ADDRESS를 가지고 있기 때문에 SINGLE BLOCK ACCESS로 찾고자 하는 ROW를 찾을 수 있어 물리적인 ROWID는 주어진 테이블에 가장 빠른 ACCESS 방법을 제공하게 된다. ▣ ROWID를 분석해보면 AAAArs AAD AAAAUa AAA ------ --- ------ --- 1 2 3 4 1) 6자리 : 데이터 오브젝트 번호 (data object number) - 오브젝트의 고유 번호 2) 3자리 : 상..
● 날짜 차이 select to_date('2017-08-26','yyyy-mm-dd') -sysdate from dual; ● 차이 시간 select (to_date('2017-08-26','yyyy-mm-dd') -sysdate) * 24 from dual; ● 차이 분 select (to_date('2017-08-26','yyyy-mm-dd') -sysdate) * 24 * 60 from dual; ● 차이 초 select (to_date('2017-08-26','yyyy-mm-dd') -sysdate) * 24 * 60 * 60 from dual;
오라클에서 COMMENT 다는 방법입니다. - TABLE COMMENT 추가 COMMENT ON TABLE 테이블명 IS '설명' - 컬럼 COMMENT 추가 COMMENT ON COLUMN 테이블명.필드명 IS '설명' - TABLE COMMENT 삭제 COMMENT ON TABLE 테이블명 IS '' - COLUMN COMMENT 확인 SELECT * FROM ALL_COL_COMMENTS WHERE TABLE_NAME = '테이블명'; - 해당 스키마의 모든 TABLE COMMENT 확인 SELECT * FROM ALL_TAB_COMMENTS WHERE OWNER = '스키마명' 출처: http://uniksy1106.tistory.com/167 [* 루이지노의 행복한 이야기 : )]
ORA-01765: specifying owner's name of the table is not allowed 이 에러는 ' RENAME 바꿀테이블명 TO 새로운테이블명 '으로 테이블을 바꿀 때, 발생한다. 이 떄에는, ' ALTER TABLE 스키마.바꿀테이블명 RENAME TO 새로운테이블명 '으로 테이블을 바꿔야 한다. ● RENAME 키워드와, ALTER TABLE 키워드로 테이블명을 바꿀때의 차이점은? - RENAME TO 키워드. RENAME 키워드는 자기 자신의 스키마 내의 테이블명만 수정이 가능하다. Ex. RENAME aaa TO bbb; (이 떄, 사용자는 aaa라는 테이블이 있는 스키마에 접속해 있어야 함. ) - ALTER TABLE 키워드. ALTER TABLE 키워드는 사용자가..
ANSI ( American National Standards Institute) / 미국표준협회 SQL 공부를 하다가 역사가 궁금해서 찾아보았다. ANSI SQL이라는 용어가 보여 ANSI가 무엇인지 정리하였다. SQL은 IBM에서 1970년대 초에 도널드 D. 챔벌린과 레이먼드 F. 보이스가 처음 개발하였다. 초기에는 SEQUEL (Structured English Query Language, 구조 영어 질의어)라는 이름으로 시작하였으며, IBM의 준 관계형 데이터베이스 관리 시스템 시스템 R에 저장된 데이터를 조작하고 수신하기 위해 고안되었다. SEQUEL은 나중에 SQL으로 바뀌었다. 그 까닭은 SEQUEL이 영국의 호커 시들리 항공사의 상표였기 때문이다. 1986년 SQL-86의 명칭(별칭 SQ..
TABLE에서 모든 행을 삭제하는 방법에는 다음과 같은 세 가지 OPTION이 있다. 1. DELETE 명령어 사용 DELETE 명령어를 사용하여 TABLE의 행을 삭제할 수 있다. 예를 들어 EMP TABLE에서 모든 행을 삭제하는 명령문은 다음과 같다. SQL>DELETE FROM emp; ◈ DELETE 문을 사용할 때 TABLE이나 CLUSTER에 행이 많으면 행이 삭제 될 때마다 많은 SYSTEM 자원이 소모된다. 예를 들어 CPU 시간,REDO LOG 영역, TABLE이나 INDEX에 대한 ROLLBACK SEGMENT 영역 등의 자원이 필요하다. ◈ TRIGGER가 걸려있다면 각 행이 삭제될 때 실행된다. ◈ 이전에 할당되었던 영역은 삭제되어 빈 TABLE이나 CLUSTER에 그대로 남아 있..
SQL SQL (Structured Query Language) 은 구조적인 질의 언어라는 것이다. 이 SQL 이라는 질의 언어를 통해서 데이터베이스를 제어, 관리한다. SQL 은 다음 언어로 나눌 수 있다. ⒜ DDL : 데이터 정의 언어 ⒝ DML : 데이터 조작 언어 ⒞ DCL : 데이터 제어 언어 DDL DDL (Data Definition Language) 는 데이터 베이스 스키마를 정의 하거나 조작하기 위해 사용한다. SCHEMA, DOMAIN, TABLE, VIEW, INDEX 를 다음 명령어로 정의, 변경, 삭제한다. ⒜ CREATE : 정의 ⒝ ALTER: 수정 ⒞ DROP : 삭제 ⒟ TRUNCATE : DROP 후 CREATE * Oracle 11g 이전 버전과 MySQL은 DDL에 ..
DISTINCT와 GROUP BY절 - DISTINCT와 GROUP BY 개념에 대해서 좀 더 이해를 해보자. - DISTINCT는 주로 UNIQUE(중복을 제거)한 컬럼이나 레코드를 조회하는 경우 사용한다. - GROUP BY는 데이터를 그룹핑해서 그 결과를 가져오는 경우 사용한다. - 하지만 두 작업은 조금만 생각해보면 동일한 형태의 작업이라는 것을 쉽게 알 수 있으며, 일부 작업의 경우 DISTINCT로 동시에 GROUP BY로도 처리될 수 있는 쿼리들이 있다. - 두 기능 모두 Oracle9i까지는 sort를 이용하여 데이터를 만들었지만, Oracle10g 부터는 모두 Hash를 이용하여 처리한다. - 그래서 DISTINCT를 사용해야 할지, GROUP BY를 사용해서 데이터를 조회하는 것이 좋을..
rrrr 과 yyyy 는 어차피 연도 4자리 꽉 채웠으므로 차이 없다고 봐도 무방합니다. 단, 2자리 표시형식인 rr 과 yy 는 연도 앞 두자리가 생략되어 그 의미가 다릅니다. R은 ROUND 의 의미를 가지고 있습니다. 연도를 반올림하는데 100년 단위로 계산합니다. - 50년 이상이면 1950 ==> 2000 - 50년 미만이면 1949 ==> 1900 현재년도가 2014년이므로 반올림한 2000 년이 기준이 됩니다. 이 때 입력되는 두자리 연도값이 - 50 미만이면 TO_DATE('140101', 'rrmmdd') ==> 2014-01-01 (기준년도) - 50 이상이면 TO_DATE('940101', 'rrmmdd') ==> 1994-01-01 (기준년도 전년도) 현재년도가 2014년이 아닌 2..
1. sysdate sysdate의 경우 년월일시분초 까지 표시 가능 예) select sysdate from dual; 날짜에 포맷을 적용해 문자열로 변환할 때 예)select to_char(sysdate, 'YYYY-MM-DD HH:MI:SS') from dual; 문자열에 포맷을 적용해 날짜로 변환할 때 예)select to_date('2013-09-06','YYYY-MM-DD') from dual; 예)select to_date('2013-09-06 13:15:24','YYYY-MM-DD HH24:MI:SS') from dual; 예)select to_date('20130906132945','YYYYMMDDHH24MISS') from dual; 2. systimestamp systimestamp의..