データを表計算ソフトに取り込む

select文により取得したデータの利用方法

データをCSVに書き出す

CSVとは

 * Comma-Separated Valuesの略
 * 区切りもじであるコンマ「,」で区切ったテキストデータ

CSVの例

id ,name price
1, 商品01, 500

CSVの代わりにTSVという形式を使うことがある。

TSVとは

  • Tab-Separated Values(TSV)の略
  • 区切りもじであるコンマ「タブ」で区切ったテキストデータ

SQL文の基礎

データベースからデータを取得するselect文

* 構文
   select 列1,列2 ... from テーブル名
* 全ての列を取得したい場合は、
   select * from テーブル名;

初心者が間違いやすいこと

  • DBを選択していない
  • スペルミス
  • 全角文字で記載

コメントの種類

  • ① 「--」
  • ② 「/ /」

  • 「*」を使って全ての行を取得するより、必要な列を絞って取得する方が高速に実行できる

  • 実務では、基本的に必要なカラムに絞ってデータを取得する。
  • 試験的にSQLを書く時や、学習の時など、パフォーマンスの心配がないときは、「*」を使うこともある。

列に別名を付ける

select 列1 as 別名にする文字を記載 from テーブル名

※asは省略可能

列の値に対して演算を行う

  • テーブルから抽出した結果をそのまま使うだけではなく、計算した結果を出力することができる。
select
  name as 名前,
  price as 価格,
  price * 1.1 as 税込価格
from
  products;

条件を指定して値を取得できるwhere句を使用

  • 構文
select 列1, 列2 ... from  テーブル名 where 条件;

where句で条件を設定する際に利用できる代表的な演算子の種類

  • 「=」等しい
  • 「>」より大きい
  • 「>=」以上
  • 「<」より小さい
  • 「<=」以下
  • 「<>」, 「!=」等しくない
  • 「in」ある値が値セット内に含まれているかどうか
  • 「not in」値が値セット内に含まれていないかどうか
  • 「is null」値がnull
  • 「is not null」値がnullでない
  • 「like」パターンマッチング(あいまい検索)
  • 「between ... and ...」値が値の範囲内に含まれているか

パターンマッチングによる絞込ができるlike句

  • 構文
select 列1, ...,from テーブル名 where 列名 like ワイルドカード文字;

ワイルドカード文字について

  • ワイルドカード文字で文字列のパターンを指定します。

    1. '%' (パーセント) ・・・0文字以上の任意の文字列
    2. '_' (アンダースコア) ・・・任意の1文字
  • 例)

    1. '中%' →'中'で始まる文字列
    2. '%中%' → '中'を含む文字列
    3. '%子' → '子'で終わる文字列
    4. '__子' →何かしらの文字から始まり、'子'で終わる文字列

取得件数を制限できるlimit句

  • 構文
select 列1, ・・・ from テーブル名 limit [オフセット,] 最大取得件数;

※オフセットは省略可能

SQLの基礎

データベース、テーブル、行(レコード、ロウ)、列(フィールド、カラム) クエリ(query, お問い合わせ)

データの検索や更新、削除、抽出などの要求をデータベースに送信すること。

使用例

  • ユーザー情報を取得するために、クエリを投げる。

データ型

・データベースでは、テーブルを作成する時に、それぞれの列(カラム・フィールド)に指定した  形式のデータしか、入力できないように設定する。

・この時指定するデータの形式をデータ型という。

主なデータ型の種類

  • 数値型
  • 文字列型
  • 日付・時刻型

数値型

  • int型 (イント、インテジャー)
    • 整数
  • tinyint型 (タイニーイント)
    • とても小さな整数 真偽値を扱いたいときや、127以下の数字を扱いたい時
  • float型 (フロート)
    • 小さな(単精度) 浮動小数点 ※現場ではあまり使わない
  • double型 (ダブル)

  • int unsigned

    • 数値は、符号なしとすることができます。言い換えると、正の整数だけ扱うとする
  • tinyint(1)
    • 真偽値 true/false
    • 内部的にはtrueは数学の1、falseは数学の0で管理されています。

    ※関連して・・・MySQLでは0とnullがfalseで、空文字を含むそれ以外の値は全てtrueとなる。

    • null(ヌル) ・・・データが存在しないことを表す値

文字列型

  • char型 (キャラ)
    • 固定長の文字列 255文字まで。文字列を格納する時に指定した長さになるようにスペースが埋め込まれます。
    • 列)商品コードで5桁固定"CD123"。定義方法 : char(5)
  • varchar型 (バーキャラ)
    • 可変長の文字列 255文字列まで。
    • 例) email "hijikata@example.com"。定義方法 : varchar(255)
  • text (テキスト)
    • 長い文字列 65535文字まで ・・・実務上は、255文字まではvarchar, それ以上はtextとすることが多い。

日付・時刻型

  • date型 (ディト)
    • 日付
  • datetime型 (ディトタイム)
    • 日付と時刻
  • time型 (タイム)
    • 時刻

ER図

  • ER図
    • Entity Relationship Diagram
    • データベースの構造を表す方法の一つ

git 一次避難

作業が途中でコミットしたくないけど別のブランチで作業しないといけない。 そういう時に作業を一時避難する。

作業を一次避難する

git stash
git stash save

作業した作業を確認する

git stash list

避難した作業を復元する

git stash apply

ステージの状況も復元する

git stash apply --index

特定の作業を復元する

git stash apply [スタッシュ名]
git stash apply stash@{1}

*applyは適用するという意味

避難した作業を削除しよう

git stash drop

特定の作業を削除する

git stash drop [スタッシュ名]
git stash drop srash@{1}

全作業を削除する

git stash clear

git タグ付け

gitのタグは2種類ある(注釈付きタグ)と(軽量タグ)

注釈付きタグ

git tag -a [タグ] -m "[メッセージ]" 
-mはエディタを立ち上げずにメッセージを入力できる

軽量タグ

git tag [タグ名]

後からタグ付けする

git tag [タグ名] [コミット名]

タグのデータを表示する

git show [タグ名]

タグをリモートに送信するには git push コマンドで別途指定する

タグをリモートリポジトリに送信する

git push [リモート名] [タグ名]

タグを一斉に送信する

git push origin --tags

git リベースで履歴を書き換える

コミットをきれいに整えてからpushしたい時は履歴を書き換えよう。

*GitHubにPushしていないコミット

直前のコミットをやり直す
git commit --amend

リモートリポジトリにPushしたコミットはやり直したらダメだよ。

複数のコミットをやり直す
git rebase -i <コミットID>
git rebase -i HEAD~3

pick gh21f6d ヘッダー修正
pick 193054e ファイル追加
pick 84gha0d README修正

-iは--interactiveの略だよ。 対話的リベースといって、やり取りしながら履歴を変更していくよ。

やり直したいcommitをeditにする

edit gh21f6d ヘッダー修正
pick 193054e ファイル追加
pick 84gha0d README修正

やり直したら実行する

git commit --amend

次のコミットへ進む(リベース完了)

git reabase --continue

HEAD~
1番目の親を指定する。
HEADを基点にして数値分の親コミットまで指定する。

HEAD^
マージした場合の2番目の親を指定する。

rebase -i コマンドの一連の流れ

①git rebase -i コマンドで対話的リベースモードに入る

②修正したいコミットをeditにしてコミットエディタを終了する

③editのコミットのところでコミットの適用が止まる

④git commit --amendコマンドで修正

⑤git rebase --continueで次のコミットへ行く

⑥pickでとそのままのコミット内容を適用して次へ行く

コミットを並び替える、削除

# コミットを並び替える、削除
①8e4ghaOdのコミットを消す
②193054eを先に適用する
pick 193054e ファイル追加
pick gh21f6d ヘッダー修正

コミットをまとめる

# コミットを1つにまとめる
pick gh21f6d ヘッダー修正
squash 193054e ファイル追加
squash 84ghaOd README修正

コミットを分割する

# コミットを分割する
pick gh21f6d ヘッダー修正
pick 193054e ファイル追加
edit 84ghaOd READMEとindex修正
git reset HEAD^
git add README
git commit -m 'README修正'
git add index.html
git commit -m 'index.html修正'
git rebase --continue

git プルのマージ型、リベース型

プルのマージ型

git pull <リモート名><ブランチ名>
git pull origin master

マージコミットが残るから、マージしたという記録を残したい場合に使おう

プルのリベース型

git pull --rebase
<リモート名><ブランチ名>
git pull --rebase origin master

マージコミットが残らないから、GitHubの内容を取得したいだけの時は--rebaseを使おう

プルをリベース型に設定する

git config --global pull.rebase true

masterブランチでgit pullする時だけ
git config branch.master.rebase true

--rebaseオプションを付けなくてもgit pullの挙動がリベース型になるよ

~/.gitconfig
~/.config/git/config

--globalを付けるとPC全体の設定になるよ

project/.git/config
ローカルリポジトリ