코딩기록 저장소 🐕/데이터베이스

{ DDL, DML }

kimkongmom 2023. 7. 3. 12:41

 

 

 

 

 

 

데이터베이스에서는 모든 작업을 SQL문을 이용합니다. SQL문은 다루는 객체나 용도에 따라서 그룹핑 하여 나눌 수 있습니다.

종류는 DDL, DML, DCL

 

 

 

 

•  DDL( Data Dfinition Language )

→ 데이터베이스를 정의하는 언어를 말하며 데이터를 생성하거나 수정, 삭제 등 데이터의 전체 골격을 결정하는 역할의 언어를 말합니다.
데이터베이스 객체를 다루는 언어
트랜잭션 대상이 아니다.(작업을 취소할 수 없다.)

CREATE 데이터베이스 객체 생성
ALTER 데이터베이스 객체 수정
DROP  데이터베이스 객체 삭제
TRUNCATE 데이터베이스 객체 데이터 및 저장 공간 삭제
실행 후에는 작업을 취소할 수 없습니다.

테이블 수정하기(잘사용하지않음)
    1. 칼럼 추가   : ALTER TABLE 테이블명 ADD    칼럼명 데이터타입 [제약조건]
    2. 칼럼 수정   : ALTER TABLE 테이블명 MODIFY 칼럼명 데이터타입 [제약조건]
    3. 칼럼 삭제   : ALTER TABLE 테이블명 DROP   COLUMN 칼럼명
    4. 칼럼 이름   : ALTER TABLE 테이블명 RENAME COLUMN 기존칼럼명 TO 신규칼럼명
    5. 테이블 이름 : ALTER TABLE 테이블명 RENAME TO 신규테이블명
    6. PK/FK 제약조건
        1) PK
            (1) 추가
                ALTER TABLE 테이블명 ADD  CONSTRAINT 제약조건명 PRIMARY KEY(칼럼)
            (2) 삭제
                ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명
                ALTER TABLE 테이블명 DROP PRIMARY KEY
        2) FK
            (1) 추가
                ALTER TABLE 자식테이블명 ADD CONSTRAINT 제약조건명 FOREIGN KEY(칼럼) REFERENCES

부모테이블명(참조할 칼럼)
            (2) 삭제
                ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명
            (3) 일시중지
                ALTER TABLE 테이블명 DISABLE CONSTRAINT 제약조건명
            (4) 활성화
                ALTER TABLE 테이블명 ENABLE CONSTRAINT 제약조건명

 

 

•  DML(Data Mainpulation Language)

데이터베이스의 내부 데이터를 관리하기 위한 언어이다. 데이터를 조회, 추가, 변경, 삭제 등의 작업을 수행하기 위해 사용된다.

쉽게말하면 TABLE의 행과 열을 조작하는 언어라고 생각하면됩니다 특히 행!!!

    데이터(행, row)를 조작(삽입, 수정, 삭제)하는 언어이다.
    트랜잭션 대상이다.(작업이 완료되면 COMMIT, 작업을 취소하려면 ROLLBACK이 필요하다.)
        1) COMMIT : 작업을 저장한다. COMMIT이 완료되면 ROLLBACK으로 작업을 취소할 수 없다.
        2) ROLLBACK : 작업을 취소한다. COMMIT이후 작업을 취소하는 것이다.
 

INSERT 데이터,행(Row) 삽입
UPDATE 데이터,행(Row) 수정
DELETE 데이터,행(Row) 삭제
SELECT 데이터 조회(살짝 위에 3개랑 별개)

 1) INSERT : INSERT INTO VALUES

        ex)  INSERT INTO 클래스명(컬럼명1, 칼럼명2, 칼럼명3) VALUES(DEPT_SEQ.NEXTVAL, '내용1', '내용2');

 2) UPDATE : UPDATE SET WHERE
 3) DELETE : DELETE FROM WHERE

 

시퀀스

Sequence

순차적으로 증가하는 일련번호를 생성하는 데이터베이스 객체

인공키(Artificial Key)를 기본키로 사용하는 경우 시퀀스를 이용해서 번호를 생성한 뒤 INSERT문으로 삽입함

CREATE문을 이용해 시퀀스 생성 가능

번호표처럼 번호를 하나씩 순차적으로 만들어줍니다.

ORDER - 번호를 1번부터 순차적으로 준다는 뜻입니다.

ex) DROP SEQUENCE 테이블명;

      CREATE SEQUENCE 테이블명 ORDER ;

      INSERT INTO 클래스명(컬럼명1, 칼럼명2, 칼럼명3) VALUES (DEPT_SEQ.NEXTVAL, '내용1', '내용2');

 

 

  CHECK 활용타임

 

AGE  NUMBER  CHECK(AGE BETWEEN 0 AND 100)  → 나이를 0부터 100살까지만 나타내시오 의 코드

 

① ALTER TABLE CUSTOMER_TBL ADD GRADE VARCHAR2(6 BYTE) CHECK(GRADE = 'VIP' OR GRADE = 'GOLD' OR GRADE = 'SILVER' OR GRADE = 'BRONZE');

② ALTER TABLE CUSTOMER_TBL ADD GRADE VARCHAR2(6 BYTE) CHECK(GRADE IN('VIP', 'GOLD', 'SILVER',                             'BRONZE'));

 

→ VIP, GOLE, SILVER, BRONZE 중에 선택하시오의 코드(아래 코드가 좀더 간결하고 정돈되어있습니다.)

     고객 테이블에 GRADE 칼럼을 추가하시오. ('VIP', 'GOLD', 'SILVER', 'BRONZE' 중 하나의 값을 가지도록 한다.)