데이터베이스
25일차// [Oracle] TABLE 생성, 컬럼 설정
aesup
2021. 2. 16. 15:24
728x90
테이블 스페이스 생성
-- 테이블 스페이스 생성
CREATE TABLESPACE TABLESPACE2
DATAFILE 'D:\TMP\TEST_TEST1.DBF' SIZE 10M
AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED -- 추가되는 용량
LOGGING
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
-- 테이블 스페이스 수정
-- 테이블 CREATE, DROP, ALTER(수정)
-- 데이터 INSERT, DELETE, UPDATE
ALTER TABLESPACE TABLESPACE2
RENAME TO TEST_TBS_NEW;
ALTER DATABASE
DATAFILE 'D:\TMP\TEST_TEST1.DBF' RESIZE 7M;
테이블 생성
-- 테이블 생성
CREATE TABLE TB_TEST01(
COL1 VARCHAR2(10),
COL2 VARCHAR2(10),
COL3 VARCHAR2(10)
);
CREATE TABLE TB_TEST02(
COL1 VARCHAR2(10),
COL2 VARCHAR2(10)
)TABLESPACE TABLESPACE1;
테이블 복제
-- 테이블 복제 --일할때는 복제하는게 마음편하다
-- 복사를 해와라
------------------------ 테이블 복제: 데이터 포함
CREATE TABLE TB_TEST03
AS
SELECT
*
FROM jobs;
--복사됬는지 확인
SELECT
*
FROM tb_test03;
--------------------------- 테이블 복제: 데이터 미포함(틀만 가져오고싶다)
CREATE TABLE TB_TEST04
AS
SELECT
*
FROM jobs
WHERE 1=2;---
-- 확인
SELECT
*
FROM tb_test04;
복사한 테이블 컬럼 명 변경
--복사한 테이블의 컬럼 명을 바꾸고 싶다.
CREATE TABLE TB_TEST05("업무번호","업무명")
AS
SELECT job_id, job_title
FROM jobs;
SELECT * FROM tb_test05;
CREATE TABLE TB_TEST05("부서번호","총합","평균")
AS
SELECT department_id, SUM(salary), AVG(salary)
FROM employees
GROUP BY department_id;
테이블 명 수정
테이블 컬럼 추가(ADD), 수정(MODIFY) ( ALTER )
--테이블 수정
--테이블 명 변경
ALTER TABLE TB_TEST04
RENAME TO TB_TEST99;
--단일 컬럼 추가
ALTER TABLE TB_TEST99
ADD
COL_NEW1 VARCHAR2(30);
--다중 컬럼 추가
ALTER TABLE TB_TEST99
ADD
(COL_NEW2 NUMBER, COL_NEW3 DATE);
-- 단일 컬럼 수정
ALTER TABLE TB_TEST99
MODIFY
COL_NEW1 VARCHAR2(20);
--다중 컬럼 수정
ALTER TABLE TB_TEST99
MODIFY
(COL_NEW2 VARCHAR2(10), COL_NEW3 NUMBER);
--컬럼 수정
ALTER TABLE TB_TEST99
RENAME
COLUMN
JOB_ID TO JOBNUM;
DROP TABLE TB_TEST99;
DROP TABLE TB_TEST01;
DROP TABLE TB_TEST02;
DROP TABLE TB_TEST03;
--이건 삭제해도 못살린다.
--휴지통 비우기
PURGE RECYCLEBIN;
테이블 삭제
DROP TABLE TB_TEST05;
컬럼 삭제
--컬럼 삭제
ALTER TABLE TB_TEST99
DROP
COLUMN COL_NEW1;
--다중 컬럼 삭제
ALTER TABLE TB_TEST99
DROP
(COL_NEW2, COL_NEW3);
INSERT
INSERT INTO TB_TEST(DEPTNO,DEPTNAME, MGRID,LOCID)
VALUES(10,'기획부',100,120);
INSERT INTO TB_TEST(DEPTNO,DEPTNAME)
VALUES(20,'관리부');
--컬럼이 없어도 자동적으로 순서에 맞춰서 들어간다. (컬럼 갯수에 맞춰서 밸류 써줘야된다)
INSERT INTO tb_test
VALUES(30,'전산부',300,230);
INSERT INTO tb_test
VALUES(30,'전산부',300);--not enough values
--컬럼의 위치가 바뀌어도 값만 제대로 넣으면 된다.
INSERT INTO tb_test(DEPTNAME,DEPTNO,LOCID, MGRID)
VALUES('경리부',40,210,150);
INSERT INTO tb_test(DEPTNO,DEPTNAME, MGRID,LOCID)
VALUES('50','개발부',250,110);
SELECT
*
FROM tb_test;
DELETE
--DELETE
DELETE FROM tb_test
WHERE deptname = '전산부';
DELETE FROM tb_test
WHERE mgrid IS NULL; -- null인 행을 다 지운다.
UPDATE
-- UPDATE
UPDATE tb_test
SET MGRID = 120
WHERE DEPTNO = 40;
UPDATE tb_test
SET MGRID = 300, locid = 270
WHERE DEPTNAME = '개발부';
728x90