【DB Mysql】 学習まとめ


自己学習アウトプット用です。


名前 略称 命令 内容
データ定義言語 DDL CREATE データベース・テーブルの生成
ALTER テーブルの変更
DROP データベース・テーブルの削除
データ操作言語 DML INSERT レコードの追加
DELETE レコードの削除
UPDATE レコードの更新
SELET レコードの取得
データ制御言語 DCL COMMIT 更新処理の確定
ROLLBACK 更新処理の放棄
SAVEPOINT セーブポイントの設定

用語

  • カラム
    たて縦

  • レコード
    よこ横

  • テーブル
    全体のそのDBの名称

  • クエリ
    命令文、 select * など

  • トランザクション
    クエリ後の反映

  • リレーショナルデータベース
    関連があるデータベース

  • DB項目
    主キー、フィールド名、データ型

  • サブクエリ
    クエリの結果からさらにクエリをする条件の中からさらに条件を絞り抽出するもの

  • ASC
    昇順

  • DESC
    降順

  • Select
    縦、カラム名を抽出

  • Insert
    レコードの追加コマンド

  • From
    テーブルから抽出

  • DB削除
    Drop

  • レコード削除
    Delete

  • Where
    テーブル内のデータ抽出、※検索文字列とデータ文字列が同一でないとエラーになる※
    $ Where <カラム名> = “<抽出したいデータ名>”
    例)Where  state “神奈川”とすると「神奈川に住んでいる」データが抽出される

  • Like
    ~のようなという意味のクエリ分、含まれていれば抽出される
    $ Where name Like <文字列>;
    これでnameというカラムから文字列が含まれたデータが抽出される
    →プリンと焼きプリンがあった場合、where “プリン”だと焼きプリンが抽出されないので
    Like “%プリン%”とすると焼きプリンも抽出される
    →Like の中では % がワイルドカード

  • Order by
    表示順番を昇順か降順にする

ターミナル
Select * From <テーブル名> order by <カラム名(表示したい列)> <ASC or DESC>
  • Group by 同じ関連のあるデータをひとまとめにして抽出する

Access

Accessとは

マイクロソフトがMicrosoft Windows 向けに販売しているデータベース管理システムのソフトウェア

  • Accessには2つの作業項目がある
  • デザインビュー
  • データシートビュー

「表示」→「三角ボタン」
ここからデザインを編集するかデータを編集するかを選び作業する

データシートビュー

データ入力する際の作業項目

Excelからインポート:「外部データ」→「新しいデータソース」→「ファイルから」→「Excel」
ExcelシートをそのままAccessシートに作成することもできる→
「上記と一緒でExcelから」→「現在のDBのテーブルに新しいソースデータをインストールする」

Access のクエリ

コード打たなくてもドラッグしてデータ抽出ができる
「作成」「クエリデザイン」
抽出して表示したいようにフィールドとテーブルをドラッグして編集し最後に「実行」

Accessでは基本直接データ入力をしない

「フォーム」という項目から提出表みたいな画面になり、そこで詳細を記載し
保存することでDB上に反映される流れ

リレーションシップ設定

2つのテーブルを関連づけて情報を表示するためにリレーションシップ設定をする
「リレーションシップ」→「関連づけたいテーブル名を選択して作成」→
画面上に1対1のような関連性の画面が表示される
→反映されるために一度閉じて再表示→知りたい部分に + ボタンが表示されリレーション設定がされている

データを入力するまで

ターミナル
CREATEでDBを作成するCreate database <DB名>
USEで作成したDBを使用するuse <DB名>
CREATE TABLEにてテーブルを作成create table <テーブル名> (
    id int primary key,
    name varchar(128)
    );
    int primary が主キー
    カンマで区切るのを忘れない最後にセミコロン
insert intoにてデータを入力するinsert into <テーブル名> (カラム1,カラム2) values (カラム1に対するデータ,カラム2に対するデータ)

「id name score」といった「student」というテーブルがある場合

ターミナル
$SELECT id,name,count(name) FROM student GROUP BY name ORDER BY id ASC;

selectの後にid,name,count(name)と並べることで出力を3行で表示する何行でもカンマの後にコードを書くだけで
抽出することができる)SUM(score)やAVG(score)COUNT(name)などといったように
fromの後は表示の細かい設定のようなもの
GROUP BYでnameにある被った名前をグループごとに表示させるようにして(下の図のように)
 ORDER BY id ASC にて表示方法を昇順にしている感じ

内部結合

AテーブルとBテーブルの中に共通である「カラム」をがっちゃんこして表示する
→A:id name class
→B:class price
classが一緒なのでそれを合わせて表示させる

ターミナル
$select * from <テーブルA>  inner join <テーブルB> on <テーブルA.共通のカラム名> = <テーブルB.共通のカラム名>
→$ select * from A inner join B on A.class = B.class

これで表示がでるclassだけがっちゃんこして両方のデータテーブルが表示される

(Mac mysql DB名:”text テーブル名:“code  class参照すべし※、classが共通であります)

ターミナルでたまに空のDB作成して操作するとより覚えることができました。
大きなデータ量のDBは触れたことがないので、コマンドを打つ際も慎重に操作する意識をつけていきたいです。