社内研修の練習問題での失敗からCOUNT関数の使い方を復習しようと思います。 COUNT関数 Oracle SQLの'COUNT関数'には3つの書式があります。 1.COUNT(*) SELECT文の基準を満たす全ての表を戻します。
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 今後ホームページを作成していくにあたり、情報をデータベースで管理していく必要があるとわかりました。 そのデータベースへアクセスするための専用の操作言語として、 SQL というものがあり、今回はそれに触れてみようと思います。 学習のために使う書籍は、「中山清喬 飯田理恵子(2022)『スッキリわかるSQL入門 第3版 ドリル256問付き! (スッキリわかる入門シリーズ) 』株式会社フレアリンク」です。 その中でも第2章・第8章・第9章を読んで学んだことを、そこで紹介されているコードを実際に試しながら(本書のコンテンツの一部です)、ここに記
こちらのCoral さんの記事コーディングを不要にする「ノーコード・スタートアップ」が注目される理由 にある通り、ノーコードってここ数年のトレンドワードです。 coralcap.co ノーコードツールでよく聞くのはkintone のようなWeb DB + フォームのようなツール、仕様書からコードが自動生成されるアプリ開発ツール、アプリケーション連携・iPaaS などですが、筆者が例に出したのは意外にも「SQL」でした。 個人的には、ノーコーディングの最大の成功事例は、データベースにアクセスするための「SQL」ではないかと思います。今でこそSQLはエンジニアにとっても熟達に時間のかかる専門スキルと見なされていると思いますが、マーケターやセールス担当者がインサイトを得るために、エンジニアに依頼せずとも「コーディング不要」で使えるツールでもあります。SQLがなければ、データ構造やディスク、メモリ
はじめに こんにちは。calloc134 です。 バックエンド開発において、DB にデータを保存することはよくあることです。 DB と接続してデータのやり取りを行う必要がありますが、皆さんはどのようにしてデータを取得していますか? ORM やクエリビルダを利用したり、逆に SQL を記述してコード生成を行ったりと、様々な方法があります。 今回はこれらのアプローチについて比較し、比較的斬新な方針を取っているものとして SafeQL を紹介します。 注意点 ここでは、TypeScript のバックエンド開発と、そこで利用されるライブラリを前提として話を進めます。 Go や Python など他の言語での利用方法については、別途調査が必要です。 SQL に対するアプローチ まず、SQL に対するアプローチには大きく分けて 2 つの方法があります。 それぞれのライブラリの使い方を、簡単に見ていきま
生SQLを扱う $queryRaw TypeScript向けのORMライブラリとしてPrismaがあります。Prismaは直感的で型安全なAPIを提供し、TypeScript向けのORMとしては第一に名前が上がることが多いライブラリです。 しかしそんな人気なPrismaでも、裏側では少しクセのあるSQLが発行されていたり、欲しいSQLがPrismaのAPIでは実現できない場合があります。 そういった場合のために $queryRaw というメソッドが用意されており、これを使うことで生SQLを書いてその結果を受け取ることができました。他のORMにもよくある機能です。 例えば以下のように実装することができます。 const users = await prisma.$queryRaw` SELECT id, name FROM "Users" WHERE id = ${userID} `; co
背景 閉包テーブルからパス文字列を得るの記事を読んだことがきっかけです。 この記事のようにやりたいことは浮かんでいますが、SQLクエリを作るために少し工夫が必要そうなことは多々あるかと思います。 そこで、LLMを利用してSQLクエリを生成することで、考える作業を効率化できないかと考えました。 本記事では、AIを使って閉包テーブルの階層構造を表示するSQLクエリの生成を試みます。 AI利用時のデータ漏洩には注意が必要です AIの学習に利用されないプラットフォームを選択するか、漏れてはいけない内容は入力しないようにしましょう。 目的 この記事では、AIを用いてSQLクエリを生成することを目的としています。 具体的には、閉包テーブルで表された部署を階層構造で出力するSQLクエリをLLMに生成させることを試みます。 環境 クエリ生成: AzureのGPT-4o データベース: PostgreSQL
リレーショナルデータベースではテーブルを結び付けるJOINが大事なのですが、「プロになるJava」ではページの都合で取り上げていなかったので補足。 追記 2023/8/11: H2コンソールでは自動でデータベースは作成されないので、とりあえずコードを追加しています。 データベースの準備 ここではSpring BootにH2データベースを導入してH2コンソールのWebインタフェースを使って進めていきます。 「プロになるJava」に従ってすでにH2コンソールでSQLを試している場合は、テーブルの作成から進めてください。 CodespacesやVS Codeである必要はないですが、Spring Bootの環境はこちらを参照。 GitHub CodespacesでSpring Bootの開発を始める - きしだのHatena H2を導入 まずH2データベースを使える状態にします。 pom.xmlの
はじめに 今までは適切なデータを抽出するクエリの書き方しか視野に入れられませんでしたが、次第にパフォーマンスのことも考慮するようになりました。 複雑なSQL文になればなるほどかなり重要になってくるので、少しでもパフォーマンスが改善できる記載を備忘録として残そうと思います
はじめに 今回はSQLについて軽く触れてみようと思います。バックエンドにおける実装はデータベースから何をどのように取ってくるか、ということがメインのため、データベースとそれを操作するSQLを知ることはバックエンドの実装を深めるために必須です。 今回はSQLに馴染みが無い人、これからエンジニアとして学習を初めて行く人のために軽くSQLを一緒に体験してもらうことを目的として書いています。 ※今回は外部キーや、主キー、NULLなどの説明はしていません。本来なら基本として抑えておくべきものだと思いますが、あくまでもSQLを体験し、楽しんでもらうことを目的としています。この辺については後々また追記していこうかなと思います。 今回の目的 DB-fiddleでSQLを体験できることを知り、実際に動かしてみる SQLの基本的な知識を得る 用意するもの 今回は簡単にSQLを体験するこちらのサイトを用意しまし
-------------------------------------------------------- -- users テーブルについて、部署・役職・作成日ごとに件数を集計する -- (MySQL用) -------------------------------------------------------- SELECT u.department_code `部署コード`, u.role_code `役職コード`, DATE_FORMAT(u.created_at, '%Y-%m-%d') `作成日`, COUNT(*) `人数` FROM users u GROUP BY u.department_code, u.role_code, DATE_FORMAT(u.created_at, '%Y-%m-%d') ORDER BY u.department_code ASC
拙著『達人に学ぶ SQL徹底指南書』の中で、EXISTS述語の使い方を解説している章があるのだが、そこでEXISTS述語だけが唯一SQLの中で二階の述語である、ということを説明している。これはEXISTS述語だけが行の集合を引数にとる述語だからである。それは分かるのだが、なぜ述語論理を考えた人(具体的にはゴットロープ・フレーゲ。タイトル画像のおじさんである)はこんな着想を得たのか、そこが分かりにくいという質問をしばしば受けることがある。確かに、数ある述語の中でなぜ「存在する」だけが二階の述語であるのか、というは直観的にすこし分かりにくい。なぜフレーゲはこんなことを考えたのだろう? この点について、述語論理の創始者でもあるフレーゲの議論を参照しながらかみ砕いて見ていきたいと思う。かなり理論的かつ哲学的な話になるので、興味ない方は読み飛ばしてもらってかまわない。とくにSQLの理解に支障のある話
導入 SQL文でNULL値を扱う際の便利な関数、COALESCEを紹介しようと思います。 SELECT句で、NULL値を置き換えることで、データの可読性を高めることができたり。 ORDER BY句で、NULL値のソートの条件分岐の複雑性を吸収したり。 と、SQL文の簡略化にぴったりです。 今回の記事では、簡単にCOALESCE関数の説明と実践例を2つご紹介します。 COALESCEについて リストの最初の非 NULL 値を返します。非 NULL 値がない場合は、NULL を返します。 つまり、欠損値(NULL)にデフォルト値を指定することができます。 例 SELECT COALESCE(`office`.`locale`, `office`.name`, `リモート勤務`); 上記のクエリを例にすると...。 office.locale(オフィスの場所)を出力。 office.locale
本記事の概要 SQL入門ハンズオン「はじめてのSQL」 第1回資料 の続編です。 (※ SQL全くの初めて!DBって何?って方は、まずは↑を読んでみてください〜) エンジニアリング質問プラットフォーム・PRIME ANSWERで主催しているSQL入門勉強会 2回目の資料として執筆しました。わいわい!☺️ はじめに 今回のゴール SQLでJOINを行えるようになる 各種JOINの挙動の違いを理解して使い分けられるようになる 前提知識 JOIN(テーブルの結合)とは? データベースからデータを取り出す際、ほしいデータの項目が複数のテーブルに及んだり、ある条件に一致するデータを取りたい場合があると思います🌷 例) members(メンバー)・teams(メンバーが所属するチーム)の2つのテーブルがある場合に、年齢が20歳以上のメンバーの「名前」と「所属チーム名」を取得したい その際、上の例の場
本記事の概要 こちらは2021.04.10に株式会社xhackさんの勉強会「【オンラインハンズオン】はじめてのSQL」を主催させて頂いた時に作成した資料です。 筆者はバックエンド中心のエンジニアとしてデビューしたてのピヨピヨではありますが、 データベースが好きでSQLをちゃんと理解したい!と思っていた際 よく参加させて頂いているxhackさんの勉強会で主催やりませんか?と 代表の松田さんにお声を掛けて頂いたのがきっかけでやらせて頂きました。感謝!😊 はじめに 1. 今回のゴール SQLで基本のデータベース操作(参照・挿入・更新・削除)を行えるようになる SQLでの代表的な構文の意味を理解できる 2. ざっくりSQL データベースを操作したり、中のデータを定義するための言語 参考:「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典 - SQL 3. ざっくりデータベース
SQL • リレーショナルデータベースシステムと会話するための言語 • 1970年 Codd が RDB モデルと同時に提案 (Alpha言語) • 1974年 Chamberlin と Boyce が改良 • 元々は SEQUEL (Structured English Query Language) だったが、商標登録されていた • 読み方は エスキューエル とそのまま読む (Glliespie 2012) SQL • SQL は目的別に 4つに分けられる • DCL (データ制御言語) GRANT とか • DDL (データ定義言語) CREATE TABLE とか • TCL (トランザクション制御言語) ROLLBACK とか • DML (データ操作言語) • INSERT, UPDATE, DELETE, SELECT • データ分析者にとって重要なのは SELECT 文
これはなに ども、レバテック開発部のもりたです。 今回はSQLのサブクエリについてまとめます。仕事でクエリを書く際、サブクエリは頻出の構文だと思うんですが、同時にサブクエリの書き方を完全に理解しているよという人は案外少ないのではないでしょうか?[1] 実際、MySQLの公式ドキュメントを見ると12ページくらいを割かれており、意外と奥深いのがサブクエリです。使いこなせると便利ですし、何よりちょっとSQLのコツみたいなのがわかって面白いよ、ということで記事にしてみました。 前提 この記事は以下の前提を含んでいます。 環境 MySQL8.0系 読者の知識 なんとなくサブクエリが書ける けど相関サブクエリとかになると「あーっ」つってGoogle meetを閉じてしまうくらいのレベル感 記事のボリューム 18,000文字 おれの卒論が20,000文字だった マサカリ 間違ってたら投げてくれ〜〜 それ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く