< 데이터 삽입 및 조회 시의 묵시적 형변환 >
데이터 삽입 시 형변환 문자형 <=> 숫자형 (가능)
데이터 조회 시
where title = 3; (문자형을 숫자로 찾는 것 -> 불가)
where count = '3'; (숫자형을 문자로 찾는 것 -> 가능)
📌 그러나 이렇게 묵시적 형변환을 이용해 조회를 하는 경우,
천만건 이상의 데이터 환경에서는 엄청난 성능 저하가 발생할 수 있으므로
칼럼 타입에 맞춰서 질의를 하는 것이 좋다! 📌
CREATE TABLE 테이블명(
컬럼명1 데이터형,
컬럼명2 데이터형,
컬럼명3 데이터형
)
<CREATE TABLE emp01
AS SELECT * FROM employees;
--cf. 제약 조건은 NOT NULL만 복사
CREATE TABLE emp02
AS SELECT * FROM employees WHERE 1=0;
ALTER TABLE emp02
ADD(job VARCHAR2(50))
ALTER TABLE emp02
MODIFY(job VARCHAR2(100))
ALTER TABLE emp02
DROP COLUMN job;
TRUNCATE TABLE emp01; --DDL
DELETE FROM emp01; --DML
DDL은 트랜잭션 적용이 불가능하다. (롤백이 불가능)
DML은 트랜잭션 적용이 가능하여 롤백이 가능하다.
DELETE에 WHERE 절을 붙이면 특정 데이터만 삭제 가능하다.
DROP TABLE emp01 [CASCADE CONSTRAINT];
DROP TABLE emp01 PURGE;
휴지통으로 보내지 않고 바로 삭제
RENAME emp01 TO emp00;
=> 쿼리를 실행할 후 commit
필요 ⭐️
INSERT INTO dept01 VALUES(300, 'Developer', 100, 10); --컬럼 순서대로 넣어줌
INSERT INTO dept01 (department_id, department_name)
VALUES(400, 'Developer2); --일부 컬럼에만 데이터 추가(위에 적은 순서대로)
주의⏰
모든 데이터를 수정하길 원하지 않는 경우 update와 delete는 반드시 where 절을 수반해야한다!
UPDATE dept01 SET department_name='IT Service'
WHERE department_id=300;
where 절이 없으면 모든 department_name 데이터가 다 IT Service로 바뀌게 된다.
UPDATE emp01 SET salary = salary*1.1
WHERE salary >= 3000;
DELETE FROM dept01
WHERE department_name='IT_Service';