ojdbc.jar 는 오라클에서 제공하는 java 용 라이브러리. - Oracle 10g 는 jdk1.4 나 jdk1.5 이상에서 ojdbc14.jar 를 사용 - Oracle 11g 는 jdk1.6 이상, ojdbc6.jar 사용 - Oracle 12c 는 jdk1.6 이상에서 ojdbc6.jar, jdk1.7 이상에선 ojdbc7.jar 사용하기도 함 이 때 부터 Oracle DB 버전에 따라 ojdbc 와 jdk 버전 조합이 상당히 달라짐. 한국에선 2024년 현재에도 주력으로 사용 12c (12.2.0.1, 최신 패치도 동일) 는 아래 조합 jdk8 과 ojdbc8.jar (JDBC 버전 언급x) - Oracle 18c, 2018년 2월 출시 18c (18.21.0.0) 는 아래 조..
현재 접속한 계정 보기 (계정 관리는 관리자 계정에서 할 수 있다.) SHOW user; 새 계정 생성하기 CREATE USER testuser IDENTIFIED BY "1313"; 계정 목록 보기 SELECT * FROM all_users; 계정에 권한 주기 (GRANT ... TO) GRANT CREATE SESSION TO testuser; -- 해당 계정에 접속할 수 있는 권한 GRANT CREATE TABLE TO testuser; -- 테이블 생성 권한 GRANT RESOURCE TO testuser; -- DB 저장 공간 사용 권한 계정의 권한 뺏기 (REVOKE 권한 FROM 유저) REVOKE RESOURCE FROM testuser; 비밀번호 변경하기 ALTER USER testuse..
TO_NUMBER(date) : 다른 타입 데이터를 숫자 타입으로 변환한다. SELECT TO_NUMBER('1234567') FROM dual; 포맷을 사용해 형식이 있는 문자열도 쉽게 숫자 타입으로 변환할 수 있다. SELECT TO_NUMBER('10,000', '999,999,999') FROM dual; SELECT TO_NUMBER('123,000,000', '999,999,999') FROM dual; SELECT TO_NUMBER('5,000₩', '999,999,999L') FROM dual; ABS(n) : 절대값 SELECT ABS(-5) FROM dual; FLOOR(n) : 내림 SELECT FLOOR(5.1) FROM dual; CEIL(n) : 올림 S..
시퀀스 (Sequence) - 기본키로 사용하기 편리하도록 번호를 자동으로 생성해주는 DB 오브젝트 - user_sequences, all_sequences로 시퀀스들의 상태를 확인할 수 있다. CREATE SEQUENCE 시퀀스명 [START WITH n] - 시작 번호 설정 [INCREMENT BY n] - 증가 숫자 설정 [NOMAXVALUE | MAXVALUE n] - 최대 숫자 설정 [NOMINVALUE | MINVALUE n] - 최대 숫자 설정 [NOCYCLE | CYCLE] - 번호 순환 여부 설정 [NOCACHE | CACHE n] - 캐시 설정 여부 ※ 번호를 미리 만들어놓을 양을 설정 (성능은 좋아지지만, 중간 번호가 사라질 위험이 있음) 커피 테이블에 사용할 시퀀스 만들기 CREAT..
트랜잭션 (Transaction) - 하나의 작업 단위 (ex: 물건 판매, 송금 ...) - 데이터베이스는 하나의 트랜잭션에 속한 모든 작업이 정상적으로 완료되는 경우에만 변경사항을 확정 지을 수 있는 기능을 제공한다. (All or Nothing) - 트랜잭션을 관리하기 위한 키워드로는 COMMIT, ROLLBACK, SAVEPOINT, ROLLBACK TO가 있다. - 하나의 트랜잭션을 마지막으로 실행된 커밋으로부터 새로운 커밋을 실행하기 전까지 수행되는 모든 DML만을 의미한다. (INSERT, UPDATE, DELETE 등의 테이블 데이터 수정은 트랜잭션의 관리 대상이지만, CREATE TABLE, ALTER TABLE, ALTER USER, .. 등의 DB 오브젝트 수정은 트랜잭션의 관리 대상..
정규화 (Normalization) - 비즈니스 운영에 필요한 데이터들을 관계형 데이터베이스에 적합한 구조로 변환하는 과정 - 정규화가 되지 않은 데이터들은 이상현상을 일으킨다. 제 1정규형 (1NF) - 각 컬럼은 하나의 데이터만 가지고 있어야 한다. - 한 컬럼의 데이터들은 같은 타입을 가져야 한다. - 컬럼의 순서가 데이터에 영향을 미쳐서는 안된다. 1NF를 만족시키지 못한 커피 테이블 커피이름 / 커피가격 / 커피사이즈 / 커피온도 Americano 3000, 3500, 4000 T,G,V H, I Peach Ice Tea 4000, 4500 T, V I 1NF를 만족시킨 커피 테이블 커피이름 / 커피가격 / 커피사이즈 / 커피온도 Americano 3000 T H Americano 3000 T ..
테이블에 새 컬럼 추가하기 - ALTER TABLE 테이블명 ADD (컬럼명 컬럼타입 제약조건, ...); - 새 컬럼이 추가되면 기존에 존재하던 행들은 해당 컬럼값이 null로 추가된다. - 새 컬럼을 추가할 때 DEFAULT를 설정해 놓으면 DEFAULT로 추가된다. -- 디폴트 값을 설정하지 않고 새 컬럼 추가(null로 디폴트 값 설정) ALTER TABLE fruits ADD ( taste NUMBER(1) ); -- 디폴트 값을 설정하고 새 컬럼 추가 ALTER TABLE fruits ADD ( grade VARCHAR2(2) DEFAULT 'B' ); 테이블 컬럼 삭제하기 ALTER TABLE 테이블명 DROP COLUMN 컬럼명; ALTER TABLE fruits DROP COLUMN ta..
무결성 - 결함이 없는 성질 - 데이터를 결함없는 상태로 올바르게 유지하는 것은 무결성을 유지한다고 한다. - 데이터를 올바르게 관리하기 위해서는 다양한 종류의 무결성을 충족시켜야 한다. - 데이터베이스에서는 다양한 제약 조건들을 통해 여러가지 무결성을 보장한다. 개체 무결성 - 테이블의 데이터는 반드시 하나의 행을 선택할 수 있어야 한다. - 개체 무결성을 지키기 위해 제약 조건으로 기본키(PK)를 사용한다. 참조 무결성 - 참조 관계에 있는 데이터는 유효한 데이터를 참조해야 한다. - 참조 무결성을 지키기 위해 제약 조건으로 외래키(FK)를 사용한다. 도메인 무결성 - 하나의 도메인(컬럼)을 구성하는 개체들은 모두 같은 타입이어야 한다. - 컬럼 타입을 지정하여 해당 컬럼의 도메인 무결성을 유지할 수..