勉強日記

チラ裏

SQL

理論から学ぶデータベース実践入門 ch8 SELECTを攻略する (1/2)

gihyo.jp まとめ SELECTはSQLの心臓部 SELECTの本質 SELECTの強大さ データを取得する唯一の手段 SELECTの基本構造 SELECT七変化 集約関数 関数の有無だけで意味が変わる COUNTの特殊性 GROUP BYによる集約の書式 サブクエリ テーブルサブクエリ スカラサブ…

理論から学ぶデータベース実践入門 ch7 NULLとの戦い

gihyo.jp まとめ NULL NULLとは 3値論理(3VL) NULLは演算を台無しにする 検索結果が意図しないものになる可能性 NULLによる第3の論理値 3値論理の限界 Unknownと曖昧さ コラム: 量子コンピュータとNULL NULLは閉世界仮説に反する オプティマイザへの弊害 NUL…

理論から学ぶデータベース実践入門 ch6 ドメインの設計戦略 1/2

gihyo.jp まとめ ドメイン ドメインとは 集合の要素 ドメインの設計戦略の概要 すべては恣意的な選択 アプリケーションの要求から生まれる データの本質を見極める 属性(カラム)の名前 まとめ ドメインの設計は、現実世界とリレーショナルモデルの世界とをつ…

理論から学ぶデータベース実践入門 ch5 リレーションの直交性

gihyo.jp まとめ リレーションの直交性(Orthogonality) レプリカ 同じ型のリレーション 見出しの一部だけが同じリレーション リレーション直交化のための戦略 正規化 属性(カラム)の名前を統一する アプリケーションの整合性 すべてを直交化する必要はない …

理論から学ぶデータベース実践入門 ch4 正規化理論(その2)

gihyo.jp まとめ 結合従属性(JD) 結合従属性は無損失分解が可能 関数従属性は結合従属性の一種である 暗黙的な結合従属性 非キー属性と結合従属性 結合従属性による正規化(4NF〜6NF) 第4正規形(4NF) 第5正規形(5NF) 接続の罠(Connection Trap) 結合従属性を…

理論から学ぶデータベース実践入門 ch3 正規化理論(その1)

gihyo.jp まとめ なぜDB設計は重要なのか 正規化 リレーショナルモデルを補完する理論 異常を防ぐことができる 正規形 正規形の種類 第1正規形(1NF) コラム: 列の値はスカラであるべき? 繰り返しグループ 候補キーとスーパーキー 関数従属性(FD) コラム: 候…

理論から学ぶデータベース実践入門 ch2 述語論理とリレーショナルモデル 3/3

gihyo.jp リレーションの演算と述語論理 制限(Restrict) 直積(Product) 結合(Join) 積(Intersect) コラム: 結合と制限 和(Union) 差(Difference) 射影(Projection) 属性名変更(Rename) 拡張(Extend) コラム: 外部結合について リレーションの演算と述語論理 …

理論から学ぶデータベース実践入門 ch1 SQLとリレーショナルモデル

gihyo.jp まとめ そもそもSQLって? リレーショナルモデルを知らなくてもSQLは書ける? RDBはリレーショナルモデルを正しく実践してこそ真価を発揮する! リレーショナルモデル リレーションの定義 集合とリレーショナルモデル リレーションの演算 コラム: …

SQL Antipatterns ch2 Jaywalking (信号無視)

pragprog.com Jaywalking Objective: Store Multivalue Attributes Antipattern: Format Comma-Separated Lists How to Recognize the Antipattern Legitimate Uses of the Antipattern Solution: Create an Intersection Table Other Advantages of the Int…

SQL Antipattens ch1 Introduction

pragprog.com Introduction Who This Book Is For What's in This Book Parts of This Book Anatomy of an Antipattern What's Not in This Book 英語 Introduction 著者Bill Karwinは人生最初のSQLの仕事を拒否した SQLのサブセットを作る話 「SELECT文だけ…

OSSDB標準教科書9章 バックアップとリストア

OSSDB標準教科書 oss-db.jp バックアップとリストア ファイルのコピー pg_dump, pg_dumpallコマンドによるバックアップ psqlコマンドによるリストア バックアップとリストア ファイルのコピー dataディレクトリをtarでアーカイブ PostgreSQLを完全に停止して…

OSSDB標準教科書8章 パフォーマンスチューニング

OSSDB標準教科書 oss-db.jp インデックス 主キーのインデックス インデックスの作成 インデックスを削除する インデックスは万能ではない SQL実行プランの分析 インデックスが存在しない場合のSQL実行プラン インデックスが存在する場合のSQL実行プラン イン…

OSSDB標準教科書7章 マルチユーザでの利用

OSSDB標準教科書 oss-db.jp マルチユーザでの利用 ユーザの作成 ユーザとロール スーパーユーザ 接続と認証 接続認証の設定を確認 接続方法(TYPE) データベース(DATABASE) ユーザ(USER) 認証方式(METHOD) 接続ユーザの指定 パスワード認証の設定 ユーザ・パ…

OSSDB標準教科書6章 データベース定義の応用

OSSDB標準教科書 oss-db.jp 6章 データベース定義の応用 主キー 主キーを指定する 主キーの動作を確認する 複数列からなる主キー 外部キー 参照整合性制約 外部キーを指定する 外部キーの動作を確認する CREATE TABLE文で主キー、外部キーを設定する 主キー…

閃乱カグラのデータで学ぶOSSDB標準教科書5章 SQLによるデータベースの操作 応用編

なんか飽きてきたから閃乱カグラのデータでやる 第5章 SQLによるデータベースの操作 応用編 AND/OR演算子 LIKE演算子 BETWEEN演算子 集約関数 count関数 sum関数 avg関数 max,min関数 GROUP BY句と集約関数の組み合わせ HAVING句 WHERE句、GROUP BY句、HAVIN…

OSSDB標準教科書4章 基礎編 演習

OSSDB標準教科書 oss-db.jp 4章 基礎編 演習 演習1 表の確認 すべての商品の価格を10%アップ 価格が100以上の商品の価格を元に戻す 表のデータをすべてファイルにコピー 表をすべて削除 表を再度作成 データをファイルからコピー 郵便番号データベース 郵便…

OSSDB標準教科書3章 データベース定義 基礎編

OSSDB標準教科書 oss-db.jp 3章 データベース定義 基礎編 表の作成(CREATE TABLE) 表を作成する staff表にデータを格納する 表定義の修正(ALTER TABLE) 表定義の修正は原則として行わない 表の削除(DROP TABLE) DELETE文、DROP TABLE文、 TRUNCATE文の使い分…

OSSDB標準教科書2章 データ型

OSSDB標準教科書 oss-db.jp 2章 データ型 数値データ型 文字列データ型 character varying型 (varchar) character型 text型 日付・時刻データ型 date型 time型 timestamp型 2章 データ型 数値データ型 いろいろある データ型 サイズ(byte) 範囲 smallint 2 2…

Laravel DB自動テスト おぼえがき

テスト時にDBを差し替える設定 テスト用DB作る~MySQLの場合 テスト書く 仕様 つまづいたところ テスト時にDBを差し替える設定 <proj_root>/phpunit.xmlに下記を追記 <env name="SESSION_DRIVER" value="array"/> <env name="QUEUE_DRIVER" value="sync"/> + <env name="DB_DATABASE" value="app_test"/> テスト用DB作る~MySQLの場合 rootでmysqlに入る CREATE DATABASE app_test; USE app_test; アプ…</env></env></env></proj_root>

達人に学ぶSQL徹底指南書 第2版 Chapter10 SQLで数列を扱う

www.shoeisha.co.jp の輪読会資料 まとめ はじめに 連番を作ろう 00から99までの100個の数の中には、0,1,2,......9の各数字はそれぞれ何個含まれるか 0-99の連番を作る 1-542の連番を作る シーケンスビューを作る シーケンスビューから1-100まで取得 【補】0…

閃乱カグラのデータで勉強するSQL 3 -- 自己結合・自己相関サブクエリ

senrankagura.marv.jp りんごとかバナナとかで練習しても一つも面白くないので、 閃乱カグラのキャラクターのスリーサイズ等、現実的なデータで練習をしていく SQL置き場 非順序対をつくる -- 勢力ごとに、学年が異なる者でペアを組む 部分的に不一致なデー…

閃乱カグラのデータで勉強するSQL 1 -- Case式

senrankagura.marv.jp りんごとかバナナとかで練習しても一つも面白くないので、 閃乱カグラのキャラクターのスリーサイズ等、現実的なデータで練習をしていく SQL置き場 マスタデータ 既存のコード体系を新しい体系に変換する 異なる条件の集計を1つのクエ…

達人に学ぶSQL徹底指南書 第2版 Chapter5 WIP

序文 SQLを支える基礎理論は2つ 集合論 述語論理(predicate logic) SQLで使う述語論理は、「一階述語論理」...行の集合 = テーブルを対象とする 0階: 行対象 二階: 行の集合の集合 = テーブルの集合を対象とする EXISTSは「量化」(quantification)を実現する…

達人に学ぶSQL徹底指南書 第2版 Chapter4

www.shoeisha.co.jp 4. 3値論理とNULL 4. 3値論理とNULL 序文 本題に入る前に 理論編 NULLについて NULLを2つに分類 by E.F.コッド 2つのNULLをひとまとめに なぜ「= NULL」ではなく「IS NULL」と書かなければならないのか? unknown、第三の真理値 注意 真…

達人に学ぶSQL徹底指南書 第2版 Chapter3

www.shoeisha.co.jp 3. 自己結合の使い方 3. 自己結合の使い方 序文 キーフレーズ 自己結合(self join)とは 重複順列・順列・組み合わせ 「対」の種類 対をつくる: 自己CROSS JOIN 気になった点 重複を許して、順列(順序対)をつくる 重複を除いて、順列(順序…

達人に学ぶSQL徹底指南書 第2版 Chapter1

www.shoeisha.co.jp オンラインSQL環境 1. CASE式のススメ CASE式とは CASE式使え 注意点 SELECT CHECK制約 UPDATE テーブル同士のマッチング オンラインSQL環境 Convert CSV to SQL ...データからcreate/insert文つくる 勉強的には自分で書くのが一番良いん…