1. DML 명령어?

  1. [명령어]
    1. SELECT

      1. 생성되어 있는 테이블에서 데이터를 가져오는 명령어 입니다

      2. 조건무에 따라 중첩 또한 가능합니다

      3. IF문 or 다중 FOR문처럼 사용할 수 있습니다

      4. [사용법]

        -- 조건식
        select 추출할 컬럼 from 해당 테이블 where 조건문;
        
        -- 예시
        select * from table Where id = 'user';
        -- 테이블에서 id가 user의 컬럼 데이터를 모두 가져온다는 의미이다
        
    2. INSERT

      1. 이미 생성된 테이블에 데이터를 삽이하는 명령어 입니다

      2. 해당 테이블에 필요한 컬럼의 데이터만 넣을 것인지 아니면 해당 테이블의 모든 컬럼 데이터를 넣을 것인지 쿼리문에서 구별할 수 있습니다

      3. 모든 컬럼 데이터를 삽입할 경우 컬럼의 순서에 맞게 모든 데이터를 입력해야 합니다

      4. 특정 컬럼의 데이터만 넣을 시에는 INTO부분에서 컬럼을 같이 써줘야합니다

      5. [사용법]

        -- Insert
        INSERT INTO 테이블(컬럼1, 컬럼2, ... )
                VALUES (컬럼1 데이터, 컬럼2 데이터, ... );
        
        INSERT INTO 테이블
                VALUES (컬럼1 데이터, 컬럼2 데이터, ... );
        
        -- 예시
        INSERT INTO table (publisherid, name) VALUES ('1', '미디어숲');
        
    3. UPDATE

      1. 이미 들어가있는 데이터를 수정하는 명령어 입니다

      2. 조건식을 통해 구분하여 데이터를 수정합니다

      3. **[주의] *** 부분에서는 조건무을 사용하지 않을 경우 그 테이블에 해당 컬럼 모두가 바뀝니다

      4. [주의] 조건문에 기본키가 아닌 다른 컬럼일 경우 적어도 1개 이상의 데이터가 변경될 수 있습니다

      5. [사용법]

        -- Update
        UPDATE  테이블명
        SET     컬럼1 = 컬럼1의 데이터, 컬럼2 = 컬럼2의 데이터, ...
        WHERE   조건식;
        
        -- 예시
        UPDATE  table
        SET     publisherid = '1'
        WHERE   name = '길벛';
        
    4. DELETE

      1. 특정 데이터나 아니면 테이블에 있는 데이터를 삭제 할 수 있습니다

      2. [주의] 조건문이 잘못될 경우 상관 없는 데이터가 삭제될 수 있습니다

      3. [주의] 조건무이 없으면 모든 데이터가 삭제되기도 합니다

      4. Update문 처럼 조건문에 기본키가 아닌 컬럼일 경우 적어도 1개 이상의 데이터가 삭제될 수 있습니다

      5. [사용법]

        -- Delete
        DELETE FROM 테이블 WHERE 조건문;
        
        -- 예시
        DELETE FROM table WHERE name = '길벛';
        

2. DDL 명령어?

  1. [명령어]
    1. CREATE[생성]

      1. 데이터베이스 오브젝트 생성하는 명령어 입니다

      2. 테이블을 생성하는 명령입니다

      3. 하나의 컬럼(속성)에 대해 컬럼명 데이터 타입 제약 조건으로 구성되어 있습니다

      4. [사용법]

        -- Create
        CREATE TABLE 테이블명
        (
        	컬럼명 데이터타입 [제약조건],
        	...
        );
        
        -- Create view
        CREATE VIEW 뷰이름 AS 조회쿼리;
        
        -- Create Replace view
        CREATE OR REPLACE VIEW 뷰이름 AS 조회쿼리;
        
        
      5. [제약조건]

        1. PRIMARY KEY
          1. 테이블의 기본 키를 정의합니다
          2. 유일하게 테이블의 각 행을 식별합니다
        2. FOREIGN KEY
          1. 외래 키를 정의합니다
          2. 참조 대상을 테이블(컬럼명)로 명시합니다
          3. 열과 참조된 테이블의 열 사이의 외래 키 관계를 적용하고 설정합니다
        3. UNIQUE
          1. 테이블 내에서 얻은 유일한 값을 갖도록 하는 제약조건입니다
        4. NOT NULL
          1. 해당 컬럼은 NULL 값을 포함하지 않도록 하는 제약조건입니다
        5. CHECK
          1. 개발자가 정의하는 제약조건입니다
          2. 참(TRUE)이어야 하는 조건을 지정을 말합니다
        6. DEFAULT
          1. 데이터를 INSERT를 할 때 해당 컬럼의 값을 넣지 않는 경우 기본값으로 설정해주는 제약조건입니다
    2. DROP

      1. 데이터베이스 오브젝트 삭제하는 명령어 입니다

      2. 테이블을 삭제하는 명령어 입니다

      3. [옵션]

        1. CASCAD와 RESTRICT가 있습니다
        2. CASCAD는 참조한느 테이블까지 연쇄적으로 제거해주는 것을 말합니다
        3. RESTRICT는 다른 테이블이 삭제할 테이블을 참조 중이면 제거하지 않는 것을 말합니다
        4. CASCAD와 RESTRICT의 경우 외래 키(Foreign Key)가 걸려 있을 때 해당됩니다
      4. [사용법]

        -- Drop
        DROP TABLE 테이블명 [CASCADE | RESTRICT];
        
        -- Drop view
        DROP VIEW 뷰이름;
        
        -- Drop index : index를 삭제하는 명령어
        DROP INDEX 인덱스명;
        
    3. ALTER[수정]

      1. 데이터베이스 오브젝트 변경하는 명령어 입니다

      2. 테이블을 수정하는 명령어 입니다

      3. 테이블에 필요한 컬럼을 추가하는 문법입니다

      4. [사용법]

        -- Alter add : 컬럼을 추가
        ALTER TABLE 테이블명 ADD 컬럼명 데이터타입 [제약조건];
        
        -- Alter modify : create후 alter를 통해 제약조건을 변경
        ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입 [제약조건];
        
        -- Alter drop : 불필요 컬럼삭제
        ALTER TABLE 테이블명 DROP 컬럼명;
        
        -- Alter index
        ALTER [UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼명1, 컬럼명2, ...);
        
      5. 제약조건은 Create와 동일하게 사용됩니다

    4. TRUNCATE

      1. 데이터베이스 오브젝트 내용 삭제하는 명령어 입니다

      2. 테이블 내의 데이터들을 삭제하는 명령어 입니다

      3. [사용법]

        -- Truncate
        TRUNCATE TABLE 테이블명;
        

3. SQL 쿼리?

  1. [Wher절]
    1. 단일 조건식 지정

      1. Select, Update, Delete문 등에서 레코드에 대한 조건을 설정할 때 사용되는 구문입니다

      2. 단순한 조건식은 하나의 컬럼과 특정 컬럼값을 비교하는 식을 들 수 있습니다

      3. 예를들면, Where id = 1;이라는 조건식은 ID가 1인 레코드를 의미한다고 볼 수 있습니다

      4. [예제]

        -- 컬럼 ID가 1인 레코드 조건
        SELECT * FROM users
        WHERE id = 1;
        
        -- ID가 10 이하인 레코드들
        SELECT * FROM users
        WHERE id <= 10;
        
        -- ID가 10 이 아닌 모든 레코드들
        SELECT * FROM users
        WHERE id <> 10;
        
        -- 컬럼 user_name이 LEE인 레코드
        SELECT * FROM users
        WHERE user_name = 'LEE';
        
        -- user_name이 LEE가 아닌 레코드
        SELECT * FROM Tab1
        WHERE user_name <> 'LEE';
        
    2. 복수 조건식 지정

      1. 조건식들을 AND나 OR로 연결합니다
      2. 두 조건식이 동시에 만족해야한다면, where 조건식1 AND 조건식2; 과 같이 표현을 할 수 있으며, 두 조건중 하나만이라도 만족해야 할 경우는 where 조건식1 OR **조건식2;**과 같이 표현을 할 수 가 있습니다
      3. Not은 해당 조건의 반대 조건을 의미합니다. 예를 들면, NOT 조건식1은 조건식1이 거짓일 때 전체가 참이 된다는 의미 입니다
      4. [예제]
    3. LIKE

    4. IN

    5. BETWEEN

    6. IS NULL

  2. JOIN

4. SQL 나머지?

  1. [나머지 필드]