본문 바로가기
카테고리 없음

4. DDL & DML

by SeleniumBindingProtein 2022. 1. 29.
728x90
반응형

<DDL>

1. DDL 
    1) 데이터 정의 
    2) 데이터베이스 구조를 정의하고 변경하는 기능 제공하는 언어 
    3) create 
        - 새로운 데이터베이스 오브젝트들을 생성 (schema, table, view 등)
    4) alter 
        - 존재하는 오브젝트의 정의를 변경 
    5) drop 
        - 존재하는 오브젝트를 데이터베이스에서 삭제   

2. CREATE TABLE 테이블 이름 (
    {속성이름 데이터타입 [NULL | NOT NULL | UNIQUE | DEFAULT 기본값 | CHECKE 체크조건]}
    [PRIMARY KEY 속성이름(들)]
    [FOREIGN KEY 속성이름 REFERENCES 테이블이름(속성이름) | ON DELETE {CASCADE}]
);

ex)
CREATE TABLE student (
      ID      varchar(8)      primary key
    , name    varchar(20)     not null 
    , dept_name varchar(20) 
    , grade     int 
    , credit    int           DEFAULT 0
    , foreign key(dept_name) reference department
);

3. 데이터 타입 
    1) CHAR(n)          
        - 길이가 n으로 고정인 문자열 
    2) VARCHAR(n)
        - 최대 길이가 n인 가변 길이의 문자열 
    3) BIGINT       
        - 8 bytes 정수
    4) INT or INTEGER
        - 4 bytes 정수
    5) SAMLLINT
        - 2 bytes 정수
    6) NUMBER(p,s) or DECIMAL(p,s)
        - 고정 소수점 실수
        - p : 소수점을 제외한 전체 길이 
        - s : 소수점 이하 숫자의 길이 
        - ex) 123456.1234 <==== price decimal(10,4)
    7) FLOAT(n)
        - 길이가 n인 부동소수점 실수  
    8) REAL  
        - 부동 소수점 실수
    9) DATE 
        - 연,월,일로 표현되는 날짜 
    10) TIME
        - 시,분,초로 표현되는 시간 
    11) TIMESTAMP 
        - DATE + TIME 
    12) BLOB
        - Binary large objects
    13) CLOB                  
        - Character large objects              

4. alter table 
    1) 새로운 컬럼 추가 
        - alter table 테이블 이름 add 속성이름 데이터타입
        - ex) alter table customer add reg_date date;
    2) 기존 컬럼 삭제
        - alter table 테이블 이름 drop column 속성이름 
        - ex) alter table customer drop column age;
    3) 새로운 제약조건 추가 
        - alter table 테이블 이름  add constraint <constraint_name> <constraints>   
        - ex) alter table customer add constraint set_pri_key primary key(id)
    4) 제약조건 삭제
        - alter table 테이블 이름 drop constraint set_pri_key;    
    5) Modify는 속성의 기본값을 설정하거나 수정할 때 사용    

5. drop table 
    1) 테이블 데이터 및 catalog 삭제
    2) drop table 테이블 이름 
    3) 테이블 구조와 데이터를 모두 삭제하므로 사용에 주의해야 함.
    4) 데이터만 삭제하려면 delete 문을 사용            

 


<DML>

1. INSERT 
    1) 테이블에 새로운 row을 삽입하는 SQL
    2) Syntax
        - INSERT <table_name>[(<column_name>,...)] VALUES (value,...)
    3) example
        - INSERT student VALUES ('20211110','Kim','Computer',1);   
        - INSERT student (id,name,dept_name,grade) VALUES ('20211110','Kim','Computer',1);  
        - INSERT student (id,name,dept_name) VALUES ('20211110','Kim','Computer');       

2. INSERT INTO SELECT
    1) 다른 테이블에서 질의 결과를 삽입하는 구문
    2) INSERT <table_name>[(<column_name>,...)] <SELECT clause>
    3) example
        - INSERT INTO student SELECT * FROM new_students;

3. DELETE 
    1) 테이블에서 쿼리에 해당되는 row를 지우는 SQL         
    2) Syntax
        - DELETE FROM <table_name> [WHERE condition]
    3) example
        - DELETE FROM student;          ==> 모든 rows 삭제
        - DELETE FROM student WHERE dept_name = 'Computer';
        - DELETE FROM student WHERE dept_name in ()  

4. UPDATE 
    1) 테이블에 저장된 데이터를 변경하는 SQL
    2) Syntax
        - UPDATE <table_name> SET <column_name>=value [WHERE conditio]  
    3) example                      
        - UPDATE employee set salary = salary * 1.07;
        - UPDATE employee set salary = salary * 1.07 WHERE hire_date < '2021.01.01';
        - UPDATE employee set salary = salary * 1.07 WHERE dept_name in ();

5. SELECT 

728x90
반응형

댓글