SQL


SQL(Structured Query Language)

  • SQLは、データの検索、追加、削除、修正などの操作を容易にするためのコンピュータ言語です.
  • リレーショナル・データベースでデータを操作・照会するための標準的な手段である.
  • DML, DDL, DCL


    DML(Data Manipulation Language)


    データの操作に使用します.
    INSERT、UPDATE、DELETE、SELECTなど.

    DDL(Data Definition Language)


    データベースを定義または操作するためのモード.
    CREATE、DROP、ALTERなど.

    DCL(Data Control Language)


    データを制御する言語.管理権限、データのセキュリティ、整合性などを定義します.
    GRANT、REVOKEなど.

    データベースの作成

  • cmd以下のコードを入力して管理者アカウントでMySQLに接続する
  • mysql -uroot -p [enter]//나의 비밀번호는 1234
    1234
    
  • 次のコマンドでデータベースを作成
  • CREATE DATABASE connectdb; //connectdb라는 DB생성

    データベース・ユーザーの権限サイクルの作成

  • データベースが作成されている場合は、そのデータベースを使用するアカウントを作成する必要があります.また、このアカウントにはデータベースの使用権限も付与する必要があります.次のコマンドを使用して、ユーザーを作成および認可できます.db名の後ろの*はすべての権限を表します.@"%"任意のクライアントからアクセスできることを示し、@'localhost'はコンピュータからのみアクセスできることを示します.
  • 特権の更新はDBMSに適用されることを意味する.このコマンドを実行する必要があります.
  • CREATE USER 계정이름@'%' IDENTIFIED BY '엄호';
    GRANT ALL PRIVILEGES ON db이름.* to 계정이름@'%';
    FLUSH PRIVILEGES;
    
    CREATE USER 계정이름@'localhost' IDENTIFIED BY '엄호';
    GRANT ALL PRIVILEGES ON db이름.* to 계정이름@'localhost';
    FLUSH PRIVILEGES;
  • ユーザーアカウント名は「connectuser」、パスワードは「connect 123!@#」「connectdb」を使用してアカウントを作成するには、ユーザーが使用するデータベースで次のコマンドを実行します.
  • CREATE USER connectuser@'%' IDENTIFIED BY 'connect123!@#';
    GRANT ALL PRIVILEGES ON connectdb.* TO connectuser@'%';
    FLUSH PRIVILEGES;
    
    CREATE USER connectuser@'localhost' IDENTIFIED BY 'connect123!@#';
    GRANT ALL PRIVILEGES ON connectdb.* TO connectuser@'localhost';
    FLUSH PRIVILEGES;

    作成したデータベースへの接続

  • 必要なデータベースに接続するには、次のコマンドを実行します.
  • mysql -h호스트명 -uDB계정명 -P 데이터베이스이름
    DB名はconnectdb、dbアカウントはconnectuser、パスワードはconnect 123!@#そうであれば、「コンソール」ウィンドウに次のように入力します.
    mysql -h127.0.0.1 -uconnect -p connectdb [enter]
    connect123!@#

    MySQL接続の切断

  • プロンプトでquitまたはexitを入力します.
  • quit
    exit
    Byeが表示されている場合は切断に成功しました
    Bye

    MySQLバージョンと現在の日付の取得

    SELECT VERSION(), CURRENT_DATE;
  • プロンプトの下にSQLを入力します.SQLはセミコロン(;)で終了します.SQLはクエリと呼ばれます.クエリがDBMSにコマンドを発行するときに使われる文だと考えれば簡単です.
  • SELECTは、何かを検索する際に使うキーワードです.
  • MySQLはクエリ結果の完全なローを出力し、最後に完全なロー数とクエリの実行に要する時間を表示します.
  • クエリ文フィーチャー


    キーワードは大文字と小文字を区別しません。

  • キーワードは予約語.
  • 次のクエリはすべて同じです.
  • クエリは通常大文字で行う.
  • SELECT VERSION(), CURRENT_DATE;
    select version(), current_date;
    SeLeCt vErSiOn(), current_DATE;

    2.クエリを使用して計算式の結果を求めることもできます。

    SELECT SIN(PI()/4), (4+1)*5;

    3.複数の文を1行にまとめることができます。

  • セミコロン(;)貼ればいい
  • SELECT VERSION(); SELECT NOW();

    4.1つのSQLで複数の行を入力できます。

  • MySQLはセミコロン(;)区切られているので、複数行の本で文を書くことができます.
  • SELECT
    USER()
    ,
    CURRENT_DATE;

    5.SQLの入力中にキャンセルできます。

  • 長い照会を記入して途中でキャンセルする必要がある場合は、すぐにCを貼り付けることができます.
  • SELECT
    USER()
    \c

    DBMSに存在するデータベースの確認

  • ワークデータベースを選択するには、どのデータベースが存在するかを知る必要があります.
  • Showを使用して現在のサーバ上に存在するデータベースを検索します.
  • SHOW DATABASES;

    使用中のデータベースの切り替え


    ・「use」コマンドの使用
  • Databaseの選択
  • USE mydb;
  • データベースを変換するには、すでにデータベースが存在し、現在接続されているアカウントがそのデータベースを使用する権利を有している必要があります.
  • 表のコンポーネント


    テーブル台

  • RDBMSの基本記憶構造
  • 1つ以上の列と0以上の行からなる
  • 列(列)

  • 表中の単一型データを示す
  • 特定のデータ型とサイズを有する
  • 行(行)

  • columnの値の組み合わせを、レコードと呼ぶ.
  • プライマリ・キー(PK)で区別する.
  • プライマリ・キーは重複を許さず、必ず少なくはならない.
  • Field

  • rowとcolumnの交点で、Fieldはデータを含むことができ、不在時にNULL値を持つ.
  • 現在のデータベースに存在するテーブルのリストを確認

  • Databaseを選択し、Databaseの完全テーブルリストを出力する
  • SHOW TABLES;
    Empty setは、データベースにテーブルが作成されていないことを示します.

    SQL練習用テーブル生成と値の保存

  • examples.sql(表情報付きsqlファイル、https://www.boostcourse.org/web326/lecture/258482でダウンロード可能)を用意
  • ターミナルで例を挙げる.sqlが存在するフォルダに移動したら、次のコマンドを実行します.コマンドの実行後にパスワードを入力します.
  • mysql -u connectuser -p connectdb < examples.sql
  • examples.sqlには、練習用のテーブル生成文と、そのテーブルに値を格納する入力文があります.
  • テーブル構造を決定するDESCRIBEコマンド


    DESCRIBEコマンドを使用して、
  • TABLE構造を決定できます.
  • DESCを短く使える.
  • DESC EMPLOYEE;
    出典:https://www.boostcourse.org/web326/lecture/258481