SQLデフォルトコマンド


学習目標


SQL基本命令の概念を学ぶ.

コアキー


データ定義子(DDL)
データオペレータ(DML)
データ制御言語(DCL)
オブジェクトコントローラ(TCL)

Intro


DBA

  • データベース管理者として、企業内でデータベースを管理

  • テーブルの作成、データ・アクセス、およびデータベース管理

  • ≪データ定義|Data Definitions|oem_src≫:表の作成、変更、削除

  • ≪データ制御言語|Data Control Language|oem_src≫:データ・アクセス権の付与、削除
  • Data Analyst

  • データ分析による新しい内部サイトの作成

  • データベース・アクセス、データ分析、およびデータ・アクセスの返却を要求

  • ≪データ・オペレータ|Data Operator|oraolap≫:データの挿入、問合せ、変更、削除

  • トランザクション制御言語:DMLコマンドの実行、キャンセル、一時保存
  • データ定義子(DDL)


  • テーブルの作成、変更、削除に使用するコマンド

  • 列の追加、列データ型とテーブル名の変更、テーブルの削除

  • テーブルは、カラムごとにデータ型を定義する必要があります.

  • 表は列ごとに制約を定義します

  • PK(Primary Key)
  • 繰り返し不可能な単一値
  • NOT NULL:NULLを許可しない(値なし)
  • Code
  • /* Practice 이름으로 데이터베이스 생성*/
    CREATE DATABASE Practice;
    
    /* Practice 데이터베이스 사용*/
    USE Practice;
    
    
    /***************테이블 생성(Create)***************/
    /* 회원테이블 생성 */
    CREATE TABLE 회원테이블 (
    회원번호 INT PRIMARY KEY,
    이름 VARCHAR(20),
    가입일자 DATE NOT NULL,
    수신동의 BIT
    );
    
    /* 기본키(PRIMARY KEY): 중복되어 나타날 수 없는 단일 값 + NOT NULL */
    /* NOT NULL: NULL 허용하지 않음 */
    
    /* 회원테이블 조회 */
    SELECT  *  FROM  회원테이블;
      
      
    /***************테이블 열 추가*******************/  
    /* 성별 열 추가 */  
    ALTER TABLE 회원테이블 ADD 성별 VARCHAR(2);
     
    /* 회원테이블 조회 */
    SELECT  *  FROM  회원테이블;
     
     
    /***************테이블 열 데이터 타입 변경***************/  
    /* 성별 열 타입 변경 */  
    ALTER TABLE 회원테이블 MODIFY 성별 VARCHAR(20);
     
     
    /***************테이블 열 이름 변경**************/  
    /* 성별 -> 성 열 이름 변경 */  
    ALTER TABLE 회원테이블 CHANGE 성별 성 VARCHAR(2);
     
     
    /***************테이블명 변경**************/  
    /* 테이블명 변경 */  
    ALTER TABLE 회원테이블 RENAME 회원정보;
     
    /* 회원테이블 조회 --> 이름이 변경되었기 때문에 조회되지 않음*/
    SELECT  *
      FROM  회원테이블;
      
    /* 회원정보 조회 */
    SELECT  *
      FROM  회원정보;   
      
      
    /***************테이블 삭제**************/  
    /* 테이블 삭제 */  
    DROP TABLE 회원정보;
     
    /* 회원정보 조회 --> 삭제되었기 때문에 조회되지 않음*/
    SELECT  *
      FROM  회원정보;

    データオペレータ(DML)


  • データの挿入(制約が競合し、文字が日付型(")をプッシュ)

  • クエリー:すべてのカラム(*)、特定のカラム名の変更(AS)

  • 修正:特定条件(WHERE)

  • 削除:特定条件(WHERE)
  • /* Practice 데이터베이스 사용*/
    USE Practice;
    
    /***************테이블 생성(Create)***************/
    /* 회원테이블 생성 */
    CREATE TABLE 회원테이블 (
    회원번호 INT PRIMARY KEY,
    이름 VARCHAR(20),
    가입일자 DATE NOT NULL,
    수신동의 BIT
    );
    
    
    /***************데이터 삽입*******************/  
    INSERT INTO 회원테이블 VALUES (1001, '홍길동', '2020-01-02', 1);
    INSERT INTO 회원테이블 VALUES (1002, '이순신', '2020-01-03', 0);
    INSERT INTO 회원테이블 VALUES (1003, '장영실', '2020-01-04', 1);
    INSERT INTO 회원테이블 VALUES (1004, '유관순', '2020-01-05', 0);
    
    /* 회원테이블 조회 */
    SELECT  *  FROM  회원테이블;
    
    
    /***************조건 위반*******************/
    /* PRIMARY KEY 제약 조건 위반 */
    INSERT INTO 회원테이블 VALUES (1004, '장보고', '2020-01-06', 0);
    
    /* NOT NULL 제약 조건 위반 */
    INSERT INTO 회원테이블 VALUES (1005, '장보고', NULL, 0);
    
    /* 데이터 타입 조건 위반 */
    INSERT INTO 회원테이블 VALUES (1005, '장보고', 1, 0);
    
     
    /***************데이터 조회***************/  
    /* 모든 열 조회 */  
    SELECT  *  
      FROM  회원테이블;
     
    /* 특정 열 조회 */  
    SELECT  회원번호,
    		이름
      FROM  회원테이블;
    
    /* 특정 열 이름 변경하여 조회 */  
    SELECT  회원번호,
    		이름 AS 성명
      FROM  회원테이블;
    
    
    /***************데이터 수정*******************/
    /* 모든 데이터 수정 */
    UPDATE 회원테이블
       SET 수신동의 = 0;
      
      
    /* 회원테이블 조회 */  
    SELECT  *
      FROM  회원테이블;
    
    /* 특정 조건 데이터 수정 */ 
    UPDATE 회원테이블
       SET 수신동의 = 1
     WHERE 이름 = '홍길동';
     
    /* 회원테이블 조회 */  
    SELECT  *
      FROM  회원테이블;
      
      
    /***************데이터 삭제*******************/  
    /* 특정 데이터 삭제 */ 
    DELETE 
      FROM 회원테이블
     WHERE 이름 = '홍길동';
     
    /* 회원테이블 조회 */  
    SELECT  *
      FROM  회원테이블;
      
    /* 모든 데이터 삭제 */ 
    DELETE 
      FROM 회원테이블;
     
    /* 회원테이블 조회 */  
    SELECT  *
      FROM  회원테이블;
      

    データ制御言語(DCL)



  • データ・アクセスの許可、削除

  • ユーザー確認:USE MYSQL

  • ユーザーの追加と削除:CREATE、DROP

  • 承認と削除:CRANT、REVOKE
  • /***************사용자 확인***************/
    /* MYSQL 데이터베이스 사용 , 사용자 추가*/
    USE MYSQL;
    
    /* 사용자 확인 */
    SELECT  *
      FROM  USER;
      
    /***************사용자 추가***************/
    
    /* 사용자 아이디 및 비밀번호 생성 */
    CREATE USER 'TEST'@LOCALHOST IDENTIFIED BY 'TEST';
    
    /* 사용자 확인 */
    SELECT  *
      FROM  USER;
      
    /* 사용자 비밀번호 변경 */
    SET PASSWORD FOR 'TEST'@LOCALHOST = '1234';
    
      
    /***************권한 부여 및 제거***************/ 
    /** 권한: CREATE, ALTER, DROP, INSERT, DELETE, UPDATE, SELECT 등  **/
    
    /* 특정 권한 부여 */
    GRANT SELECT, DELETE ON PRACTICE.회원테이블 TO 'TEST'@LOCALHOST;
    
    /* 특정 권한 제거 */
    REVOKE DELETE ON PRACTICE.회원테이블 FROM 'TEST'@LOCALHOST;
    
    /* 모든 권한 부여 */
    GRANT ALL ON Practice.회원테이블 TO 'TEST'@LOCALHOST;
    
    /* 모든 권한 제거 */
    REVOKE ALL ON Practice.회원테이블 FROM 'TEST'@LOCALHOST;
    
    
    /***************사용자 삭제***************/ 
    
    /* 사용자 삭제 */
    DROP USER 'TEST'@LOCALHOST;
    
    /* 사용자 확인 */
    SELECT  *
      FROM  USER;
    

    トランザクション制御言語(TCL)



  • データオペレータコマンドの実行、キャンセル、一時保存

  • トランザクションは分割できない最小論理ワークユニットです
    実行
  • (COMMIT):最終的にすべてのタスクを実行
  • キャンセル
  • (ROLLBACK):すべてのタスク
  • に戻ります.

  • 一時保存(SAVEPOINT):一時保存は、ROLLBACKストレージポイントを指定するコマンドです
  • が希望する場所まで行けます.
  • /* Practice 데이터베이스 사용*/
    USE Practice;
    
    /***************테이블 생성(Create)***************/
    /* (회원테이블 존재할 시, 회원테이블 삭제) */
    DROP TABLE 회원테이블;
    
    /* 회원테이블 생성 */
    CREATE TABLE 회원테이블 (
    회원번호 INT PRIMARY KEY,
    이름 VARCHAR(20),
    가입일자 DATE NOT NULL,
    수신동의 BIT
    );
    
    /* 회원테이블 조회 */
    SELECT  *  FROM  회원테이블;
    
    
    /***************BEGIN + 취소(ROLLBACK)*******************/  
    /* 트랜젝션 시작 */
    BEGIN;
    
    /* 데이터 삽입 */
    INSERT INTO 회원테이블 VALUES (1001, '홍길동', '2020-01-02', 1);
    
    /* 회원테이블 조회 */
    SELECT  *  FROM  회원테이블;
    
    /* 취소 */
    ROLLBACK;
    
    
    /* 회원테이블 조회 */
    SELECT  *  FROM  회원테이블;
    
    
    /***************BEGIN + 실행(COMMIT)*******************/  
    /* 트랜젝션 시작 */
    BEGIN;
    
    /* 데이터 삽입 */
    INSERT INTO 회원테이블 VALUES (1005, '장보고', '2020-01-06', 1);
    
    /* 실행 */
    COMMIT;
    
    /* 회원테이블 조회 */
    SELECT  *  FROM  회원테이블;
    
    
    /***************임시 저장(SAVEPOINT)*******************/ 
    /* (회원테이블에 데이터 존재할 시, 데이터 모두 삭제) */
    DELETE FROM 회원테이블;
    
    /* 회원테이블 조회 */
    SELECT  *  FROM  회원테이블;
    
    /* 트랜젝션 시작 */
    BEGIN;
    
    /* 데이터 삽입 */
    INSERT INTO 회원테이블 VALUES (1005, '장보고', '2020-01-06', 1);
    
    /* SAVEPOINT 지정 */
    SAVEPOINT S1;
    
    /* 1005 회원 이름 수정 */
    UPDATE  회원테이블
       SET  이름 = '이순신';
     
    /* SAVEPOINT 지정 */
    SAVEPOINT S2;
    
    /* 1005 회원 데이터 삭제 */
    DELETE 
      FROM  회원테이블;
     
    /* SAVEPOINT 지정 */
    SAVEPOINT S3;
    
    /* 회원테이블 조회 */
    SELECT  *  FROM  회원테이블;
    
    /* SAVEPOINT S2 저장점으로 ROLLBACK */
    ROLLBACK TO S2;
     
    /* 회원테이블 조회 */
    SELECT  *  FROM  회원테이블;
    
    /* 실행 */
    COMMIT;
    
    /* 회원테이블 조회 */
    SELECT  *  FROM  회원테이블;