목록Database/Oracle (40)
고래씌
1. DROP [표현법] DROP TABLE 테이블명; ▶ EMP_NEW 테이블 삭제 ▶ 테스트 환경 구성 DEPT_TEST 테이블의 DEPT_ID 칼럼을 PRIMARY KEY 제약조건 추가 ▶ EMPLOYEE_COPY3에 외래키(DEPT_CODE)를 추가, 부모테이블은 DEPT_TEST ▶ DEPT_TEST 테이블 삭제 ☞ 어딘가에서 참조되고 있는 부모테이블들 삭제되지 않는다. 만약에 부모테이블을 삭제하고 싶다면? ▶ 방법 1) 참조하고있는 자식테이블을 먼저 삭제후 부모테이블 삭제하기 ☞ 참조하고있던 자식테이블이 삭제되었으므로 문제없음 ▶ 방법 2) 부모테이블만 삭제하되 맞물려있는 외래키 제약조건도 함께 삭제하기 DROP TABLE 부모테이블명 CASCADE CONSTRAINT;
1. DDL (Data Definition Language) : 객체들을 새롭게 생성(CREATE)하고, 수정, 삭제하는 구문 2. ALTER : 객체 구조를 수정하는 구문 [표현법] ALTER TABLE 테이블명 수정할 내용; ▶ 수정할 내용 1) 컬럼 추가 / 수정 / 삭제 2) 제약조건 추가 / 삭제 => 수정은 불가 3) 테이블명 / 컬럼명 / 제약조건명 수정 1) 컬럼추가 / 수정 /삭제 1-1) 컬럼추가 (ADD) : ADD 추가할 컬럼명 자료형 [DEFAULT 기본값] [] 생략가능 ▶ DEPT_COPY 테이블에 CNAME 칼럼 추가 ALTER TABLE DEPT_COPY ADD CNAME VARCHAR2(20); ☞ 새로운 칼럼이 만들어지고 NULL값으로 채워짐 ▶ DEPT_COPY 테이블..
1. DELETE : 테이블에 기록된 데이터를 "행"단위로 삭제하는 구문 [표현법] DELETE FROM 테이블명 WHERE 조건; -- WHERE절 생략가능, 생략시 모든행이 삭제 DELETE FROM EMPLOYEE; ☞ 0개행 조회 ☞ 데이터는 없지만 칼럼자체는 남아있음 ▶ EMPLOYEE 테이블로부터 김갑생, 발말똥 사원의 정보 삭제하기 DELETE FROM EMPLOYEE WHERE EMP_ID IN(900, 901); 2. TRUNCATE - 테이블의 전체 행을 모두 삭제할 때 사용하는 구문(절삭) - DELETE 문보다 수행속도가 빠름 - 단, 별도의 조건을 제시불가 => ROLLBACK도 불가함 [표현법] TRUNCATE TABLE 테이블명;
1. UPDATE : 테이블에 기록된 기존의 데이터를 수정하는 구문 [표현법] UPDATE 테이블명 SET 컬럼명 = 바꿀값, 컬럼명 = 바꿀값, 컬럼명 = 바꿀값, ... WHERE 조건; ☞ 여러개의 컬럼값을 동시에 변경 가능, 이때 바꿀칼럼을 ,로 나열해야함 ☞ WHERE 절은 생략 가능. 생략시에는 테이블의 모든 행의 데이터가 변경되어버림 ▶ 예제1) D9부서의 부서명을 전략기획팀으로 수정 ① 복사본 테이블을 만든 후 작업 ② DEPT_COPY 테이블에서 D9부서의 부서명을 전략기획팀으로 수정(조건 추가 X) => 이때 주의할 것 !!!!!!!!!!!!!!!!!! 조건을 추가하지 않는 경우 모든 행의 값이 전략기획팀으로 수정되는 문제가 발생한다!!!! ③ 변경사항에 대해서 되돌리는 명령어 이러한 ..
1. DML (Data Manipulation Language) : 데이터 조작 언어 - 테이블에 새로운 데이터를 삽입(INSERT)하거나 기존의 데이터를 수정(UPDATE)하거나 삭제(DELETE)하는 구문들 2. INSERT : 테이블에 새로운 "행"을 추가하는 구문 [표현법] * INSERT INTO [계열] 1) INSERT INTO [테이블명] VALUES(값1, 값2, 값3 ...); => 해당 테이블에 "모든"컬럼에 대해 추가하고자 하는 값을 내가 직접 제시해서 "한 행"을 INSERT하고자 할 때 쓰는 표현법 ※ 주의사항 : 컬럼의 순서, 자료형, 개수를 맞춰서 VALUES 괄호 안에 나열해야함 ▶ EMPLOYEE 테이블에 사원 정보 추가 => 값 추가 된 것을 확인 2) INSERT IN..
1. SUBQUERY를 활용한 테이블 생성(테이블 복사) [표현법] CREATE TABLE 테이블명 AS 서브쿼리; ▶ EMPLOYEE 테이블을 복제한 새로운 테이블 생성(EMPLOYEE_COPY) ☞ 컬럼, 조회결과인 데이터들 제대로 복사됨 ☞ 제약조건 중 NOT NULL제약조건 제대로 복사됨 ☞ PRIMARY KEY, 코멘트 등은 복사가 안됨 ☞ 서브쿼리를 통해 테이블을 생성할 경우 제약조건의 경우 NOT NULL만 복사됨 ▶ EMPLOYEE 테이블에 있는 컬럼의 구조만 복사하고 싶을 때 => 명시적으로 반환값이 FALSE인 값을 넣으면 됨 ▶ 전체 사원들 중 급여가 300만원 이상인 사원들의 사번, 이름, 부서코드, 급여 복제 칼럼도 함께 복제 복제할 테이블명 : EMPLOYEE_COPY3 ▶ 전체..
1. DEFAULT 설정 : 특정 컬럼에 들어올 값에 대한 기본값 설정 가능(제약조건은 아님) 예) 회원가입일 컬럼에 회원정보가 삽입된 순간의 시간을 기록하고 싶다. -> DEFUALT로 SYSDATE 넣어주면됨 ▶ DEFAULT 설정이 추가된 테이블 만들기 ☞ 모두 현재 날짜로 추가된 것 확인 ▶ INSERT INTO 테이블명(컬럼명들 나열) VALUES(순서에 맞게 값들 나열) ☞ 값을 추가하고자 지정안한 칼럼에는 기본값으로 NULL이 들어간다. ☞ 만약 DEFAULT 옵션이 부여되어 있다면 NULL값이 아닌 DEFAULT 값으로 들어간다. ☞ 단, NULL값을 넣겠다고 명시를 한다면 NULL값이 들어간다.
1. INSERT (DML문) : 데이터 추가시에는 한행으로 추가, 추가할 값을 기술 INSERT INTO 테이블명 VALUES(첫번째칼럼의 값, 두번째 칼럼의 값 ...); ▶ MEMBER 테이블에 칼럼값 추가 ☞ 하지만,,,,!!!!! 아래와 같은 문제들이 존재할 수 있다. INSERT INTO MEMBER VALUES(NULL, NULL, NULL, SYSDATE); => 아이디, 비번, 이름에 NULL값이 존재해도 되는가? 절대아님!! INSERT INTO MEMBER VALUES('user03','pass03','이말똥', SYSDATE); => 중복된 아이디가 존재해도 되나? 절대아님! ☞ 위의 NULL값들이나 중복된 아이디값은 유효한 데이터가 아님. 유효한 데이터값을 유지하기 위해서는 "제약..