2022.08.09 - SQL(2)

sofia·2022년 8월 9일
0

SQL

목록 보기
8/13
post-thumbnail

테이블 생성

CREATE TABLE new_emp
(NO NUMBER(5)
,NAME VARCHAR2(20)
,HIREDATE DATE
,BONUS NUMBER(6,2)
);

테이블 복사

CREATE TABLE DEPT3
AS
SELECT * FROM DEPT2 ;
-- 테이블 복사, 백업용

CREATE TABLE DEPT4
AS
SELECT DCODE,DNAME FROM DEPT2 ;   
-- 원하는 항목(데이터)만으로도 테이블 복사가능


CREATE TABLE DEPT6
AS
SELECT DCODE, DNAME
 FROM DEPT2
 WHERE DCODE IN(1000,1001,1002);

예제 문제 01

EMP테이블에서EMPNO,ENAME, HIREDATE 컬럼만 가져와서 NEW_EMP2테이블 생성 쿼리를 작성하시오

CREATE TABLE NEW_EMP2
AS
SELECT EMPNO
     , ENAME
     , HIREDATE FROM EMP;

거짓조건작성한 데이터 복사

CREATE TABLE DEPT5
AS
SELECT * FROM DEPT2
WHERE 1=2;

컬럼 추가

  • null 데이터
ALTER TABLE DEPT6
ADD(LOCATION VARCHAR2(10));

  • 디폴트값
ALTER TABLE DEPT6
ADD(LOCATION2 VARCHAR2(10) DEFAULT 'SEOUL');

예제 문제 02


ALTER TABLE NEW_EMP2
ADD(BRITHDAY DATE DEFAULT SYSDATE);

예제 문제 03

CREATE TABLE NEW_EMP3
AS
SELECT * FROM NEW_EMP2
WHERE 1=2;

컬럼명 바꾸기

--컬럼명 바꾸기
ALTER TABLE DEPT6
RENAME COLUMN LOCATION2 TO LOC;

테이블명 바꾸기

--테이블 이름 바꾸기
RENAME DEPT6 TO DEPT7;

DEPT6 에서 DEPT7로 바뀜

예제 문제 04

생성한 NEW_EMP2 테이블의 BRITHDAY 컬럼명을 BIRTH로 변경하는 쿼리 작성

ALTER TABLE NEW_EMP2
RENAME COLUMN BRITHDAY TO BIRTH;

컬림 길이 변경

(원래 VARCHAR2(10)이었음)

ALTER TABLE DEPT7
MODIFY(LOC VARCHAR2(20));

예제 문제 05

new_emp2 테이블의 empno 컬럼의 길이를 NUMBER(7)로 변경하는 쿼리 작성하시오.

ALTER TABLE NEW_EMP2
MODIFY(EMPNO NUMBER(7));


컬럼 삭제

ALTER TABLE DEPT7
DROP COLUMN LOC;


LOC 컬럼 삭제됨

예제 문제 06

new_emp2 테이블의 컬럼 중 birth 컬럼 삭제하는 쿼리 작성하시오.

ALTER TABLE NEW_EMP2
DROP COLUMN BIRTH;

DML로 데이터 관리 방법(Chapter 6)

INSERT

    DEPT2(DCODE, DNAME, PDEPT, AREA) 
VALUES 
    (9000,'temp_1',1006,'Temp Area');
-- 순서대로 해당되는 컬렴명에 맞춰서 값 삽입

-- 방금 전 한거 취소(확정이 안된 상태이기에 가능함)
commit;
-- 커밋=>확정
-- 컬럼 갯수에 맞춰서 데이터 입력시엔 () 생략가능

INSERT INTO T_MINUS VALUES (1,1); --아래 사진 참고
-- 컬럼 갯수에 맞춰서 데이터 입력하지 않았으므로 오류발생

INSERT INTO T_MINUS(NO1,NO2) VALUES (1,1); --아래 사진 참고`

INSERT INTO T_MINUS VALUES (1.1,1.1,1.1);


NO1의 경우 NUMBER -- 소수정수 다 가능
NO2의 경우 NUMBER(3) -- 소수점 자리 표시 안되어있음
NO3의 경우 NUMBER(3,2) -- 소수점 자리 표시 되어있으므로 가능

```sql
INSERT INTO T_MINUS VALUES (22.22,22.22,22.22);
-- 오류 발생

INSERT INTO T_MINUS VALUES (2.22,22.22,22.22);
-오류 발생
INSERT INTO T_MINUS VALUES (2.22,2.22,22.22);
오류 발생
INSERT INTO T_MINUS VALUES (2.22,2.22,2.22);
-- 오류 발생 X

UPDATE

  • 데이터 변경
UPDATE PROFESSOR
  SET BONUS = 200
 WHERE POSITION ='assistant professor';

원래의 값

변경된 값

DELETE

  • 데이터 삭제
DELETE 
    FROM DEPT2
  WHERE DCODE >=9000 AND DCODE <=9999;

테이블을 엑셀로 백업(또는 파일만들기)





엑셀에서 SQL로






(확인해보면 데이터 생성된것을 볼 수있음)

TRUNCATE

TRUNCATE TABLE DEPT4;
--데이터 삭제


ROLLBACK 해도 복구 안됨
COMMIT을 거치지 않아도 바로 삭제가 됨

DROP

--테이블 삭제
DROP TABLE DEPT4;

조회자체가 안됨. 완전 테이블 파일을 삭제함

연습문제

1

NEW_EMP2의 테이블의 컬럼은 남겨 놓고 데이터만 지우는 쿼리 작성하시오
DELETE FROM NEW_EMP2;

2

NEW_EMP2 테이블을 완전히 삭제하는 쿼리 작성
DROP TABLE NEW_EMP2;

튜닝..?(Chapter 8)

(추가예정

0개의 댓글