Database

    [Oracle] DML(3) - DELETE, TRUNCATE

    DELETE 테이블에 기록된 데이터를 삭제하는 구문 (한 행 단위로 삭제됨) [표현식] DELETE FROM 테이블명 [WHERE 조건;] --> WHERE 조건 제시 안하면 전체 행 다 사라짐 테이블에 있는 모든 데이터 지우기 DELETE FROM EMPLOYEE; 차은우 사원의 데이터 지우기 DELETE FROM EMPLOYEE WHERE EMP_NAME = '차은우'; 데이터를 삭제할때도 해당 컬럼이 부모데이로 사용되는 경우 삭제되지 않는다 -- DEPT_ID가 D1인 부서를 삭제 (DEPT_ID)는 부모키 DELETE FROM DEPARTMENT WHERE DEPT_ID = 'D1'; -- ORA-02292: integrity constraint (KH.SYS_C007215) violated - ..

    [Oracle] DML(2) - UPDATE

    UPDATE 테이블에 기록되어있는 기존의 데이터를 수정하는 구문 [표현식] UPDATE 테이블명 SET 컬럼명 = 바꿀값, 컬럼명 = 바꿀값, ... --> 여러개의 컬럼값 동시변경 가능(,로 나열해야됨!! AND 아님!!) [WHERE 조건]; --> 생략하면 전체 행의 모든 행의 데이터가 변경된다..!! 그래서 조건을 꼭 쓰자 SELECT * FROM DEPT_COPY; -- D9 부서의 부서명을 '전략기획팀'으로 수정 UPDATE DEPT_COPY SET DEPT_TITLE = '전략기획팀'; -- 총무부 -- 이러면 행이 다 바뀜;; ROLLBACK; -- 빠르게 롤백 UPDATE DEPT_COPY SET DEPT_TITLE = '전략기획팀' -- 총무부 WHERE DEPT_ID = 'D9'; -..

    [Oracle] 테이블 복사하기

    기존 테이블 SELECT EMP_ID, EMP_NAME, DEPT_CODE, HIRE_DATE FROM EMPLOYEE 구조만 복사하기 CREATE TABLE EMP_DEPT AS SELECT EMP_ID, EMP_NAME, DEPT_CODE, HIRE_DATE FROM EMPLOYEE WHERE 1 = 0 ; 데이터까지 복사하기 CREATE TABLE EMP_DEPT2 AS SELECT EMP_ID, EMP_NAME, DEPT_CODE, HIRE_DATE FROM EMPLOYEE WHERE 1 = 1 ;

    [Oracle] DML(1) - INSERT

    DQL (QUERY 데이터 질의 언어) : SELECT DML (MANIPULATION 데이터 조작 언어) : [SELECT], INSERT, UPDATE, DELETE DDL (DEFINITON 데이터 정의 언어 ) : CREATE, ALTER, DROP DCL (CONTROL 데이터 제어 언어 ) : GRANT, REVOKE, [COMMIT, ROLLBACK] TCL (TRANSACTION 트랜잭션 제어 언어) : COMIT, ROLLBACK 데이터 조작 언어 테이블에 값을 삽입(INSERT) 하거나, 수정(UPDATE) 하거나, 삭제(DELETE) 하는 구문 1. INSERT 테이블에 새로운 행을 추가하는 구문 [표현식] 1) INS..

    [Oracle] SUBQUERY를 이용한 테이블 생성

    테이블 복사 뜨는 개념 [ 표현식 ] CREATE TABLE 테이블명 AS 서브쿼리; -- EMPLOYEE 테이블을 복제한 새로운 테이블 생성 CREATE TABLE EMPLOYEE_COPY AS SELECT * FROM EMPLOYEE; SELECT * FROM EMPLOYEE_COPY; --> 컬럼, 데이터값은 잘 복사되지만, 제약조건 같은 경우 NOT NULL만 복사됨.. 테이블 구조만 복사 CREATE TABLE EMPLOYEE_COPY2 AS SELECT EMP_ID, EMP_NAME, SALARY, BONUS FROM EMPLOYEE -- 테이블 구조만 가져오고 싶다. 데이터 제외하고 WHERE 1 = 0; -- 무조건 FALSE인 조건 : 구조만을..

    [Oracle] DEFAULT 옵션

    ** 제약조건 아님 ** 컬럼을 선정하지 않고 INSERT시 NULL이 아닌 기본값을 INSERT 하고자 할 때 세팅해둘 수 있는 값 CREATE TABLE MEMBER( MEM_NO NUMBER PRIMARY KEY, MEM_NAME VARCHAR2(20) NOT NULL, MEM_AGE NUMBER, HOBBY VARCHAR2(20) DEFAULT '없음', ENROLL_DATE DATE DEFAULT SYSDATE ); -- INSERT INTO 테이블명 VALUES(값1, 값2, ...) INSERT INTO MEMBER VALUES(1, '손흥민', 20, '축구', '22/01/01'); INSERT INTO MEMBER VALUES(2, '이강인', NULL, N..

    [Oracle] CONSTRAINT(제약조건)_FOREIGN KEY(외래키)_삭제옵션

    자식 테이블 생성시 외래키 제약조건 부여할 때 삭제옵션 지정가능 * 삭제옵션 : 부모테이블의 데이터 삭제시 그 데이터를 사용하고 있는 자식테이블의 값을 어떻게 처리할껀지 - ON DELETE RESTRICTED (기본값) : 삭제제한옵션으로, 자식데이터로 쓰이는 부모테이터는 삭제 아예 안되게끔 - ON DELETE SET NULL : 부모데이터 삭제시 해당 데이터를 쓰고 있는 자식데이터의 값을 NULL로 변경 - ON DELETE CASCADE : 부모데이터 삭제시 해당 데이터를 쓰고 있는 자식데이터도 같이 삭제시킴 SET NULL 옵션 CREATE TABLE MEM( MEM_NO NUMBER PRIMARY KEY, MEM_ID VARCHAR2(20) NOT NULL UNIQUE, MEM_PWD VARC..

    [Oracle] CONSTRAINT(제약조건)_FOREIGN KEY(외래키)

    회원등급에 대한 데이터를 따로 보관하는 테이블 CREATE TABLE MEM_GRADE( GRADE_CODE NUMBER PRIMARY KEY, GRADE_NAME VARCHAR2(30) NOT NULL ); INSERT INTO MEM_GRADE VALUES(10, '일반회원'); INSERT INTO MEM_GRADE VALUES(20, '우수회원'); INSERT INTO MEM_GRADE VALUES(30, '특별회원'); CREATE TABLE MEM( MEM_NO NUMBER PRIMARY KEY, MEM_ID VARCHAR2(20) NOT NULL UNIQUE, MEM_PWD VARCHAR2(20) NOT NULL, MEM_NAME VARCHAR2(20) NOT NULL, GENDER CHA..