1-1. 데이터 타입
1-2. 문자형 데이터 타입
1-3. 숫자형 데이터 타입
NUMBER(P,S) -- P : 소수점을 포함한 전체 다릿수 S : 소수점 자릿수
-- NUMBER()도 가변형 타입으로 P와 S를 입력하지 않으면 저장 데이터 크기에 맞게 자동 조절된다
-- NUMBER(P) : 정수 NUMBER(S) : 실수
-- 최대 38자리(10의 38승 -1 만큼이 아니다)
-- 입력값 : 123.89
NUMBER() : 123.89
NUMBER(2) : error
NUMBER(3) : 124
NUMBER(3,2) : error
NUMBER(4,1) : 123.9
NUMBER(4,2) : error
NUMBER(5) : 124
NUMBER(5,0) : 124
NUMBER(5,2) : 123.89
NUMBER(6,1) : 123.9
-- P < S
0.01234 NUMBER(4,5)
0.00012 NUMBER(2,5)
NUMBER(3,5)
NUMBER(4,5)
-- 입력값 : 0.000127
NUMBER(4,5) : 0.00013
NUMBER(2,7) : 0.0000012
-- S가 음수
-- 입력값 : 123.54
NUMBER(7,-1) : 120 //소수점을 기준으로 앞 자리를 반올림 하고 뒷 자리를 잘라준다
-- 입력값 : 125.54
NUMBER(7,-1) : 130
-- 입력값 : 123.894
NUMBER(6,-2) : 100
1-4. 날짜 데이터 타입
1-5. LOB 타입
1-6. DDL(Data Definition Language)
2-1. 데이터 조작어란
2-2. 데이터 조작어의 종류
2-3. SELECT
SELECT 컬럼
FROM 테이블
WHERE 조건;
2-4. INSERT
INSERT INTO 테이블명 (컬럼1, 컬럼2, ...) -- 특정 컬럼
VALUES (값1, 값2, ...);
INSERT INT 테이블명 VALUES (값1, 값2, ...); -- 전체 컬럼
2-5. UPDATE
UPDATE 테이블 SET 컬럼1 = 값1, 컬럼2 = 값2, ...
WHERE 조건;
2-6. DELETE
DELETE 테이블 WHERE 조건;
2-7. TRUNCATE와 DELETE와 DROP 차이점
-- DDL
-- 테이블 생성 CREATE
-- 테이블, 칼럼등에 변화가 있으면 목록에서 새로고침을 해주어야 보인다
CREATE TABLE EMPLOYEES2 (
EMPLOYEE_ID NUMBER(10),
NAME VARCHAR2(20),
SALARY NUMBER(7,2)
);
-- 테이블 삭제 DROP
DROP TABLE EMPLOYEES2;
-- 기존 테이블과 동일하게 작성
CREATE TABLE EMPLOYEES3
AS
SELECT * FROM EMPLOYEES e
;
-- 칼럼 추가 ALTER ADD
ALTER TABLE EMPLOYEES2 ADD (
MANAGER_ID VARCHAR2(20)
);
-- 칼럼 추가 ALTER ADD
ALTER TABLE EMPLOYEES2 ADD (
MANAGER_I VARCHAR2(20)
);
-- 알터문 작성시 크리에이트문에 추가해주는게 좋다
CREATE TABLE EMPLOYEES2 (
EMPLOYEE_ID NUMBER(10),
NAME VARCHAR2(20),
SALARY NUMBER(7,2),
MANAGER_ID VARCHAR2(20)
);
-- 칼럼 삭제 ALTER DROP
ALTER TABLE EMPLOYEES2 DROP COLUMN MANAGER_I;
-- 칼럼 수정 ALTER MODIFY
ALTER TABLE EMPLOYEES2 MODIFY (
MANAGER_ID VARVCHAR2(20)
);
-- 칼럼 수정 ALTER MODIFY
ALTER TABLE EMPLOYEES2 MODIFY (
MANAGER_NAME VARVCHAR2(20) -- 모디파이는 이름을 기준으로 하기 때문에 칼럼명을 수정할 수 없다
);
-- 데이터 넣기 INSERT
INSERT INTO EMPLOYEES2 VALUES (1, '테스트', 3000);
-- 데이터 비워내기 TRUNCATE
TRUNCATE TABLE EMPLOYEES2;
-- 테이블 생성
CREATE TABLE SAMPLE (
DEPTNO NUMBER(20),
DEPTNAME VARCHAR2(15),
DEPLOC VARCHAR2(15),
DEPMANAGER VARCHAR2(10
);
-- INSERT
INSERT INTO SAMPLE (DEPTNO, DEPTNAME, DEPLOC, DEPMANAGER)
VALUES (10, '기획실', '서울', '홍길동');
-- INSERT INTO SAMPLE (DEPTNO, DEPTNAME, DEPLOC, DEPMANAGER)
-- VALUES (20, '전산실', '부산', '김말똥');
-- INSERT INTO SAMPLE (DEPTNO, DEPTNAME, DEPLOC, DEPMANAGER)
-- VALUES (30, '영업부', '광주', 'NULL');
INSERT INTO SAMPLE
VALUES (20, '전산실', '부산', '김말똥');
INSERT INTO SAMPLE
VALUES (30, '영업부', '광주', 'NULL');
-- UPDATE
-- SAMPLE 테이블에서 DEPTNO = 50으로 UPDATE
-- 조건 : DEPTNO = 30
UPDATE SAMPLE SET DEPTNO = 50
WHERE DEPTNO = 30;
-- DELETE
-- DEPTNO = 50 데이터 삭제
DELETE SAMPLE WHERE DEPTNO = 50;
-- 테이블 생성
/*
* 테이블명 : TB_TEAM
* 칼럼명 : TEAM_ID NUMBER(10)
* LOCALS VARCHAR2(10)
* TEAM_NAME VARCHAR2(10)
* OPEN_DATE DATE
* PHONE_NUMBER VARCHAR2(15)
* HOME_PAGE VARCHAR2(60)
*/
CREATE TABLE TB_TEAM(
TEAM_ID NUMBER(10)
LOCALS VARCHAR2(10)
TEAM_NAME VARCHAR2(10)
OPEN_DATE DATE
PHONE_NUMBER VARCHAR2(15)
HOME_PAGE VARCHAR2(60)
);
-- INSERT
-- 100, '서울', '서울팀', '2021/02/02', '010-1234-4567', 'WWW.TJDNFXSLA.COM'
-- 200, '부산', '부산팀', '19/05/01', '010-987-6543'
INSERT INTO TB_TEAM
VALUES (100, '서울', '서울팀', '2021/02/02', '010-1234-4567', 'WWW.TJDNFXSLA.COM')
-- INSERT INTO TB_TEAM
-- VALUES (200, '부산', '부산팀', '19/05/01', '010-987-6543', 'NULL')
INSERT INTO TB_TEAM (TEAM_ID, LOCALS, TEAM_NAME, OPEN_DATA
VALUES (200, '부산', '부산팀', '19/05/01', '010-987-6543')
-- UPDATE
-- TEAM_ID 200인 팀의 홈페이지를 WWW.QNTKSXLA.COM
UPDATE TB_TEAM SET HOME_PAGE = WWW.QNTKSXLA.COM
WHERE TEAM_ID = 200;
-- DLETE TEAM_ID = 100
DELETE TB_TEAM WHERE TEAM_ID = 100;