SQL

スポンサーリンク
SQL

Java | 「赤黒木」と「AVL木」をもっと深く理解する

Javaで考える「赤黒木」と「AVL木」をもっと深く理解する(前半)赤黒木(Red-Black Tree)や AVL 木は、 「常にバランスを保つ二分探索木」というカテゴリの代表選手です。 これらを理...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:プロレベル運用 - Day30 アウトプット

Day30 前半のゴール「“頭の中の理解”を、“他人に渡せるアウトプット”に変える」Day30 は、いよいよアウトプットの日です。 やることは3つ、「設計書」「ER図」「パフォーマンス改善レポート」。...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:プロレベル運用 - Day29 総合課題

Day29 前半のゴール「バラバラに学んだ機能を、“1つのミニ業務システム”としてつなげる」Day29 は総合課題です。 テーマは「顧客管理」「注文処理」「分析クエリ」「JSONデータ処理」を全部まと...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:プロレベル運用 - Day28 レプリケーション

Day28 前半のゴール「“DBは1台だけ”という前提を捨てて、“コピーして読ませる”をイメージする」今日のテーマはレプリケーションです。 一言でいうと「あるDBサーバのデータを、別のDBサーバにリア...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:プロレベル運用 - Day27 拡張機能

Day27 前半のゴール「“PostgreSQLはただのRDB”から“機能を足せるプラットフォーム”だと気づく」今日のテーマは「拡張機能(extension)」、そして代表例としての PostGIS(...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:プロレベル運用 - Day26 権限管理

Day26 前半のゴール「“何でもできるユーザー”をやめて、“役割ごとに守る”感覚を持つ」Day26 は「権限管理」です。ここまで性能や自動処理を見てきたけれど、本番運用で一番怖いのは「やってはいけな...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:プロレベル運用 - Day25 トリガー

Day25 前半のゴール「“INSERTしたら勝手に何かしてくれる”を安全にイメージできるようになる」今日のテーマはトリガーです。一言でいうと「テーブルに対する操作(INSERT / UPDATE /...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:プロレベル運用 - Day24 ストアド関数

Day24 前半のゴール「“SQLだけのDB”から“ロジックを持つDB”をイメージできるようになる」Day24 は、いよいよ「ストアド関数」と「PL/pgSQL」です。ここまで、SQLを書いてデータを...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:設計とパフォーマンス - Day23 バックアップ

Day23 前半のゴール「“壊れたら終わり”を“壊れても戻せる”に変える感覚を持つ」Day23 はバックアップです。ここまで設計・パフォーマンス・トランザクション・ロック…とやってきましたが、どれだけ...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:設計とパフォーマンス - Day22 パーティショニング

Day22 前半のゴール「“1テーブルで全部持つ”から“賢く分ける”発想に切り替える」Day22 のテーマは「パーティショニング」、つまりテーブル分割です。ここまでずっと「テーブル設計」をやってきまし...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:設計とパフォーマンス - Day21 正規化と設計

Day21 前半のゴール「“教科書の正規化”から“現場の設計”に橋をかける」Day21 はいよいよ「実務レベルの設計」です。これまで、正規化・インデックス・トランザクション・MVCC・ロック…と、部品...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:設計とパフォーマンス - Day20 ロック制御

Day20 前半のゴール「“デッドロック=お見合い状態”を具体的なイメージで理解する」ロック制御の中でも、現場で一番イヤなやつが「デッドロック」です。エラーとしては一瞬で終わるのに、原因を特定するのが...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:設計とパフォーマンス - Day19 トランザクション

Day19 前半のゴール「“同時に更新しても壊れない”仕組みをイメージで理解する」ここからはトランザクション編です。Day19 のテーマは PostgreSQL の心臓部、「MVCC(Multi Ve...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:設計とパフォーマンス - Day18 パフォーマンスチューニング

Day18 前半のゴール「“なんとなく遅い”をやめて、“どこが遅いか”と言えるようになる」パフォーマンスチューニング編の入口です。Day18 のテーマは「ボトルネック特定」――つまり、「どこが遅いのか...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:設計とパフォーマンス - Day17 インデックス応用

Day17 前半のゴール「“B-tree 以外のインデックスが必要になる場面”をイメージできるようにする」ここからはインデックス応用編です。Day17 のテーマは、PostgreSQL の強みでもある...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:設計とパフォーマンス - Day16 実行計画

Day16 前半のゴール「“SQLがどう動いているか”を目で見て理解する感覚を持つ」ここからは「設計とパフォーマンス」のフェーズです。Day16 のテーマは、PostgreSQL の実行計画を見るため...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:高度SQL - Day15 中間課題

Day15 前半のゴール「“分析用SQLを設計する頭の使い方”をつかむ」ここまでで、CTE・ウィンドウ関数・JSON・配列・全文検索と、かなり武器が増えました。Day15 はその中間課題として、「売上...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:高度SQL - Day14 全文検索

Day14 前半のゴール「“LIKE検索じゃ足りない世界”をイメージできるようにする」今日は PostgreSQL の「全文検索(FULL TEXT SEARCH)」です。これは、WHERE titl...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:高度SQL - Day13 配列型

Day13 前半のゴール「“SQLの中でも配列を持てる”感覚を手に入れる」今日は、PostgreSQLのもうひとつの武器「配列型(ARRAY)」です。JSONと似ているところもありますが、「型がはっき...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:高度SQL - Day12 JSON操作②

Day12 前半のゴール「“JSONの世界”をSQLのテーブルっぽく扱う感覚を持つ」Day11 では「JSONをカラムに入れる」「中身を取り出す」「中身で検索する」ところまで来ました。Day12 はそ...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:高度SQL - Day11 JSON操作①

Day11 前半のゴール「“JSONをそのままカラムに入れて、SQLで触れる”感覚を持つ」今日からは、PostgreSQLの大きな武器のひとつ、JSONです。SQLiteやMySQLでもJSONは扱え...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:高度SQL - Day10 ウィンドウ関数②

Day10 前半のゴール「“行ごとにグラフの線を描く”イメージを持つ」Day10 はウィンドウ関数の第2弾、「累積」と「移動平均」です。どちらも「時間の流れに沿って、値がどう変化していくか」を見るとき...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:高度SQL - Day9 ウィンドウ関数①

Day9 前半のゴール「“集計しながら行ごとに順位を付ける”感覚をつかむ」今日はウィンドウ関数の入り口、ROW_NUMBER と RANK です。MySQLやSQLiteでも最近は使えますが、Post...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:高度SQL - Day8 CTE(WITH句)

Day8 前半のゴール「長いSQLを“分割して名前を付ける”感覚を身につける」今日は高度SQLの入り口、CTE(Common Table Expression)、つまり WITH 句です。Postgr...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:差分理解 - Day7 復習課題

Day7 前半のゴール「“そのままコピペ”ではなく、“差分を意識して移植する”感覚を持つ」Day7 は、ここまで学んだ差分理解の「復習課題」です。テーマはシンプルで、MySQLで作ったDBをPostg...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:差分理解 - Day6 インデックス基礎

Day6 前半のゴール「“インデックス=本の索引”を超えて、“中で何が起きているか”をざっくり掴む」今日は PostgreSQL のインデックス、その中でも標準の B-tree インデックスと、そのざ...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:差分理解 - Day5 制約

Day5 前半のゴール「“DBが仕様を守ってくれる”感覚を、PostgreSQL流でつかむ」今日は「制約」の話です。SQLite ではかなりゆるく、MySQL でも設定次第で挙動が変わるところですが、...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:差分理解 - Day4 シーケンス

Day4 前半のゴール「PostgreSQLの“連番の正体”=シーケンスをイメージできるようになる」今日は、主キーでほぼ必ず出てくる「連番」の話です。MySQL の AUTO_INCREMENT に慣...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:差分理解 - Day3 データ型の理解

Day3 前半のゴール「“なんとなく文字列・なんとなく日付”から卒業する」今日は PostgreSQL の代表的なデータ型のうち、文字列(TEXT / VARCHAR)、真偽値(BOOLEAN)、日時...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:差分理解 - Day2 MySQLとの違い

Day2 前半のゴール「“PostgreSQLはちょっと真面目なやつ”という感覚をつかむ」今日は、SQLite と MySQLを触ってきたあなたに向けて、「PostgreSQLって、どこが違うの?」を...
PostgreSQL

PostgreSQL | SQLite+MySQL経験者向け、30日で習得するPostgreSQL:差分理解 - Day1 環境構築

Day1 前半のゴール「SQLite/MySQL経験を“そのまま活かして”PostgreSQLに触り始める」今日のテーマは PostgreSQL の最初の一歩です。すでに SQLite と MySQL...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:実務応用 - Day30 アウトプット

Day30 前半のゴール「“頭の中の設計”を、他人と共有できる形に書き出せるようになる」いよいよ Day30。ここまでで、MySQL を使って「それなりにちゃんとしたシステム」を作れるところまで来まし...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:実務応用 - Day29 総合課題

Day29 前半のゴール「“バラバラに学んだピースを、1つのECシステムとして頭の中で組み上げる”」ここまでで、テーブル設計、インデックス、API連携、ログ、権限、障害対応まで、一通りのピースを学んで...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:実務応用 - Day28 障害対応

Day28 前半のゴール「“DBでトラブルが起きたときの見方”を持てるようになる」ここからは、ちょっと怖いテーマです。「障害対応」――データ破損やロック問題の話です。前半のゴールはこうです。データ破損...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:実務応用 - Day27 権限管理

Day27 前半のゴール「“誰が何をしていいか”を、設計として説明できるようになる」ここからは「権限管理」です。パフォーマンスやAPI連携が「どう動かすか」だとしたら、権限管理は「誰にどこまで触らせる...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:実務応用 - Day26 ログ設計

Day26 前半のゴール「“あとからちゃんと追えるDB”とは何かを理解する」ここからは「ログ設計」です。パフォーマンスやAPI連携が“攻め”だとしたら、ログは“守りと証拠”の領域です。今日の前半のゴー...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:実務応用 - Day25 API連携

Day25 前半のゴール「“APIがDBの入口になる”イメージを、はっきり持てるようになる」Day24 で「アプリから MySQL に直接つなぐ」話をしました。Day25 は、そこにもう一段レイヤーを...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:実務応用 - Day24 アプリ連携

Day24 前半のゴール「“アプリからMySQLに話しかける”流れを、自分でイメージできるようになる」ここまでで、MySQL 単体での設計・チューニングはかなり触ってきました。Day24 からは「アプ...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:パフォーマンスと設計 - Day23 設計演習

Day23 前半のゴール「“ECサイトのDB設計”を、怖がらずに分解して考えられるようになる」いよいよ設計演習です。テーマは「ECサイトのDB設計」。いきなり完璧な設計を作る必要はありません。今日の前...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:パフォーマンスと設計 - Day22 バックアップ

Day22 前半のゴール「“もしDBが飛んでも戻せる”状態を、自分で作れるイメージを持つ」ここからは「パフォーマンスと設計」だけでなく、「守り」の話に入ります。テーマはバックアップ――mysqldum...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:パフォーマンスと設計 - Day21 パーティショニング

Day21 前半のゴール「“テーブルを分けて速くする”という発想を、自分の言葉で説明できるようになる」今日のテーマは「パーティショニング」です。一言でいうと、巨大テーブルを“論理的には1つのテーブルの...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:パフォーマンスと設計 - Day20 正規化と非正規化

Day20 前半のゴール「“正規化が正義”でも“非正規化が悪”でもなく、目的で選べるようになる」今日は「正規化と非正規化」です。ここは、実務に出たときにほぼ確実にぶつかるテーマです。前半のゴールはこう...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:パフォーマンスと設計 - Day19 クエリチューニング②

Day19 前半のゴール「JOIN が遅いときに“どこが悪いか”を冷静に切り分けられるようになる」Day18 では「遅いSQL全般」のチューニングをやりました。Day19 はその中でも、実務で一番ハマ...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:パフォーマンスと設計 - Day18 クエリチューニング①

Day18 前半のゴール「“なんとなく遅いSQL”を、筋道立てて改善ポイントまで分解できるようになる」Day18 からはいよいよ「クエリチューニング」です。テーマは「遅いSQLの改善」。ここで目指すの...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:パフォーマンスと設計 - Day17 インデックス設計

Day17 前半のゴール「“なんとなく”ではなく“理由を持って”インデックスを貼れるようになる」Day17 のテーマはインデックス設計です。ここからが、パフォーマンスと設計の本丸です。一言で言うと、今...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:パフォーマンスと設計 - Day16 実行計画

Day16 前半のゴール「EXPLAIN を“怖い表”じゃなくて“SQLの行動ログ”として読めるようになる」ここからいよいよ「パフォーマンスと設計」の世界に入ります。Day16 の主役は EXPLAI...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:実務SQL力 - Day15 中間課題

Day15 前半のゴール「ここまで学んだ要素を“注文処理システム”として頭の中で組み立てられるようにする」Day15 は中間課題です。テーマは「注文処理システムを実装」です。ここまでで、あなたはすでに...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:実務SQL力 - Day14 トランザクション

Day14 前半のゴール「“お金の振込”をイメージしながらトランザクションを理解する」今日のテーマはトランザクションとロックです。ここから一気に「実務っぽさ」が増えます。まず一言で言うと、トランザクシ...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:実務SQL力 - Day13 トリガー

Day13 前半のゴール「“INSERT にフックする自動処理”としてトリガーをイメージできるようにする」今日のテーマはトリガー(TRIGGER)です。ここから一気に「DBが自分で動き出す」感じが強く...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:実務SQL力 - Day12 ストアドプロシージャ②

Day12 前半のゴール「“SQLの中でプログラムを書く”感覚をつかむ」Day11 でストアドプロシージャの基本構文と、IN / OUT パラメータ、IF・CASE の入口まで触れました。Day12 ...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:実務SQL力 - Day11 ストアドプロシージャ①

Day11 前半のゴール「“SQL版の関数”としてストアドプロシージャをイメージできるようになる」ここからは、いよいよ「DBの中で動くプログラム」、ストアドプロシージャの世界に入ります。SQLite ...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:実務SQL力 - Day10 ビュー

Day10 前半のゴール「ビューを“保存されたSELECT文”としてイメージできるようになる」Day10 のテーマはビュー(VIEW)です。SQLite にもビューはありましたが、使わずに来た人も多い...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:実務SQL力 - Day9 サブクエリ最適化

Day9 前半のゴール「EXISTS と IN を“なんとなく同じ”から卒業する」今日はサブクエリの中でも、実務で頻出のテーマEXISTS と INを扱います。多くの人が最初こう思います。「EXIST...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:実務SQL力 - Day8 JOINの最適化

Day8 前半のゴール「JOIN は“上から順に実行されない”ことを理解する」ここからいよいよ「実務SQL力」に入っていきます。Day8 のテーマは JOIN の最適化、その中でも「実行順序」です。多...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:差分理解 - Day7 復習課題

Day7 前半のゴール「“SQLiteで書けたCREATE TABLE”を、MySQL流に書き直せるようになる」Day7 は、ここまで学んだ差分を一気に使う「総復習の入り口」です。テーマはシンプルで、...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:差分理解 - Day6 インデックス基礎

Day6 前半のゴール「“インデックス=検索用の目次”を、感覚レベルで理解する」SQLiteでもインデックスはありましたが、「なんとなくPRIMARY KEYに勝手についてるやつ」くらいの理解で済ませ...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:差分理解 - Day5 制約の強化

Day5 前半のゴール「“あいまいなデータ”をDBレベルで拒否できるようになる」今日は「制約(constraint)」の中でも、特に重要な2つに絞ります。PRIMARY KEYFOREIGN KEYS...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:差分理解 - Day4 文字コードと照合順序

Day4 前半のゴール「“文字化けしない”だけじゃなく、“正しく比較・ソートできる”を意識する」SQLite を使っていると、文字コードやソート順をあまり意識しないままでも、そこそこ動いてしまいます。...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:差分理解 - Day3 基本操作の確認

Day3 前半のゴール「SQLiteで知っている基本操作を、“MySQLの文法とクセ”で再確認する」今日はあえて「復習レベル」でいきます。テーマはこの3つです。CREATE TABLEINSERT /...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:差分理解 - Day2 SQLiteとの違い

Day2 前半のゴール「“なんとなくTEXTだけ”から、“型を意識して設計する”に切り替える」SQLite では、正直こうでしたよね。TEXT と INTEGER と REAL があればだいたい何とか...
MySQL

MySQL | SQLite経験者向け、30日で習得するMySQL:差分理解 - Day1 環境構築

Day1 前半のゴール「SQLiteとの“違い”を意識しながら、MySQLの入口に立つ」この30日コースは「SQLiteは触ったことがある人」が前提です。だから Day1 では、まっさらな説明ではなく...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:実践 - Day30 アウトプット

Day30 前半のゴール「“SQLだけでレポートを作る”感覚と、“他人に説明する”視点を手に入れる」ここまで29日間、テーブル設計・JOIN・集計・インデックス・EC風DB設計まで、一通りやってきまし...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:実践 - Day29 総合課題

Day29 前半のゴール「“ECサイト風”の世界を、テーブル設計に落とし込めるようになる」いよいよ Day29、総合課題です。テーマは 小規模データベースをゼロから設計(ECサイト風)。前半のゴールは...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:実践 - Day28 パフォーマンス基礎

Day28 前半のゴール「インデックスって“何者か”を、体感レベルで理解する」ここまでで、かなり複雑な JOIN や集計を書けるようになりました。次のテーマは パフォーマンス基礎:インデックス です。...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:実践 - Day27 実践クエリ

Day27 前半のゴール「“複雑そうに見えるJOIN+集計”を、怖がらずに分解して読めるようになる」Day25〜26 で、顧客・商品・注文・注文明細を分けて設計し、正規化の感覚もつかんできました。Da...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:実践 - Day26 設計改善

Day26 前半のゴール「“とりあえず動く設計”から“一生付き合える設計”に育てる感覚をつかむ」Day25 までで、顧客・商品・注文のテーブルを分けて、それなりに“ちゃんとした”売上管理ができるように...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:実践 - Day25 ミニ課題②

Day25 前半のゴール「顧客×商品×注文を“ちゃんと分けて”設計できるようになる」Day24 では「顧客だけ」の世界でした。Day25 は一気に現実寄りになります。テーマは 売上管理(顧客×商品×注...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:実践 - Day24 ミニ課題①

Day24 前半のゴール「小さくても“ちゃんとした顧客管理テーブル”を自分で設計して作る」ここからは「実践編」です。Day24 のテーマは、ミニ課題としての 顧客管理テーブル。前半では、次のところまで...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:データ操作・設計 - Day23 ビュー

Day23 前半「VIEW は“よく使う SELECT に名前をつけてテーブルみたいに扱う仕組み」だと思っていいここまで、テーブルを設計してSELECT / JOIN / サブクエリで欲しい形の結果を...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:データ操作・設計 - Day22 サブクエリ②

Day22 前半「EXISTS / IN は“あるかどうか”を聞くためのサブクエリ専用キーワード」Day21 では、SELECT の中にサブクエリを入れて「1行ごとの追加情報」をくっつけました。Day...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:データ操作・設計 - Day21 サブクエリ①

Day21 前半「SELECT の“1列”として、もう1回 SELECT を動かす」という発想を持つここまであなたは、1つの SELECT でテーブルから行を取り出す複数テーブルを JOIN して情報...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:データ操作・設計 - Day20 複数テーブル設計

Day20 前半「テーブルを“ちゃんと分ける”ことで、あとから自分を助けるのが正規化」ここまで、1つのテーブルを前提にSELECT / JOIN / UPDATE / DELETE / INDEX を...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:データ操作・設計 - Day19 インデックス

Day19 前半「インデックス=“本の索引”をテーブルに付けて、検索を一気に速くする」ここまでで、SELECT・JOIN・WHERE・GROUP BY…いろいろな「検索の技」を覚えてきました。でも、デ...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:データ操作・設計 - Day18 制約

Day18 前半「そもそも“おかしなデータ”が入らないようにする」ための仕組みが制約ここまで、SELECT(読む)UPDATE(書き換える)DELETE(消す)をやってきました。ここで一度、視点をガラ...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:データ操作・設計 - Day17 削除

Day17 前半「本当に消える」DELETE は、UPDATE よりさらに“重い一手”ここまでで、SELECT(読む)UPDATE(書き換える)をやってきました。Day17 のテーマは DELETE(...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:データ操作・設計 - Day16 更新

Day16 前半「データを書き換える」という、検索とはまったく違う“力”を手に入れるDay1〜Day15 までは、SELECT を中心に「データを読む」ことを学んできました。Day16 からは、いよい...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:検索力強化 - Day15 結合②

Day15 前半「片方にしかいないデータも“落とさずに見る”」ための LEFT JOINDay14 で学んだ INNER JOIN は、「両方のテーブルに相手がいる行だけを残す結合」でした。Day15...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:検索力強化 - Day14 結合①

Day14 前半「バラバラのテーブルを“意味のある1枚”にくっつける」のが JOINここまでずっと、1つのテーブルだけを相手にしてきました。users なら users だけ、orders なら or...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:検索力強化 - Day13 条件付き集計

Day13 前半「グループを作った“あと”に条件をかける」という新しい一手Day12 で、GROUP BY を使って「ユーザーごとの合計」「日付ごとの件数」のような グループ単位の集計 ができるように...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:検索力強化 - Day12 グループ化

Day12 前半「1件ずつ」ではなく「グループごと」に数字を見る世界に入るここまでで、COUNT / SUM / AVG / MAX / MIN を使って「テーブル全体」や「WHERE で絞った一部」...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:検索力強化 - Day11 集計②

Day11 前半「平均・最大・最小」で“数字の性格”をつかみにいくDay10 では、COUNT と SUM を使って「何件あるか」「合計はいくらか」を数字で見るところまで来ました。Day11 では、そ...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:検索力強化 - Day10 集計①

Day10 前半「行そのもの」ではなく「行の“数”や“合計”を見る」世界に入るDay9 までは、どの行を取るか(WHERE)どの順番で並べるか(ORDER BY)どれだけ取るか(LIMIT)をコントロ...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:検索力強化 - Day9 件数制御

Day9 前半「全部はいらない、そのうち何件かだけでいい」をSQLで言えるようにするDay8 までで、どの行を取るか(WHERE)どの順番で並べるか(ORDER BY)はコントロールできるようになりま...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:検索力強化 - Day8 並び替え

Day8 前半「どの順番で見るか」をコントロールできるようになる日Day7 までで、どの行を取るか(WHERE)どの列を見るか(SELECT)はコントロールできるようになりました。Day8 では、そこ...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:基礎理解 - Day7 総復習

Day7 前半「CRUD を一周させる」ことで“ただの知識”を“手応え”に変えるDay1〜Day6で、テーブルのイメージ、CREATE TABLE、INSERT、SELECT、WHERE、AND / ...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:基礎理解 - Day6 データ取得②

Day6 前半「条件を組み合わせる」と「ざっくり探す」を覚える日Day5 では、WHERE で「1つの条件」を使って絞り込むことをやりました。Day6 では、そこから一歩進んで条件を組み合わせる AN...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:基礎理解 - Day5 データ取得①

Day5 前半「入れたデータを、狙って取り出す」最初の一歩Day4 までで、テーブルを作り、INSERT でデータを入れられるようになりました。Day5 からはいよいよ、「欲しいデータだけを取り出す」...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:基礎理解 - Day4 データ登録

Day4 前半「行を1件、ちゃんとテーブルに入れる」感覚を身につけるDay3 までで、テーブルという「箱」を自分で設計して作れるようになりました。Day4 では、その箱の中に 実際のデータ(行)を入れ...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:基礎理解 - Day3 テーブル作成

Day3 前半「テーブルを作る」とは何をしているのかをちゃんと理解するDay1・Day2で、データベースのイメージと SQLite の動かし方はつかめてきました。Day3 ではいよいよ、SQL の中で...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:基礎理解 - Day2 SQLite環境

Day2 前半SQLite環境の全体像をつかむDay1 で「データベースとは何か」「テーブル・行・列とは何か」が見えてきました。Day2 ではいよいよ、実際に SQLite を「動かせる状態」にしてい...
SQLite

SQLite | ゼロからはじめるSQL、30日で習得するSQLite:基礎理解 - Day1 データベースの概念

Day1 前半 データベースのイメージを「ちゃんと」つくるプログラミング初心者が最初にやるべきことは、文法を覚えることではなく、「そもそもデータベースって何者なのか」を正しくイメージすることです。ここ...
SQL

SQL | SQLを学ぶなら何を選ぶべきか

SQLを学ぶなら何を選ぶべきか結論から言うと、「どの環境でSQLを使うか」によって最適な選択は変わります。SQL自体は共通ですが、データベース製品ごとに方言や機能差があるため、目的に合わせて選ぶ必要が...
スポンサーリンク