タグ

sqlに関するakishin999のブックマーク (325)

  • プロ御用達の無償SQLクライアント「A5:SQL Mk-2」も生成AI対応、ベータテストが開始/OpenAIの「ChatGPT」とGoogleの「Gemini」が利用可能、割と実用的【やじうまの杜】

    プロ御用達の無償SQLクライアント「A5:SQL Mk-2」も生成AI対応、ベータテストが開始/OpenAIの「ChatGPT」とGoogleの「Gemini」が利用可能、割と実用的【やじうまの杜】
  • SQLのORDER BY 列番号と式 :: Noboru Saito's page

    きっかけtom__boさんが書かれた8.0.22でのprepared statementの挙動変化 で、ORDER BY に列番号を指定する問題に注目が集まりました。 その中で紹介されていた、 For a prepared statement of the form SELECT expr1, expr2, … FROM table ORDER BY ?, passing an integer value N for the parameter no longer causes ordering of the results by the Nth expression in the select list; the results are no longer ordered, as is expected with ORDER BY constant. 「the results are n

    SQLのORDER BY 列番号と式 :: Noboru Saito's page
  • timestamp with time zone型はタイムゾーン情報を持っていない - Qiita

    絶対時刻と概念時刻 2015年1月1日00:00:00 という時刻表記は、地球上のどこで読んだかによって意味が変わってしまいます。このような時刻のことを 概念時刻 と呼ぶことにしましょう。ボジョレー・ヌーボーの解禁時刻、11月第3木曜日00:00:00も概念時刻だからこそ世界各地で解禁時刻が違い、バブル期は日が世界で最初に解禁されるって盛り上がったものです。 2015年1月1日00:00:00(日時間)、これなら 絶対時刻 です。世界のどこで読もうと、ある一瞬を意味します。これは2014年12月31日15:00:00(グリニッジ時間)と同じ瞬間を表しており、前者と後者は同じ瞬間の別表記に過ぎません。 OracleおよびPostgreSQLのtimestamp with time zone型が格納する値はその名前に反し、絶対時刻です。 タイムゾーン情報はまったく含まれていません。 具体的

    timestamp with time zone型はタイムゾーン情報を持っていない - Qiita
  • 後悔しない日付時刻・タイムゾーン設計と Laravel での実践法

    はじめに 最近 𝕏 で, Goプロジェクトで起こっていたタイムゾーンに起因するトラブルをきっかけとして話を広げていったポストがありましたが,そのとき意外と反響がありました。 その一方で,時間をかけて設計された社内の PHP プロジェクトでは比較的トラブル少なく解決できているので,その知見を共有していこうと思います。 (将来的には Goプロジェクトにも知見を応用できればいいなと考えています) データベースについて RDBMS の選定 さて,まず Laravel にフォーカスした話をする前に,データベース上での日付時刻のデータ型の選び方というアプローチからこの記事を書こうと思ったのですが,さらにその前に使用する RDBMS を決めなければなりませんね。 MySQL か Postgres を選ぶ状況が多いと思うので,この 2 つに絞って回答します。 Postgres を使ってください。

    後悔しない日付時刻・タイムゾーン設計と Laravel での実践法
  • 存在するはなぜ二階の述語なのか|ミック

    拙著『達人に学ぶ SQL徹底指南書』の中で、EXISTS述語の使い方を解説している章があるのだが、そこでEXISTS述語だけが唯一SQLの中で二階の述語である、ということを説明している。これはEXISTS述語だけが行の集合を引数にとる述語だからである。それは分かるのだが、なぜ述語論理を考えた人(具体的にはゴットロープ・フレーゲ。タイトル画像のおじさんである)はこんな着想を得たのか、そこが分かりにくいという質問をしばしば受けることがある。確かに、数ある述語の中でなぜ「存在する」だけが二階の述語であるのか、というは直観的にすこし分かりにくい。なぜフレーゲはこんなことを考えたのだろう? この点について、述語論理の創始者でもあるフレーゲの議論を参照しながらかみ砕いて見ていきたいと思う。かなり理論的かつ哲学的な話になるので、興味ない方は読み飛ばしてもらってかまわない。とくにSQLの理解に支障のある話

    存在するはなぜ二階の述語なのか|ミック
  • SQLは滅ぶべきか|ミック

    でかい釣り針が来たので釣られてみる。とりあえず以下の資料を読んでいただきたい。そんなに長くないのでサクッと読める。 SQLの記述順序と思考の順序が違うので書きにくいし、エディタの補完機能の恩恵が受けられないのが嫌だ、という意見はもう大昔からある。何度も何度も何度も繰り返されてきた議論である。以下の2011年のスレッドでも「SQLはFROM句が最初に来るべきではないか?」という問いが提起されている。すぐに出てこないが、筆者はこれより古い文書も見た記憶がある。

    SQLは滅ぶべきか|ミック
  • 「SQL」の読み方論争に決着? 「しーくぇる」vs「えすきゅーえる」にPostgreSQLがケリ/冠詞にはくれぐれも注意【やじうまの杜】

    「SQL」の読み方論争に決着? 「しーくぇる」vs「えすきゅーえる」にPostgreSQLがケリ/冠詞にはくれぐれも注意【やじうまの杜】
  • データ分析のためのSQLを書けるようになるために

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

    データ分析のためのSQLを書けるようになるために
  • activerecord-originator をリリースしました - pockestrap

    こんにちは。 id:Pocke です。 今日は activerecord-originator という gem を作ったので紹介します。 github.com なにこれ Active Record が発行するSQLの各部分に、それがどこで作られたものかをコメントとして入れ込む gem です。 理解するには実例を見るのが早いでしょう。次のログはArticlesController#indexで実行されるクエリの例です。 Article Load (0.1ms) SELECT "articles".* FROM "articles" WHERE "articles"."status" = ? /* app/models/article.rb:3:in `published' */ AND "articles"."category_id" = ? /* app/controllers/artic

    activerecord-originator をリリースしました - pockestrap
  • リレーショナル・データベースの世界

    序文 私の仕事は、DBエンジニアです。といっても別に望んでデータベースの世界へきたわけではなく、当初、私はこの分野が面白くありませんでした。「Web系は花形、データベースは日陰」という言葉も囁かれていました。今でも囁かれているかもしれません。 ですが、しばらくデータベースを触っているうちに、私はこの世界にとても興味深いテーマが多くあることを知りました。なぜもっと早く気づかなかったのか、後悔することしきりです。 もちろん、自分の不明が最大の原因ですが、この世界に足を踏み入れた当時、先生も、導きの書となる入門書もなかったことも事実です。 今でこそバイブルと仰ぐ『プログラマのためのSQL 第2版』も新入社員には敷居が高すぎました (2015年2月追記:その後、自分で第4版を訳出できたのだから、 人生は何があるか分からないものです)。 そこで、です。このサイトの目的は、データベースの世界に足を踏み

  • 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
  • DuckDB メモ

    モチベーション JSONL を読み込んで解析するツールが欲しかった ログを読み込ませたいので圧縮機能は必須 自社のパッケージ製品が出力する JSONL を読み込んで解析できる仕組み 顧客が問題解析を気軽にできるようにしたい 顧客向けツールとして提供したい つまり顧客環境で動かしたい 1 バイナリ OSS として提供したい Apache-2.0 として公開したい ログファイルは大きくても 100 GB は行かない もともと Go + SQLite + JSONB で検討していた SQL で書きたい SQLite ファイルとして書き出したい SQLite ファイルフォーマットは信頼できる S3 などにファイルを置いておくだけにしたい クラウド版に組み込みたい 顧客毎に duckdb ファイル作ればいいのでは? duckdb ファイルダウンロードできると便利そう DuckDB https://d

    DuckDB メモ
  • WITH句かサブクエリか - まずは蝋の翼から。

    SQLにおいて、サブクエリは可読性下がるからWITH句を使えという話をしばしば聞く。 ただ、最近あえてサブクエリで記述している人がいたので WITH句とサブクエリで何が違うか について考えてみた。 同じ抽出内容だが片方はWITH句、片方はサブクエリで書いた以下のSQLをベースに話す。 WITH句 WITH sub1 AS ( SELECT aaa ,bbb FROM tbl1 ) ,sub2 AS ( SELECT xxx ,yyy FROM tbl2 ) SELECT sub1.aaa ,sub1.bbb ,sub2.xxx ,sub2.yyy FROM sub1 INNER JOIN sub2 ON sub1.aaa = sub2.xxx ; サブクエリ SELECT sub1.aaa ,sub1.bbb ,sub2.xxx ,sub2.yyy FROM (SELECT aaa ,bb

    WITH句かサブクエリか - まずは蝋の翼から。
  • 【SQL】WITH句かサブクエリか

    今週はちょっと色々あって更新ができず....不甲斐ない。。 概要 社内のPdMがWITH句を使ってデータ抽出していたのを見て、無意識にWITH句を避けていた自分に気づいた。。 可読性はいいけど、、、、自分だったら今までの経験上サブクエリにするだろうな~と。 でもそれってなんで?って言われると、「なんかメモリがどうのこうので...」くらいにしか説明できず上手く言語化できずだったので改めて調べてみた。 WITH句の何がいいの WITH句の良さはその圧倒的な可読性の良さです。 複雑なクエリを構築しないといけない時、単に自分用だけであれば複雑かつ汚くてもまだ譲歩できます。 しかし、Metabaseなどで自分以外の人も管理する場合は、SQLといえど可読性は大事にしたいところです。 下記の例は、商品の累計売り上げの順位を算出するSQLです。 テーブルの中身が分からなくとも、ある程度なにをしているのかわ

    【SQL】WITH句かサブクエリか
  • sqlc を TypeScript で利用する

    まとめ sqlc-gen-typescript かなり良い 自分が TypeScript でウェブアプリを利用するなら間違いなく sqlc を選択する SQL は共通言語という点で当に偉大 sqlc とは sqlc とは Go で書かれた SQL を元にコードを生成するツール。 なぜ sqlc ? 結局、それぞれの ORM 固有の技術を覚えるくらいなら SQL を覚えた方が早い 拡張に ORM が対応していようがいまいが関係ない SQL パーサーが pg_query_go を利用しているので信頼できる sqlc は PostgreSQL だけなの? sqlc は MySQLSQLite にも対応している。 sqlc は Go だけなの? sqlc は Wasm でプラグインが書けるようになってきており、つい最近 TypeScript 版がリリースされた。 現時点では、 Postgr

    sqlc を TypeScript で利用する
  • 自然言語からSQLのクエリ生成ができるAmazon Q generative SQLを触ってみた(プレビュー)

    eventid venueid catid dateid eventname starttime 4410 7 9 1836 Linkin Park 2008-01-10 14:00:00 3044 245 7 1843 The Frogs 2008-01-17 15:00:00 2428 243 7 1854 The Frogs 2008-01-28 19:00:00 2360 238 7 1856 Macbeth 2008-01-30 19:30:00 8596 112 9 1859 Missy Higgins 2008-02-02 15:00:00 2911 231 7 1873 November 2008-02-16 19:30:00 1278 247 6 1889 High Society 2008-03-04 20:00:00 6583 123 9 1891 Black Eye

    自然言語からSQLのクエリ生成ができるAmazon Q generative SQLを触ってみた(プレビュー)
  • SQLインジェクションが通った原因は“静的解析ツールのバージョンアップ” 「自動修正機能」に気をつけるべき理由

    「静的解析ツールで生まれたSQLインジェクション」というタイトルで登壇したのは、小川 氏。「面白かった脆弱性」について解説し合い、脆弱性に関する知識を深めるためのイベント「Security․Tokyo #2」で、静的解析ツールによって生まれたSQLインジェクションの事例について発表しました。 登壇者の自己紹介 小川氏:小川と申します。「静的解析ツールで生まれたSQLインジェクション」というタイトルで発表いたします。よろしくお願いします。 自己紹介を簡単に。経歴ですが、昔学生の時にWebアプリ開発のバイトをしていて、就職後は10年ぐらいぜんぜん違う、製造業で働いていました。ずっとパソコンを見ていたら目が悪くなるかなと思ってほかの業界に行ったのですが、結局ずっとExcelやWordを見ていて、あまり変わりませんでした。 結局やはりITだなと思って、最近root ipという会社に転職して、Bto

    SQLインジェクションが通った原因は“静的解析ツールのバージョンアップ” 「自動修正機能」に気をつけるべき理由
  • GoでSQLの複雑なクエリのテストを書いてみた - ZOZO TECH BLOG

    はじめに こんにちは。ブランドソリューション開発部FAANSバックエンドブロックの佐野です。普段はサーバーサイドエンジニアとして、FAANSのバックエンドシステムを開発しています。 FAANSとは、弊社が2022年8月に正式ローンチした、アパレル店舗で働くショップスタッフの販売サポートツールです。例えば、コーディネート投稿機能や成果確認機能などを備えています。投稿されたコーディネートはZOZOTOWNやWEAR、Yahoo!ショッピング、ブランド様のECサイトへの連携が可能です。成果確認機能では、投稿されたコーディネート経由のEC売上やコーディネート閲覧数などの成果を可視化しています。 記事では、成果データの集計処理におけるBigQueryのクエリ実行処理のユニットテストをGoで実装した取り組みと、その際の工夫についてご紹介します。 目次 はじめに 目次 成果データの集計処理とは 抱え

    GoでSQLの複雑なクエリのテストを書いてみた - ZOZO TECH BLOG
  • 社内向け SQLチューニング勉強会を実施しました

    はじめのご挨拶 はじめまして。BEENOSの鈴木です。 普段はBEENOSグループのtenso株式会社でヘルプデスク業務に従事しておりますが、たまにサービス関連のデータベース、MySQLのチューニングや調査などもしております。 今回、普段から触っているMySQLのチューニング勉強会を実施しましたので、その内容を少し公開したいと思います。 勉強会を開催しようとしたきっかけ tenso株式会社の開発チームには、SREチーム(運用チーム)があり、元々は私も所属しておりました。 SREチームに新規メンバーが参入してきたこともあり、改めてデータベースと向き合う人のために、まずはSQLのチューニングを覚えてもらいたいとの要望があり、開催することにしました。 また、BEENOS全体としても開発エンジニアがコードを書くだけでなく、コードに含まれているSQLがどのように動くかを把握しパフォーマンスの良いSQ

    社内向け SQLチューニング勉強会を実施しました
  • 静的解析ツールで生まれたSQLインジェクション | ドクセル

    自己紹介 小川 経歴 ~2009: Webアプリ開発のバイト&業務委託 2009~2019: 三菱重工 イット何も関係ない。野良のパソコンの大先生してた 2019~いま: root ip B2BのSaaS作ってます PHPVue分かる人来て!!1 面白かった脆弱性 - CVE-2023-22727 PHPフレームワーク CakePHP 4 のSQLインジェクション脆弱性 ORM limit(), offset() でSQLi CVSS v3 9.8 2023/01に修正済み CakePHPLaravelの次に使用率高いフレームワーク(多分) 割と使いやすいからお勧め 一般にコード品質が上がる静的解析ツールの使用で逆に発生

    静的解析ツールで生まれたSQLインジェクション | ドクセル