[SQL]테이블 생성, 삭제, 변경

2024. 9. 5. 10:59·SQL

🐲기본개념

ER-DIAGRAM

  • P (Primary Key): 해당 열이 기본 키임을 나타낸다. 기본 키는 테이블 내에서 각 행을 유일하게 식별하는 데 사용된다. 원칙은 수정이 가능하지만, 외래키로 설정(자식이 있을때)되있을 때는 수정 불가하다.
  • U (Unique Key): 해당 열이 고유 키임을 나타낸다. 고유 키는 중복된 값을 허용하지 않지만, 기본 키와는 달리 NULL 값을 허용할 수 있다.
  • F (Foreign Key): 해당 열이 외래 키임을 나타낸다. 외래 키는 다른 테이블의 기본 키를 참조하여 두 테이블 간의 관계를 형성한다.
  • *: 해당 열에는 NOT NULL임을 의미한다. 필수입력해야하는 셀이다

참고: https://inpa.tistory.com/entry/DB-%F0%9F%93%9A-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EB%A7%81-1N-%EA%B4%80%EA%B3%84-%F0%9F%93%88-ERD-%EB%8B%A4%EC%9D%B4%EC%96%B4%EA%B7%B8%EB%9E%A8

 

📋 데이터 모델링 개념 & ERD 다이어그램 작성 💯 총정리

데이터 모델링 이란? 데이터 모델링이란 정보시스템 구축의 대상이 되는 업무 내용을 분석하여 이해하고 약속된 표기법에 의해 표현하는걸 의미한다. 그리고 이렇게 분석된 모델을 가지고 실제

inpa.tistory.com

🐲테이블 생성

1. 테이블 복사


  1)테이블 구조,데이터 전부 복사, 제약조건,모델링은 일부만 복사(NOT NULL)

    CREATE TABLE EMP1
     AS 
        SELECT*FROM HR.EMPLOYEES;

 

 

   2)구조 복사, 데이터는 50번, 80번 부서만 복사

      CREATE TABLE EMP2
     AS 
        SELECT*FROM HR.EMPLOYEES
        WHERE DEPARTMENT_ID IN (50,80);


  3)구조만 복사, DATA 빼고

  CREATE TABLE EMP3
     AS 
        SELECT*FROM HR.EMPLOYEES
        WHERE 1=0;

         
  4)구조만 복사된 TABLE EMP3에 DATA 만 추가

    CREATE TABLE EMP4
     AS 
        SELECT*FROM HR.EMPLOYEES
        WHERE 1=0; --DATA가 없는 테이블 생성
      INSERT INTO EMP4 
       SELECT*FROM HR.EMPLOYEES;
    COMMIT; --    DATA 만 추가

   
  5)일부칼럼만 복사해서 새로운 테이블 생성

    CREATE TABLE EMP5
    AS
      SELECT EMPLOYEE_ID EMPID,
             FIRST_NAME||' '||LAST_NAME ENAME,
             SALARY SAL,
             SALARY*COMMISSION_PCT COMM,
             MANAGER_ID MGR,
             DEPARTMENT_ID DEPTID
      FROM HR.EMPLOYEES;

2. SQLDEVELOPER 메뉴에서 테이블을 생성

   KYJ계정 아래에 있는 테이블메뉴를 우클릭->새테이블->TABLE3 생성

 결과
   EMPID NUMBER(6,0) No
   ENAME VARCHAR2(30 BYTE) No
   TEL     VARCHAR2(20 BYTE) Yes
   EMAIL VARCHAR2(320 BYTE) Yes

 3. SQL SCRIPT 로 테이블 생성

   CREATE TABLE TABLE2 (
   EMPID NUMBER(6,0) NOT NULL PRIMARY KEY,
   ENAME VARCHAR2(30 BYTE) NULL,
   TEL   VARCHAR2(20 BYTE) NULL,
   EMAIL VARCHAR2(320 BYTE)
     );

🐲테이블 제거

영구적으로 구조와 데이터가 제거된다.

DROP TABLE EMP1;


 DROP되는 테이블이 부모테이블일 경우 자식을 먼저 지워야 삭제가능
    HR 서버에서 DROP TABLE DEPARTMENTS; --삭제가 안된다.
    ⚠️오류보고-
    ORA-02449:외래 키에 의해 참조되는 고유/기본 키가 테이블에 있습니다
    02449. 00000 - "unique/primary keys in table referenced ny foreign keys"

 DROP TABLE 테이블명 CASCADE;

   💡 CASACADE를 이용해서 RELATIONSHIP에 상관없이 삭제가능

🐲테이블 (구조)변경

 1. 칼럼추가

    ALTER  TABLE  EMP5
    ADD ( LOC  VARCHAR2(6)  );  -- 추가된 DATA NULL


    변경 사항 확인은 새로 고침하라  

 2. 칼럼제거

    ALTER TABLE  EMP5
    DROP COLUMN   LOC;


 3. 데이블 이름 변경

    RENAME   EMP4  TO NEWEMP;

 

 4. 칼럼 이름 변경

ALTER TABLE TABLE2 RENAME COLUMN ENAME TO NAME;


 5. 칼럼속성변경 : 크기를 늘이거나 줄인다

    ALTER  TABLE  EMP5
    MODIFY (  ENAME  VARCHAR2(60) ); -- 46 -> 60

 

'SQL' 카테고리의 다른 글

[SQL]PIVOT(행을 열로 전환)/UNPIVOT  (4) 2024.09.06
[sql]제약조건, 데이터 삽입∙수정∙삭제  (2) 2024.09.05
[sql]오라클 계정생성  (0) 2024.09.05
정규화(Normalization)  (0) 2024.09.05
[SQL]WINDOW FUNCTION(윈도우 함수),분석함수(Analytic Function)  (0) 2024.09.04
'SQL' 카테고리의 다른 글
  • [SQL]PIVOT(행을 열로 전환)/UNPIVOT
  • [sql]제약조건, 데이터 삽입∙수정∙삭제
  • [sql]오라클 계정생성
  • 정규화(Normalization)
라텐느
라텐느
이제 막 개발을 시작한 초보가 개인공부를 하는 공간입니다.
  • 라텐느
    괴발개발
    라텐느
    • 개발자 (152) N
      • HTML|CSS (14)
      • JAVA (29)
      • JAVACSCRIPT (15)
      • SQL (16)
      • 기타 (5)
      • JSP (2)
      • SPRING (13)
      • SPRING BOOT (6)
      • Git&GitHub (1)
      • 시행착오 (2)
      • 개발일지 (35)
        • GreenMiniProject1 (12)
        • GreenMiniProject2 (9)
        • GreenFinalProject (14)
      • Flutter (5)
      • 자격증 (1)
        • SQLD (1)
      • AWS (2)
      • Linux (1)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 태그
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    JQuery
    자기계발
    java
    link
    개발자
    부트캠프
    JS
    tag
    javascript
    AJAX
    SQL
    링크
    태그
    오블완
    input
    db
    일지
    티스토리챌린지
    HTML
    CSS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
라텐느
[SQL]테이블 생성, 삭제, 변경
상단으로

티스토리툴바