목록분류 전체보기 (718)
쌓고 쌓다
인덱스 SQL명령문의 처리 속도 향상을 위해 칼럼에 대해 생성하는 객체이다. 인덱스는 포인트를 이용하여 테이블에 저장된 데이터를 랜덤 액세스 하기 위한 목적으로 사용한다. 인덱스를 언제 써야 효율적일까? WHERE절이나 조인 조건절에서 자주 사용되는 칼럼에 쓴다. 전체 데이터중에서 10~15% 이내의 데이터를 검색하는 경우 테이블에 저장된 데이터의 변경이 드문 경우 인덱스 생성 방법 CREATE [UNIQUE] INDEX index_name ON table_name (column1 [ASC|DESC] [, column2 [ASC|DESC]...]); UNIQUE : 고유 인덱스 지정 ASC | DESC : 인덱스 키를 오름차순 또는 내림차순으로 정렬 고유 인덱스 유일한 값을 가지는 칼럼에 대해 생성하는 ..
무결성 제약조건 삭제 ALTER TABLE table_name DROP CONSTRAINT constraint_name [CASCADE]; 부모 테이블의 기본키 무결성 제약조건을 삭제할때 이것을 참조하는 테이블이 있다면? 참조하는 테이블을 먼저 삭제한 후 삭제하거나 CASCADE 옵션을 이용하여 삭제되는 칼럼을 참조하는 참조 무결성 제약조건도 함께 삭제한다. EX) subject 테이블의 subject_term_ck 무결성 제약조건 삭제 ALTER TABLE subject DROP CONSTRAINT subject_term_ck; EX) subject_no_pk 무결성 제약조건 삭제 이 기본키는 외부 키에 의해 참조되고 있다. 그냥 지우려 한다면 고유/기본 키가 외부 키에 의해 참조되었습니다. 라며 삭제..
무결성 제약조건을 위반하는 데이터는 입력되지 않고 오류 메세지를 출력한다. 오라클에서의 무결성 제약조건 검사 내부 과정 테이블에 데이터를 먼저 입력 무결성 제약조건을 위반한 명령문은 롤백 subject 테이블은 아래와 같다. subno는 DEFERRABLE INITIALLY DEFERRED로 생성했다. 즉시 제약조건 검사에 위반되는 경우 INSERT INTO subject VALUES (1, 'SQL', '1', '필수'); -- subname은 NOT NULL인데 ''로 NULL이니 삽입 에러 INSERT INTO subject VALUES (2, '', '2', '필수'); -- term은 '1', '2'만 입력 가능해서 CHECK 위배 INSERT INTO subject VALUES (3, 'JAV..
무결성 제약 조건 추가 기존 테이블에 무결성 제약조건을 추가 생성한다. ALTER TABLE table_name ADD [CONSTRAINT constraint_name] constraint_type (column); * NULL 무결성 제약조건은 ALTER TABLE ... MODIFY 명령문을 사용해야한다. Why? 'NULL 허용'을 'NULL 입력 불가' 상태로 변경을 의미하기 때문이다. 기본키(PRIMARY KEY), NOT NULL 추가 EX) grade 칼럼에 기본 키, losal과 hisal 칼럼에 NOT NULL 무결성 제약 조건 추가 CREATE TABLE test( grade NUMBER(2), losal NUMBER(5), hisal NUMBER(5) ); ALTER TABLE te..
데이터 무결성 제약 데이터의 정확성과 일관성을 보장한다. 무결성 제약조건 종류 무결성 제약조건 설명 NOT NULL 해당 칼럼 값은 NULL을 포함할 수 없다. 고유 키(Unique Key) 테이블내에서 해당 칼럼 값은 유일해야한다. 단, NULL 값은 허용함. 기본 키(Primary Key) 해당 칼럼 값은 반드시 존재해야하며, 유일해야 한다. 고유키, NOT NULL 제약조건을 결합한 형태. 참조 해당 칼럼 값은 참조되는 테이블의 칼럼 값중의 하나와 일치하거나 NULL을 가진다. CHECK 해당 칼럼에 저장 가능한 데이터 값의 범위나 조건을 지정한다. student 테이블 기본 키 : 학번(studno) 칼럼에는 값이 반드시 존재해야 함. 모든 값은 유일해야 함. 고유 키 : 사용자아이디(userid..
1. CREATE TABLE member( USERID VARCHAR2(10), USERNAME VARCHAR2(10), PASSWD VARCHAR2(10), IDNUM VARCHAR2(13), PHONE NUMBER(13), ADDResS VARCHAR2(20), REGDATE DATE, INTEREST VARCHAR2(15) ); 2. ALTER TABLE member MODIFY phone VARCHAR2(13); INSERT INTO member VALUES ('sunshinLee', '이순신', 'ssl000', '8701011120200', '02)333-2123', '서울', SYSDATE, '컴퓨터'); 3. CREATE TABLE member_second AS SELECT * FROM s..
(1) -- 묵시적 INSERT INTO professor(profno, name, deptno) VALUES (9910, '이순신', 201); -- 명시적 INSERT INTO professor VALUES (9910, '이순신', NULL, NULL, NULL, NULL, NULL, 201); (2) UPDATE professor SET userid='sunshinlee', hiredate='05/01/01' WHERE name='이순신'; (3) UPDATE professor SET position = (SELECT position FROM professor WHERE userid='Pascal'), sal = (SELECT sal FROM professor WHERE profno=9908) WH..
주석 추가 테이블, 칼럼에 주석 추가할 수 있다. 테이블에 주석 추가 COMMENT ON TABLE table_name IS 'content of comment'; EX) -- 주소록 테이블에 '고객 주소록 관리 테이블' 주석을 추가 COMMENT ON TABLE address IS '고객 주소록 관리 테이블'; 칼럼에 주석 추가 COMMENT ON COLUMN table_name.column IS 'content of comment'; EX) -- 주소록 테이블의 name 칼럼에 '고객 이름' 주석 추가 COMMENT ON COLUMN address.name IS '고객 이름'; 주석 확인 USER_TAB_COMMENTS, UER_COL_COMMENTS 데이터 딕셔너리를 이용하여 ADDRESS 테이블과..