並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 1115件

新着順 人気順

sqlの検索結果1 - 40 件 / 1115件

  • 社内SQL研修のために作った資料を公開します | 株式会社AI Shift

    こんにちは、Development Teamの三宅です。 先日、社内(AI事業本部内)でSQL研修の講師を担当したので、今回はその内容について簡単に共有したいと思います。 はじめに 例年、AI事業本部では、新卒エンジニアの育成のためにソフトウェアエンジニア研修を行っております。今年はフルリモートでの実施となりました。研修期間は2週間ほどで、内容は前半が講義、後半が実践(チーム開発)でした。私が担当したのは、講義パートの一部であるSQL研修です。SQLやRDBにあまり慣れていない人でも、できるだけ体系的な学びが得られるようにすることを目標に、様々な資料をまとめて提供する方針で準備しました。結果的には、ハンズオン込みで4時間ほどのやや長い講義となりましたが、勉強になったという声も頂けたのでやって良かったと思っています。 研修資料 研修内容 SQL研修の内容は、基本的には大学のデータベース講義で

      社内SQL研修のために作った資料を公開します | 株式会社AI Shift
    • 【悲報】防衛省のワクチン予約システム 早速ネット民のおもちゃに「SQLインジェクションできる」「同じ番号入れるとその前の予約がキャンセル」【真偽不明】

      まとめ 岸防衛大臣「AERA・毎日新聞は極めて悪質な行為」ワクチン予約欠陥報道に大激怒! えーw具体策が「市区町村コードが真正な情報である事が確認できるようにする等」ってこのまま突っ走るつもりなんかw 15536 pv 167 14 users 27

        【悲報】防衛省のワクチン予約システム 早速ネット民のおもちゃに「SQLインジェクションできる」「同じ番号入れるとその前の予約がキャンセル」【真偽不明】
      • SQL記述者全員が理解すべきSELECT文の論理的な処理順序のお話 - Qiita

        2020/9/30追記 本記事は元々、「SQL記述者全員が理解すべきSELECT文の実行順序のお話」というタイトルで投稿しておりました。 しかし、知見のある方からのコメントと自分でも調べてみた結果、今回紹介している順序はあくまで論理的な処理順序であり、実行順序とは別物ということがわかりました。 誤った知識を布教してしまい申し訳ございません。 2020/9/30のタイミングで、本記事のタイトルを「SQL記述者全員が理解すべきSELECT文の論理的な処理順序のお話」に変更させていただきました。 はじめに 「SQLといえば、エンジニアが扱うスキル」と思われがちですが、最近はマーケターや営業など、非エンジニアの方もSQLを使って、自らデータを抽出し分析する方が増えてきています。 またエンジニアの方でも、ORM任せでなんとなく理解している状態の方もいるのではないでしょうか? 今回は、そんな方々にこそ

          SQL記述者全員が理解すべきSELECT文の論理的な処理順序のお話 - Qiita
        • アパレルで死ぬほどがんばって年収400万だった人がSQLとExcelと基本情報技術者試験で年収600万になった話

          (あんちべ! 俺がS式だ) @AntiBayesian 統計屋。 データ解析やDMP開発、データ解析組織作りなどご相談ください。 主著:「データ解析の実務プロセス入門(amzn.to/3vgVTmS)」 プロフィール:engineer-lab.findy-code.io/jobs-in-statis… (あんちべ! 俺がS式だ) @AntiBayesian 飲食やアパレルなど、市場の先行きも不安でこのままだとスキルも身に付かず…って将来不安視されてる方にプログラミングやシステム開発を学ぶのお勧めしてる。 人手不足のIT系に転職するのもありだし、ドメイン知識活かしてその市場の開発を担うことでハッピーになるケースあるので 2022-01-16 15:36:44 (あんちべ! 俺がS式だ) @AntiBayesian あとこう言う話すると必ず「IT系も闇が〜」と言われるけど、この先闇しかない市場

            アパレルで死ぬほどがんばって年収400万だった人がSQLとExcelと基本情報技術者試験で年収600万になった話
          • SQLの実行計画の読み方 |

            今回は、SQLを書く上で特にパフォーマンスに影響のあるSQLの実行計画の読み方について解説します。実行計画はデータベース製品によってさまざまに差異がありますが、ここでは比較的どのデータベース製品でも共通する内容について解説します。 実行計画とは記述したSQLが実際にデータベースの内部でどのように処理されて結果を返すか、その処理方法を記述した情報です。 A5:SQL Mk-2では、SQLエディタで実行計画を見たい SQL の上にキャレットがある状態でメニューから [SQL(S)] – [SQLの実行計画(J)] または、Ctrl+E で表示できます。 表示の仕方はデータベース製品ごとに異なりますが、多くのデータベース製品ではツリー状の情報として表現されます。(このため A5:SQL Mk-2でもツリービューで実行計画を表示します。) ツリーのリーフ(端)から処理が行われ、ルート(根)に向かっ

            • 『データ分析のためのSQL勉強会』資料公開|高橋 光 | 著書『データ分析力を高める ビジネスパーソンのためのSQL入門』

              この本では、無料で公開しているnoteの内容をさらに丁寧に分かりやすく、体系化させてアップデートした内容となっています。 noteの内容を立ち読みだと思ってもらい、より丁寧に学びたい場合は是非書籍を読んでもらえると嬉しいですmm これからSQLを学びたいと思っている方向けに作成したSQL勉強会の資料を公開します!(以下の方向けの勉強会資料です) SQLをこれから学びたい人 仕事でSQLを触り始めたけどイマイチよくわからない人 データ集計やデータ分析をエクセル使ってやってる人 資料こちらから最新の資料をダウンロードして下さい。 (※「Source code (zip)」からダウンロードして下さい) 資料の構成は以下の通りです。 docs PDF資料 演習問題など含めて全部で約200ページくらいあります data ハンズオン用テストデータ csvファイル3つ script ハンズオン用テストデ

                『データ分析のためのSQL勉強会』資料公開|高橋 光 | 著書『データ分析力を高める ビジネスパーソンのためのSQL入門』
              • メタップス、不正アクセスやられ放題 最大46万件のカード番号やセキュリティコード流出か バックドアやSQLインジェクションの痕跡見つかる

                クレジットカード決済基盤を提供するメタップスペイメント(東京都港区)は2月28日、同社のデータベースから最大で46万件のクレジットカード番号、有効期限、セキュリティコードなどが流出したと発表した。サーバへの不正ログイン、SQLインジェクション、バックドアの設置などさまざまな攻撃を受けていたことが調査で分かった。 流出した恐れがあるのは2021年8月2日から22年1月25日までに決済で使われたクレジットカードの番号、有効期限、セキュリティコードなど46万395件、21年5月6日から22年1月25日までに実行された決済情報593件、加盟店情報38件。「実際に流出した情報を特定できない」(メタップスペイメント)ため、数値は考えられる最大値という。 同社は21年12月14日に、サービスの提携先からクレジットカードの不正利用が懸念されているとの連絡を受け調査を開始。22年1月中に、外部からデータベー

                  メタップス、不正アクセスやられ放題 最大46万件のカード番号やセキュリティコード流出か バックドアやSQLインジェクションの痕跡見つかる
                • データ分析のためのSQLを書けるようになるために

                  はじめに 本稿では分析用クエリをスラスラ書けるようになるまでの勉強方法や書き方のコツをまとめてみました。具体的には、自分がクエリを書けるようになるまでに利用した教材と、普段クエリを書く際に意識していることを言語化しています。 想定読者として、SQLをガンガン書く予定の新卒のデータアナリスト/データサイエンティストを想定しています。 勉強方法 基礎の基礎をサッと座学で勉強してから、実践教材で実際にクエリを書くのが望ましいです。 実務で使える分析クエリを書けるようになるためには、実務経験を積むのが一番良いですが、だからといって座学を御座なりにして良いというわけではありません。SQLに自信がない人は、一度基礎に立ち返って文法の理解度を確認した方が良いと思います。 書籍 SQL 第2版: ゼロからはじめるデータベース操作 前提として、SQLに関する書籍の多くがデータベース運用/構築に関する書籍がほ

                    データ分析のためのSQLを書けるようになるために
                  • ポケモンを題材に「SQLアンチパターン」を実践してみる - kanayamaのブログ

                    @tkanayama_です。「SQLアンチパターン *1」 という本を読みました。「ポケモンを題材に因果推論を実践してみる」のように、仮想的なストーリ上で実際に使ってみた感を出すことにより、自分の記憶に定着させることを狙います。 前提として、何をアンチパターンとするかは状況(ベンダーフリーである必要があるかどうか、どの程度の頻度で更新されるか・・・など)によって大きく異なるので、下記で紹介するアンチパターンは実は状況によっては問題にならないケースもあるかと思います。この投稿はあくまで「SQLアンチパターン」に忠実に従うことが目的です。 www.oreilly.co.jp 追記 登場人物 ストーリー フシギダネへの対応 ヤミカラスへの対応 ディグダへの対応 誤登録でポケモントレーナーになってしまったユーザーの削除 最後に 謝辞 追記 このブログを公開後、「外部キー制約はレコードロック周りのト

                      ポケモンを題材に「SQLアンチパターン」を実践してみる - kanayamaのブログ
                    • SQLを速くするぞ―お手軽パフォーマンス・チューニング

                      このサイトでは、SQL を高速化するためのちょっとしたパフォーマンス・チューニングの技術を紹介します。と言っても、『プログラマのためのSQL 第2版』の受け売りがほとんどなので、この本を読んでいただければ、本稿を読む必要はありません。 最初に、パフォーマンス・チューニングに関する全体の方針を述べておくと、それはボトルネック(一番遅いところ)を改善することです。当たり前ですが、既に十分速い処理をもっと速くしたところで、システム全体のパフォーマンスには影響しません。従って「処理が遅い」と感じたら、最初にすることは、SQL やアプリの改修ではなく、「どこが遅いのか」を調査することです。いきなりあてずっぽうで改善をはじめても効果は出ません。医者が患者を診るとき最初にすることが検査であるのと同じです。病因が何であるかを突き止めてからでないと、正しい処方はできないのです。 その基本を承知していただいた

                      • Google、ORMが生成するSQLが遅いときの調査を容易にする「sqlcommenter」をオープンソースで公開。Rails、Spring、Djangoなど主要なフレームワークに対応

                        Google、ORMが生成するSQLが遅いときの調査を容易にする「sqlcommenter」をオープンソースで公開。Rails、Spring、Djangoなど主要なフレームワークに対応 SQL文を直接書かなくとも、自動的にSQL文を生成、実行してくれるORM(Object-Relational Mapper)は、プログラミングを容易にしてくれる技術としてRailsやHibernate、Springなどさまざまなフレームワークなどで活用されています。 一方で、ORMが生成するSQL文はときに複雑に、あるいは非効率なものとなり、データベース処理の遅さにつながることもあります。 このとき、SQL文の生成と実行を明示的にコードとして記述する必要がないというORMの特徴が、なぜデータベース処理が遅くなったのか、どのようなSQL文が生成され、そのどこに原因があるのか、といった調査を難しくている面があり

                          Google、ORMが生成するSQLが遅いときの調査を容易にする「sqlcommenter」をオープンソースで公開。Rails、Spring、Djangoなど主要なフレームワークに対応
                        • 実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial

                          - PostgreSQLカンファレンス 2021 - チュートリアル - https://www.postgresql.jp/jpug-pgcon2021 - 詳細はこちら https://github.com/soudai/pgcon21j-tutorial

                            実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
                          • SQLをはじめよう - 初心者でもわかる、構文とデータ取得の基本 - エンジニアHub|Webエンジニアのキャリアを考える!

                            SQLをはじめよう - 初心者でもわかる、構文とデータ取得の基本 リレーショナルデータベース管理システム(RDBMS)において、データの操作や定義を行うためのデータベース言語であるSQL。“データ”の重要性が謳われるようになった昨今において、この言語はより重要性を増しています。本稿では日本MySQLユーザ会の副代表であり、データベースを中心とした業務システムの設計・コンサルティングを手掛ける坂井恵さんが、「SQLを学びはじめたばかりの若手IT技術者」や「社内のデータを利用したい非IT技術者」に向けて、SQLによるデータ操作の基礎を解説します。 企業活動において、近年ますます、蓄積されたデータの活用が重要になっています。自社の持つ大量のデータの中から必要なデータを抽出・集計するという操作は、以前はITエンジニアが用意した画面を通して限定的にのみ行うことができるのが一般的でした。 しかし最近は

                              SQLをはじめよう - 初心者でもわかる、構文とデータ取得の基本 - エンジニアHub|Webエンジニアのキャリアを考える!
                            • 無料で学ぶ『達人に学ぶSQL徹底指南書 第1版』 - Qiita

                              はじめに 『達人に学ぶSQL徹底指南書 第1版』は、CodeZine連載とミック氏ウェブサイトの掲載記事をもとに、加筆・編集されたものです。 CodeZine連載、および、ミック氏ウェブサイトは、どちらもオンラインの無料公開コンテンツです。 今回、「書籍と元コンテンツの対応表」を作成しました。 書籍のために書き下ろされた一部コンテンツや演習問題は見れませんが、その一方、編集で割愛された内容などが含まれるので、書籍以上のことを学べる箇所もあります。 すでに新版『達人に学ぶSQL徹底指南書 第2版』が出ていますが、各テーマは第1版でも大きく変わっておらず、現在でも通用する基本的で面白い内容なので、一見の価値はあると思います。 書籍と元コンテンツの対応表 No. 目次 CodeZine連載 ミック氏ウェブサイト テーブル定義 サポートページ

                                無料で学ぶ『達人に学ぶSQL徹底指南書 第1版』 - Qiita
                              • SQLが重いときに見るお気軽チューニング方法

                                SQLのチューニング方法 昔Qiitaで書いたものをzennにうつして、若干の修正、追加をしてみました。 ORACLEでの経験を元に書いていますがコストベースのリレーショナルデータべースなら大体共通の考え方だと思うので他にも使えると思います。 SQLのチューニングといえば比較的容易に済むインデックスをとりあえず作成する。といった対応を取られがちですが、数万レコード程度でのデータ量ではあまり効き目がなく(自分の経験則)、どちらかといえば、結合順が大幅に狂ってたりすることが原因のことが多かったりします。よって本当にインデックスがないことが原因なのか?を熟考する必要があります。(例えばID以外のフラグとかコードに単項目indexを貼ってるのもみたことがあります。怖いけど実話) また、インデックスを作りすぎるとオプティマイザが狂いやすくなって他のSQLにも悪影響を及ぼしたりするので結構熟慮して追加

                                  SQLが重いときに見るお気軽チューニング方法
                                • SQLアンチパターンもりもりDBを設計しよう! - Qiita

                                  概要 名著SQLアンチパターンを読み終えたので、それの復習のために悍ましいデータベースを作ろうと思った。 まず前半では、SQLアンチパターンを意図的に盛り込み、目も当てられない酷い設計をします。 そのあとリファクタリングを行なったER図に書き直していきます。 なお、真面目に書くと参考書の丸写しになってしまうので、この記事は アンチパターンもりもりのER図を見て嫌悪感を学習し、設計に役立てようという趣向のもと、詳しい説明は省きます。 とても良い本なので読んでください。 想定するシステムの概要と状況 目的において適切かはわかりませんが、とりあえず考えることの多い”お金”を扱うシステムを想定してみます。 私はブラックジョークが好きなので、今回は「ちょっと怖い金融屋さんが使う債務者管理システム」のER図を設計してみようと思います。 ざっくりした要件 債務者を登録でき、プロフィールを入力できる。 債

                                    SQLアンチパターンもりもりDBを設計しよう! - Qiita
                                  • SQLインジェクション対策不備の責任 東京地判平30.10.26(平29ワ40110) - IT・システム判例メモ

                                    SQLインジェクション対策をしていなかったことについて開発会社の責任が問われた事例。 事案の概要 Xは,Yに対し,Xの提供する車・バイクの一括査定システム(本件システム)の開発を約320万円で委託し,平成24年9月に納品を受けた。 その後Xは,平成28年12月に,IPA*1から,中国のサイトに本件システムの脆弱性に関する情報が掲載されているという指摘を受けて,Yに対し,その調査と報告を依頼した。 その結果,本件システムには,SQLインジェクション対策が不十分という脆弱性が判明したことから,XはYに対し,その脆弱性はYの被用者の故意過失によって生じたものであるから,使用者であるYには使用者責任があると主張して,民法715条1項所定の損害賠償請求権に基づき,緊急対策費用47万5200円,詳細な調査,抜本的な修正費用640万円,サーバー移転費用35万6400円,セキュリティ対策のための本件システ

                                      SQLインジェクション対策不備の責任 東京地判平30.10.26(平29ワ40110) - IT・システム判例メモ
                                    • あなたの遅延はどこから? SQLから! 〜患部に止まってすぐ効くSQLレビューチェックリスト 年初め特大サービス号〜 - ANDPAD Tech Blog

                                      あけましておめでとうございます! 今年は異世界放浪メシのアニメが放送されるらしいので楽しみなバックエンドの原田 (tomtwinkle)です。 内部で運用しているSQLレビューチェックリストの一部を抽出し思いつきで追記して行った結果、結構な分量になってしまいました。 暇な時でも流し読みして頂けるとありがたいです。 Motivation SQLレビュー観点 大きくSQLが変更される修正の際にはEXPLAINをレビュー内容に加える 検索のキーにINDEXを使用しているか SQL発行回数がN+1(1+N)の構造になっていないか サブクエリを利用したSQLはパフォーマンス要チェック Viewの利用は基本的に禁止 CROSS JOINは禁止 WHERE句で十分に絞った検索をしているか 必要なcolumnだけSELECTしているか レコード数だけ必要な場合にCOUNT用のSQLを発行しているか 集計関

                                        あなたの遅延はどこから? SQLから! 〜患部に止まってすぐ効くSQLレビューチェックリスト 年初め特大サービス号〜 - ANDPAD Tech Blog
                                      • Node.jsのMySQLパッケージにおけるエスケープ処理だけでは防げない「隠れた」SQLインジェクション - Flatt Security Blog

                                        ※本記事は筆者styprが英語で執筆した記事を株式会社Flatt Security社内で日本語に翻訳したものになります。 TL;DR Node.jsのエコシステムで最も人気のあるMySQLパッケージの一つである mysqljs/mysql (https://github.com/mysqljs/mysql)において、クエリのエスケープ関数の予期せぬ動作がSQLインジェクションを引き起こす可能性があることが判明しました。 通常、クエリのエスケープ関数やプレースホルダはSQLインジェクションを防ぐことが知られています。しかし、mysqljs/mysql は、値の種類によってエスケープ方法が異なることが知られており、攻撃者が異なる値の種類でパラメータを渡すと、最終的に予期せぬ動作を引き起こす可能性があります。予期せぬ動作とは、バグのような動作やSQLインジェクションなどです。 ほぼすべてのオンラ

                                          Node.jsのMySQLパッケージにおけるエスケープ処理だけでは防げない「隠れた」SQLインジェクション - Flatt Security Blog
                                        • AWS、SQL互換の新問い合わせ言語「PartiQL」をオープンソースで公開。RDB、KVS、JSON、CSVなどをまとめて検索可能

                                          Amazon Web Services(以下AWS)は、SQL互換の新しい問い合わせ言語およびそのリファレンス実装である「PartiQL」をオープンソースとして公開したことを発表しました。 PartiQLはSQL互換の構文に最小限の拡張を施すことで、リレーショナル形式のデータベースだけでなく、KVSやJSONなどを含むNoSQLデータベースやCSVファイルなど、さまざまなデータソースに対して横断的に検索できる問い合わせ言語およびそのリファレンス実装です。 下記はPartiQLを発表したブログからの引用です。 Today we are happy to announce PartiQL, a SQL-compatible query language that makes it easy to efficiently query data, regardless of where or in

                                            AWS、SQL互換の新問い合わせ言語「PartiQL」をオープンソースで公開。RDB、KVS、JSON、CSVなどをまとめて検索可能
                                          • 非エンジニアのSQL学習ことはじめ 〜1日1時間・3か月でSQLがそこそこできるようになる勉強方法とおすすめ書籍〜

                                            これは何「来年こそはSQL書けるようになるぞ」と思ってる方に向けた、1日1時間・3か月でSQLそこそこできるようになる学習方法について書いた記事です長文がつらつら書いてある本稿ですが、要するに言いたいことは

                                              非エンジニアのSQL学習ことはじめ 〜1日1時間・3か月でSQLがそこそこできるようになる勉強方法とおすすめ書籍〜
                                            • SQL学習モチベを爆上げする「SQLテスト制度」を導入している話 - AppBrew Tech Blog

                                              こんにちは、最近はアプリグロースを担当しているabeshi(@abeshi_official)です。 美容のプラットフォーム「LIPS」を運営するAppBrewでは非開発職のSQL習得に力を入れています。誰でもRe:dashやログを触れる状態になっているし、それぞれのDBに何がどう入っているかを共有するためのドキュメントも存在しています。 「非開発職もSQL書けるように頑張ろう!」と掲げたところで、当の本人たちは毎日仕事が忙しくなかなか時間も取れない上に明確な目標がないといまいち学習モチベーションを保つことができません。そこで弊社が導入したのが「SQLテスト制度」です。 ✍️SQLテスト制度とは SQLの学習到達度によってレベルごとに分けたテストで、合格すると給与が上がります。 *1現在は二つレベルが存在していて、 【レベル2】... 初学者向けでwhere・joinなど基本的な文法が使え

                                                SQL学習モチベを爆上げする「SQLテスト制度」を導入している話 - AppBrew Tech Blog
                                              • すべてのエディタでSQLの自動補完をするためにSQL Language Server(sqls)を作った - Qiita

                                                sqlsとは sqlsとは、いま私が開発中のSQL用Language Serverです。SQLをエディタで編集するときの支援機能を実装したサーバとなっており、主な特徴は以下です。 Language ServerなのでLSクライアントが存在するエディタであればどんなエディタでも利用可能 SQL編集支援機能 自動補完(テーブル名、カラム名など) 定義参照 SQL実行 複数のRDSMSに対応 MySQL PostgreSQL SQLite3 Language Serverとは Language Server(あるいはLanguage Server Protocol)とは、プログラム言語の開発支援機能をエディタに提供するサーバ、およびその通信内容を規定したプロトコルです。ただしサーバといってもほとんどの場合ローカル内にホスティングしてローカルのエディタと通信をします。 ここでは主題ではないので詳し

                                                  すべてのエディタでSQLの自動補完をするためにSQL Language Server(sqls)を作った - Qiita
                                                • SQL学習オンラインサービス「Start-SQL」をリリースしました - GoTheDistance

                                                  こんな感じで、ブラウザでSQLを書いて環境構築一切不要でSQLを学べるというWebサービスです。 今北産業 SQL言語のみをサポートしています。 環境構築一切不要で、無料でお試し出来ます。 コンテンツには無料と有料の2つがあり、有料版は”買い切り”で、5000円です。全てのコンテンツがお楽しみ頂けます。 圧倒的にアカウントを買うニーズが強かった 2019年8月頃に「研修サービスのプラットフォームとして」告知をしたのですが、結論から言うと「講師や研修は別にいらん、アカウントだけ売ってくれ」が個人 / 法人共に、圧倒的に多かったため、会員登録/ログイン/マイページ/コンテンツ購入/パスワードリマインダなどの機能を別途付与して、Webサービスとしてリリースしました。 買い切りにした理由 コンテンツを定期的に追加する予定が全く無いためです。月額制にするならほっといてもコンテンツが増えていかねばなり

                                                    SQL学習オンラインサービス「Start-SQL」をリリースしました - GoTheDistance
                                                  • SQLの達人への道: MySQLでの高速・効率的クエリ作成術 - Qiita

                                                    データベースとテーブルの作成 テスト用のデータベースtestdbを作成し、パフォーマンスチューニングを検証するためのcompanyおよびpersonテーブルを定義します。 CREATE DATABASE testdb; USE testdb; CREATE TABLE company ( company_id INT AUTO_INCREMENT PRIMARY KEY, company_name VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE person ( person_id INT AUTO_INCREMENT PRIMARY KEY, company_id INT, person_name VARCHAR(255) NOT NULL, email VARCH

                                                      SQLの達人への道: MySQLでの高速・効率的クエリ作成術 - Qiita
                                                    • 100秒でMySQLのローカル環境をDockerで作って、データも自動で入れる。最強のSQL練習環境構築法

                                                      【2022/2/26 追記】 主にはてブコメントで様々なご指摘を頂いたので、タイトルの修正&内容を一部追記しました。分かりにくいタイトルを付けてしまい申し訳ございません。ご指摘ありがとうございます。 もともと本記事は自分用のメモを兼ねて駆け出しエンジニアの人が数人参考にしてくれたらいいかな、程度の気持ちで書いたものでした。 現在はてなブックマークのテクノロジーカテゴリーで 1 位になっており、予想の 1000 倍以上の人に見ていただける記事になってしまいました。 今後も精進します、ありがとうございます! 特に理由もなくローカルに MySQL を入れて遊びたくなる気持ちって定期的に湧きますよね。 私は湧きます、半年に 1 回ぐらい。 業務ではフロントを触ることが多く、DB はそれほど触りません。 そのため久々に MySQL をローカルで立ち上げようとするといつも手順を忘れてしまっていて、なん

                                                        100秒でMySQLのローカル環境をDockerで作って、データも自動で入れる。最強のSQL練習環境構築法
                                                      • パスワードがハッシュ値で保存されているサイトのSQLインジェクションによる認証回避の練習問題 - Qiita

                                                        SQLインジェクションによる認証回避 SQLインジェクションによる影響として、情報が漏洩するとか、データが勝手に更新されてしまうなどとともに、認証回避の例がよく紹介されます(私の本でも取り上げています)。 典型的な例は下記のとおりです。 // $id と $password は外部からの入力 $sql = "SELECT * FROM users WHERE id='$id' AND password='$password'";

                                                          パスワードがハッシュ値で保存されているサイトのSQLインジェクションによる認証回避の練習問題 - Qiita
                                                        • SQL Chat

                                                          Chat-based SQL Client and Editor for the next decade

                                                          • リーダブルSQL[より良いSQLを書くためのシンプルで実践的なテクニック] - Qiita

                                                            はじめに 最近エンジニア界隈では「リーダブルコード」が話題なっていますね。 リーダブルコードでは、このような定理が紹介されています。 「コードは他の人が最短時間で理解できるように書かなければいけない。」 Dustin Boswell リーダブルコード P.3 より引用 SQLでも同じことが言えそうです。 リーダブルなSQLを書いてないと結婚できない時代が今まさに到来しようとしています。 皆さん、クソSQL1を読んだことがありますね? クソSQLを書いたことがありますね? 僕は、あります。 そこで、本記事ではどうしたらリーダブルなSQLが書けるかというアイデアを紹介します。 処理の流れの順に上から読めるようにする 人間のメンタルモデルは、問題やタスクを小さなステップに分割し、それぞれを順番に実行することに適しています。 サブクエリを使ったSQLでは、処理の流れは上から下ではなく、ネストされた

                                                              リーダブルSQL[より良いSQLを書くためのシンプルで実践的なテクニック] - Qiita
                                                            • 業務でどれだけSQL力がつくのか ~SQLアンチパターンを用いて確認~ 前編

                                                              はじめに こんにちは。 GMOアドマーケティングのKONCEです。 新卒で入社し、数年経ちました。日々の業務で学ぶことは多いですが、今年度は技術の深堀りをテーマにやっていきたいと思っています。 今回は入社してDBやSQLに関しては業務内で学ぶことが多く、特別訓練をしていたわけではなかったのですが、「SQLアンチパターン」を用いて学びながら、改めて自分の現状を見つめ直していけたらと思います。 今回は学習を行う側面と自分自身のレベルについて見直していきたいので 知っていた → ○ 部分的に知っていた → △ 知らなかった → × を付けてみようと思います。 目次 SQLアンチパターンについて Ⅰ部 データベース論理設計のアンチパターン 2-1. [○]1章 ジェイウォーク(信号無視) 2-2. [×]2章 ナイーブツリー(素朴な木) 2-3. [○]3章 IDリクワイアド(とりあえずID) 2

                                                                業務でどれだけSQL力がつくのか ~SQLアンチパターンを用いて確認~ 前編
                                                              • 「分析SQLスタイルガイド」をかなり真面目に考えた - Qiita

                                                                目次 なぜSQLのスタイルガイドが重要なのか この記事の目的 この記事の対象者 分析SQLスタイルガイドの指針 基本ルール 命名規則 インデントルール 別名ルール joinルール クエリ分割ルール ⭐ コメント欄で「いや私はこう思う!」という意見をたくさんいただきました!ぜひそちらも御覧ください!(決して揶揄ではないです) なぜSQLのスタイルガイドが重要なのか SQLはプログラミング未経験者でもとっつきやすい言語と言われ、エンジニアや分析を本業としていない人でもSQLを使う機会が増えてきていると思います。 そんなSQLですが、こちらのブログでも指摘されている通り、一般的なスタイルガイドが定まっていません。スタイルガイドとはコードの書き方マナーようなもので、どこで改行するか、空白はいくつ入れるか、大文字を使うかなどの諸々を指します。 もしスタイルガイドが無いとこんな事が起こります コードに

                                                                  「分析SQLスタイルガイド」をかなり真面目に考えた - Qiita
                                                                • SQLわかんねーーーーーーーー!!!!!!

                                                                  学生時代に独学でVBAやってたのが零細企業でなぜか評価されてDB管理をやらされかけてるけど SQLマジでわかんねーーーーーーーーーーー!!! なんだこれーーーーーーーーーーーーー!! ああああああああああああああ!!!! わかんねーーーーーー!!!!

                                                                    SQLわかんねーーーーーーーー!!!!!!
                                                                  • 「雑用扱いで名前もない」 データ分析の土台を支える“SQLを叩く人”の重要性を問い直す

                                                                    「雑用扱いで名前もない」 データ分析の土台を支える“SQLを叩く人”の重要性を問い直す:これからのAIの話をしよう(データ整備人編)(1/3 ページ) データ分析をする上で欠かせない「データ整備人」とは、どんな役割を担う人なのか。ないがしろにされがちなデータ整備人の仕事について、データ分析の専門家が解説します。 多くの企業がデータの分析・活用に取り組んでいますが、その中で抜け落ちがちなのが、データ整備の視点です。データベースからデータを抽出・集計して分析者に渡す作業は地味に見えますが、データ分析の土台を支える極めて重要な仕事です。 この役割は、戦争でいうところの「兵站」(へいたん)に当たるほど重要なのではないか――データ分析に関する情報発信を続けるしんゆうさんが、自身のブログでこう問いかけた所、予想以上の反響があったといいます。 ※兵站:戦場で、前線の部隊のために軍需品や食料などの供給・補

                                                                      「雑用扱いで名前もない」 データ分析の土台を支える“SQLを叩く人”の重要性を問い直す
                                                                    • 高効率なSQLクエリの書き方 - Qiita

                                                                      概要 この記事では、SQLクエリをより効率的に記述するためのベストプラクティスとテクニックに焦点を当てています。データベースのクエリはシステム全体のパフォーマンスに直結するため、最適な書き方を知ることは重要です。インデックスの効果的な活用方法、適切な結合の選択、そして条件の効果的な書き方など、SQLの最適化に関する具体的な手法を解説します。各SQL文に関する実行計画の結果も掲載していますので、ぜひご確認ください。 なお、Oracle19cとOracle12cでの利用実績がありますが、他のデータベースやバージョンにおいての検証は行っておりません。 新しい情報は随時追加されますので、お楽しみにしてください。 SQLの最適化に関連する基本的なアイデア 以下の通りと考えています。 1.インデックスの利用 2.正しいJOINの選択 INNER JOIN、LEFT JOIN、RIGHT JOINなど、

                                                                        高効率なSQLクエリの書き方 - Qiita
                                                                      • SQL滅ぶべし | ドクセル

                                                                        SQL • リレーショナルデータベースシステムと会話するための言語 • 1970年 Codd が RDB モデルと同時に提案 (Alpha言語) • 1974年 Chamberlin と Boyce が改良 • 元々は SEQUEL (Structured English Query Language) だったが、商標登録されていた • 読み方は エスキューエル とそのまま読む (Glliespie 2012)

                                                                          SQL滅ぶべし | ドクセル
                                                                        • 次世代SQLクライアントArctypeを触ってみる

                                                                          どうも、株式会社プラハCEOの松原です 先日社内のエンジニアに「このSQLクライアントがイケてそう!」と教わったので早速Arctypeを触ってみました TL;DR クエリの補完が最高 チャートやダッシュボードを通して簡単に可視化できる 操作性に優れていて、見た目が綺麗 クエリやダッシュボードごとに権限管理できる プレースホルダーを使えば非開発者ともクエリを共有しやすい 説明しよう、Arctypeとは なんかイケてるSQLクライアントです セットアップ それぐらいしか分からないので、ひとまずDBを立ち上げて実際に使ってみようと思います。こちらのmysql-employeesを使わせていただきましょう docker run -d \ --name mysql-employees \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=college \ -v $PWD/

                                                                            次世代SQLクライアントArctypeを触ってみる
                                                                          • ワンランク上のSQLを書くためのポイント3つ - Qiita

                                                                            この記事はNuco Advent Calendar 2022の17日目の記事です。 ワンランク上のSQLとは? 1年近く、データ分析に関わる業務に携わっってきた中で、良いSQL、いまいちなSQLをいろいろ見てきました。 自分が書くSQLも、最初の頃は目も当てられないSQLも書いてきました。そんな中で、こんなことを意識していくと、より良いSQLになるのでは?というポイントをまとめていきます。 とりあえずSQLの文法は一通り勉強して、取得したいデータをとってくるSQLをかけるようになったぞ。という人に向けたものなので、本当に基礎的な文法は解説していません。 ワンランク上のSQLを書くためのポイントは、 ・読みやすい ・再利用しやすい ・処理が早い の3つを押さえられているかどうかだと感じています。 可読性が高いメリット 間違いにくくなる/デバックが容易になる エラーが出てくれれば間違っているこ

                                                                              ワンランク上のSQLを書くためのポイント3つ - Qiita
                                                                            • データベース研修(SQL基礎編)【ミクシィ22新卒技術研修】

                                                                              22新卒技術研修で実施したデータベース研修(SQL演習編)の講義資料です。 動画:https://youtu.be/dseGQ2MZF1U 演習用Colab Notebook https://colab.research.google.com/github/mixigroup/2022BeginnerTrainingDataBasePublic/blob/master/22db_sql.ipynb データベース基礎編 https://speakerdeck.com/mixi_engineers/2022-database-training

                                                                                データベース研修(SQL基礎編)【ミクシィ22新卒技術研修】
                                                                              • 1文字でSQLを200倍遅くする方法

                                                                                こんにちは、19のSysAd班の翠(sappi_red)です。普段はtraQのフロントエンドの保守を行ったりしています。 こんばんは、19のSysAd班のtemmaです。普段は普段どおりのことをしています。この記事の面白い部分はすべて僕が書いています。面白くないところは翠君が書いています。 この記事では、日々パフォーマンスに頭を悩ませる開発者の方のために、ワンタッチで劇遅SQLを200倍高速でキュートなSQLに劇的ビフォーアフターする方法を紹介します。 「おいおいおい、遅くしたくて記事を読み始めたのに話が違うじゃないか💢」と思ってるそこのあなた👈 早くできるということは遅くもできるんですね。 TL;DR ここにテーブルがあります。 CREATE TABLE messages ( id CHAR(36) NOT NULL PRIMARY KEY, text TEXT COLLATE ut

                                                                                  1文字でSQLを200倍遅くする方法
                                                                                • SQLアンチパターン簡単まとめ

                                                                                  「SQLアンチパターン」について、自分の勉強がてら内容を簡単にまとめました。 「とりあえずSQLは触れてWebアプリが作れる」「シンプルなアプリを実務で作ったことがある」くらいの人が読むととても勉強になると思います。 また、「現場での良くない設計」が詳細に言語化されているので、経験豊富な人でも新たな発見があると思います。 詳しく知りたい方は是非本を買って実際に読んでみて欲しいです。 第一章 ジェイウォーク パターン 1カラムにコンマ区切りで値を入れて複数の紐付きを表現しようとする なぜダメか 検索しづらい 文字列カラムの文字数制限という暗黙の制約を受ける バリデーションかけられない 解決策 交差テーブルの作成 第二章 ナイーブツリー パターン 木構造を表現するとき、常に親のみに依存する(parent_idだけ持ってしまう) 隣接リスト なぜダメか 階層を深く掘ろうとするとそのぶんSQLをか

                                                                                    SQLアンチパターン簡単まとめ