1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

スッキリわかる SQL入門を読んでみた

Posted at

はじめに

スッキリわかるSQL入門を読んだので、感想などをまとめてみました。

内容

第1章 はじめてのSQL
第2章 基本文法と4台命令
第3章 操作する行の絞り込み
第4章 検索結果の加工
第5章 式と関数
第6章 集計とグループ化
第7章 副問い合わせ
第8章 複数テーブルの結合
第9章 トランザクション
第10章 テーブルの作成
第11章 さまざまな支援機能

良かったところ

dokoQLというクラウドサービスを使って学習できる為、初心者がつまずきやすい環境構築を行わず、実際に手を動かしながら学習できるので良いと思いました。
 章ごとに練習問題が作られており、インプットとアウトプットを交互に行えるので、効率的に学習できました。

学んだこと

SQL

  • データーベースに格納されている情報を検索したり、書き換えたりする為に使用される操作言語

RDB(リレーショナルデーターベース)

  • 複数の表が入っており、個々の表をテーブルと言う
  • テーブルは、行と列で構成される

4大命令

  • SELECT - テーブルから目的のデータを指定して取得する
      SELECT 列名...
      FROM テーブル名
  • UPDATE - テーブルに存在しているデータを書き換える
UPDATE テーブル名
   SET 列名1 = 値1, 列名2 = 値2
  • DELETE - テーブルに存在している行を削除する
DELETE 
  FROM テーブル名
  • INSERT - 新しいデータを追加する
INSERT INTO テーブル名
            (列名1, 列名2, 列名3,)
     VALUES (値1, 値2, 値3)

WHERE句
 1. 処理対象の行の絞り込みに用いる
 2. SELECT、UPDATE、DELETE文で使用可能
 3. WHEREの後ろに条件式を記入する
 4. WHERE句に記述できるのは結果が必ず真(TRUE)または、偽(FALSE)になる条件式にする

WHERE 条件式

NULL

  • 値が不明または、無意味であるためにデータが格納されてない状態を表す

検索結果の加工

  • DESTINCT - 重複行を除外する
  • ORDER BY - 結果を並び替える
  • OFESET-FETCH - 行を限定して取得する
  • UNION、EXCEPT/MINUS、INTERSECT - 結果を集合演算する

関数

  • 引数に対して決められた処理を行い、戻り値に変換する
  • 処理の内容に応じて、文字列関数、算術関数、日付関数、変換関数などに分類される

集計関数

  • 検索対象の全行をまとめて、集計処理を行う
  • 集計関数の結果は、必ず1行になる

代表的な集計関数

  • SUM → 各行の合計値を求める
  • MAX → 各行の最大値を求める
  • MIN → 各行の最小値を求める
  • AVG → 各行の平均値を求める
  • COUNT → 行数をカウントする

グループ化

  • グループ分けの基準となる列を指定することで、グループ別に集計できる
SELECT グループ化の基準列名, 集計関数
 FROM テーブル名
 WHERE 絞り込み条件
 GROUP BY グループ化の基準名

テーブルの結合

  • テーブルを分割しデータを安全、確実、高速に取り扱うために行う
SELECT 選択列リスト
  FROM テーブルA
  JOIN テーブルB
    ON 両テーブルの結合条件

トランザクション

  • 複数のSQL文を1つの命令として扱うことができる
  • DNBSは、トランザクションに含まれるすべてのSQL文について、必ず「すべての実行が完了している」か「1つも実行されていない」かのどちらかの状態になるようにする

テーブルの作成

CREATE TABLE テーブル名 (
  列名1 列1の型名,
  列名2 列2の型名,
  :
  列名X 列Xの型名
)

テーブルの削除

DROP TABLE テーブル名

テーブル定義の変更

列の追加
ALTER TABLE テーブル名 ADD 列名 型
列の削除
ALTER TABLE テーブル名 DROP 列名

制約

  • テーブル作成時に各列に制約を制定し、予期しない値が格納されないようにする

インデックス

  • テーブルの列に対して、索引を作れる
  • インデックスが存在する列に対する検索は、高速になる

難しかったこと

テーブル設計の部分は、個人的に難しく、まだまだ理解が浅いなあと感じました。

参考文献

スッキリわかるSQL入門 第3版

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?