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 リベースで履歴を書き換える
コミットをきれいに整えてから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 ローカルリポジトリ
オリジナルアプリ改修中ででたActiveRecord::RecordNotFoundについて
こんにちはrotosiri-zuです。今回はオリジナルアプリ改善中ででたActiveRecord::RecordNotFoundについて書いていきます。
エラー原因
Showページでidを引き渡して商品情報を取得しようとしたがidがnillになっている為、このエラーが発生しました。
解決策
コントローラーにrescue_fromを記載
rescue_from ActiveRecord::RecordNotFound, with: :record_not_found
-
- 省略 --
def record_not_found
flash[:error] = "ご指定のページが見つかりません"
redirect_back(fallback_location: root_path)
end
参考資料
railsguides.jp
このブログについて
こんにちはrotosiri-zuです。
現在36歳でリフトオペレーターの仕事をしながら、
1年半弱プログラミングを学習中で現在転職活動をしております。
このブログでは、プログラミングについて勉強したことを書いていく予定です。
ほぼ自分の備忘録です。
私のプログラミング経験はほぼゼロで、
ドットインストールのサービスからプログラミングを学びました。
その後やんばるエキスパートのRubyコースを受講し、
現在もやんばるエキスパートに所属しつつ独学でRubyを勉強しております。
Rubyを選んだ理由は
・初心者が入りやすく参考にする記事が多い
・Rubyを扱うコミニティが多い
以上の理由でRubyを選択しました。
今はRuby on Railsで作成したポートフォリオを転職活動に使用しつつ、
プロを目指す人のためのRuby入門でRubyの基礎を勉強しております。