絞り込み条件を変更する
検索条件を絞り込む

すべてのカテゴリ

45 件中 1 - 45 件表示
カバー画像

Access学習メモ 1-11.AccessでココナラブログNote①

今般の熊本地震による影響を受けた方々に謹んでお見舞い申し上げると共に心が少しでも救われる場面が一刻も早く訪れることを願っています。今この瞬間にも、救護を必要とされているかたが現地に大勢いるのではと思います。同じく酷暑の時期に被災した経験を持つ身としては、決して他人事ではありません。数週間に及ぶ上下水道の断水。当初は飲み水の確保に苦労しましたが、日数の経過と共に深刻化したのは生活用水の不足です。必要量が飲料とは比較になりません。汗ばむ季節の入浴制限はもとより、女性としては用を足せないことが何よりつらかった。自宅でも職場でも状況は同じ。そんな折、当時の首相が「プッシュ型支援」を内閣府へ要請。(思えば10年前の熊本地震が最初でした。)私たちの街に物資が届くのは早くても2~3日後と覚悟しました。報道翌日には自衛隊の災害派遣車両によって、地域の公園を中心に救援物資が次々と運び込まれ、感激したのを思い出します。水道の復旧は病院などの公共施設、公営住宅エリアが優先でした。自分たちの番が訪れる日が待ち遠しく、蛇口をひねると当たり前のように水が出てくるありがたみをあれほど実感した試しはありません。-∴-∵-∴-∵-∴-∵-∴-∵-∴-∵-∴-∵-∴-∵-∴-∵-∴-∵-∴-∵--∴-∵-∴-∵MicrosoftAccessを用いたデータベース作りの学習記録ですいや、今回の作品はデータベースと呼べるほどのレベルではない。ブログ投稿はココナラブログが人生初。そもそも下書きと公開設定の区別もついておらず、記事は下書きした順に掲載されるとばかり思っていた。投稿前の下書きの段階ではココナラブログの並びに不
0
カバー画像

【Access備忘録】こんなSQLはじめて♡

以下でAccess内の全テーブル名を取得できます。SELECT MSysObjects.Type, MSysObjects.Name, MSysObjects.Flags FROM MSysObjects ORDER BY MSysObjects.Type, MSysObjects.Name;DAOは使いたくないのでよかった~。これでAccess内の全レコードを検索できます。日々是勉強です。
0
カバー画像

Access学習メモ 7-4. SQL基礎学習④

テーブル上の特定レコードの全フィールドを表示させる案SELECT テーブル名.*FROM テーブル名WHERE テーブル名.[フィールド名]=抽出条件;☆学習メモ7-1で用いた、データベースの中身を全確認したいときの標準的なデータ取得SQLSELECT テーブル名.*FROM テーブル名;☆学習メモ7-3で用いた、選択済みフィールド情報(列)の中から特定のレコード(行)抽出SQLWHERE テーブル名.[フィールド名]=抽出条件;ふたつの☆の合わせ技で、タイトルに「メカ」とついたレコードを表示させようとした。クエリデザイン画面を使う場合の操作手順:選択クエリ画面にテーブルを置き、*(アスタリスク)をダブルクリックする。あるいは*(アスタリスク)をフィールドグリッドにドラッグする。 ↓テーブル内「タイトル」フィールドをダブルクリックする。あるいはテーブル内「タイトル」フィールドをフィールドグリッドにドラッグする。 ↓「タイトル」フィールドグリッドの「抽出条件」に「メカ」と直打ち。(Accessは賢いので、文字列と判断し"メカ"と変換してくれる。) ↓データシートビューでクエリ実行結果を確認する。※「!(実行)」ボタンは不要。・・・ ↓1件もヒットしない。そんなバカな( ´゚д゚`)Accessが自動形成してくれたSQLで、ヒントを見つけていこう。 ↓SELECT M_配信リスト.*, M_配信リスト.[タイトル]FROM M_配信リストWHERE (((M_配信リスト.[タイトル])="メカ"));読みにくいのでWHERE句の((()))を消去。※効果は変わらない。 ↓SELEC
0
カバー画像

【ACCESS SQL】目に見えないクエリを想像することで、抽出可能なデータ

YouTubeでも紹介しています。是非ご覧ください。データベースは、VBAではなく、いかにデータを抽出するかです。 目に見えない、架空のクエリを想像できれば、さらに、データ抽出が楽になります。 目に見えないクエリを想像することで、抽出可能なデータ こんにちは。伊川です。 前回は、SQL文の基礎中の基礎を紹介しました。 また、前回紹介した書籍のChapter3で、LIMIT句というのが登場します。 結論から言いますと、ACCESSでは、LIMIT句は、利用できません。 なので、LIMIT句の代替のコードを利用します。 少し面倒な作業が増えます。 もちろん、このような複雑なことをしなくても、今回のサンプルでは、データ抽出ができます。 しかし、この面倒な作業を、覚えることで、複雑なデータ抽出ができるようになります。 VBAよりも、ずっと面白い内容です。 このブログはこんな人にお勧め ACCESSでクエリを勉強している人 クエリのスキルに限界を感じている人 SQLを勉強している人 このブログを、読み終わるころには・・・・ 初めて、競馬で、データ抽出で、壁に当たった内容でした。 デザインビューを見ても到底、その時の私には、理解できない内容でした。 しかし、目に見えないクエリが、どのように作動しているのかを、このブログで理解できるようになります。 上位2つのレコードを抽出したい この、テーブルから、上位2つのレコードを抽出します。 つまり、伊川直助、伊川直子を、抽出します。 このような状態にします。普通は、これで完了です。 もちろん、これでも正解ですが、架空のクエリを作成して、抽出をしま
0
カバー画像

【ACCESS クエリ】クエリは、SQL文で記載すると面白くなる?

YouTubeでも紹介しています。是非ご覧ください。どんなに、優れたデータベースを、作成しても、欲しいデータを抽出できなければ意味がありません。 この、データ抽出は、データベースを操作するに場合に、必須の知識となります。 クエリは、SQL文で記載すると面白くなる? こんにちは。伊川です。 クエリを制するのみは、データベースを制する。 最近は、すっかりSQLに、ハマっています。 SQLの基本書には、必ず、MySQLを、パソコンにインストールして、開発環境を整えるところから始まります。 ただ、MySQLを、インストールしなくても、ACCESSを利用して、手軽に勉強できます。 今回紹介する書籍は、非常に変わりやすく記載されています。 私も、SQLを基礎から勉強しようと思い、購入しました。 この書籍の良いところは、サブクエリ、相関クエリ等、 ACCESSの基本書では、記載されていないことが、記載されています。 1つのテーブルから、クエリを複数作成してもいいですが、メンテナンスが大変です。 短いSQLを、サクサクっと記載して、万能なデータベースを作成しましょう。 このブログはこんな人にお勧めACCESSで、クエリを勉強している人 SQLの勉強をしている人 サブクエリ等、複雑なクエリを作成したい人 このブログを、読み終わるころには・・・・今回は、SQLの基礎中の基礎です。 しかし、この基礎に関しては、SQLの文法を学ぶに当たり非常に重要なことです。 この基礎を勉強して、複雑な抽出条件を記載できるようになりましょう。 ACCESSを利用して、SQLの勉強をするACCESSには、クエリを作成す
0
カバー画像

SQLite データベースを Django でどう使うか?

SQLite データベースを Django でどう使うか?Django で標準設定のデータベースとして利用されている SQLite ですが、実際にシステムとして稼働する場合には置き換える場合が多くなっています。何故でしょうか?この記事では、SQLite について簡単にまとめてみました。 SQLite データベース最初に、SQLite データベースについて簡単にまとめておきます。 プログラム開発、特に Web 系の開発で SQL データベースは利用する機会も多いですし、よく耳にする名前です。 その名の通りデータベースの一種ですが、「SQL(Structured Query Language)」を使ってアクセスするデータベースです。SQL は一種のプログラミング言語のようなものですが、データベースとデータをやり取りする際に使われます。データを追加、更新、削除を行うための記述ですが、かなり複雑なデータの扱い方もできます。代表的な SQL データベースには、MySQL、PostgreSQL、Microsoft SQL Server、そして今回取り上げている SQLite などが挙げられます。その中で、SQLite はその名の通り、「軽量」のデータベースとして Django などでも標準設定になっています。Django で標準設定になっていますが、多くの Django アプリをインターネットに公開して実際に稼働させる際には別の SQL データベースに置き換えることが多いのは以前の記事で紹介した通りです。何故 Django で標準設定になっているか?公開する際には置き換えることが多いのに何
0
カバー画像

Access学習メモ 7-3. SQL基礎学習③

FROM句の対象テーブルからSELECT句で選び取ったフィールド(列)表示ここまでが既存の学習メモ内容今回は、選択済みフィールド情報の中から特定のレコード(行)のみ抽出だんだんややこしくなってきてる(゚д゚lll)SELECTM_配信リスト.[話数],M_配信リスト.[タイトル], M_配信リスト.[放送日], M_配信リスト.[Season]FROMM_配信リストWHEREM_配信リスト.[フィールド名]=抽出条件;   ←【New】1. SQLの構造SELECT~FROM~に加え「WHERE句」が仲間入り。SELECT 句 SELECT M_配信リスト.[話数], M_配信リスト.[タイトル], M_配信リスト.[放送日], M_配信リスト.[Season]役割:どの列(フィールド)のデータを取得するかを指定詳細:テーブル名「M_配信リスト」の内、[話数][タイトル][放送日][Season]フィールドを表示。具体的なフィールド名をカンマ(,)で区切って「どのテーブルの、どの項目か」を正確に指定する。FROM 句 FROM M_配信リスト;役割:データの取得元となるテーブルを指定詳細:「M_配信リスト」テーブルからデータを取るように指定。これまでと違う点:テーブル名の後につける;(セミコロン)は、この後に続くWHERE句が引き継ぐため、今回は不要。WHERE 句WHEREM_配信リスト.Season = 3;役割:データの取得元となるテーブルから、必要なレコードのみ抽出。詳細:「M_配信リスト」テーブルの内、[Season]フィールドに「3」と入ったレコードのみ表示するよう
0
カバー画像

Access学習メモ 7-1. SQL基礎学習①

データベースの中身を全て確認したいときに用いられる、標準的なデータ取得SQLです。SELECT テーブル名.*FROM テーブル名;1. SQLの構造ここではふたつの「句」が登場している。SELECT 句 (SELECT M_配信リスト.*)役割:どの列(フィールド)のデータを取得するかを指定詳細:テーブル名「M_配信リスト」末尾の *(アスタリスク)は「すべての列」を意味し、「M_配信リスト」テーブルにあるすべての項目を取得できる。ただし、SQLの文法上、テーブル名やアスタリスクは独立した単語(トークン)として扱われ、それらを結びつける「ドット(演算子)」が必須とする取扱いが、リレーショナルデータベース業界の共通ルール。小さくて見つけにくいが、テーブル名と *(アスタリスク)の間には「.(ドット)」がちょこんと入る。この場合の「.(ドット)」は、「〜の」や「〜に属する」を意味する修飾子(クオリファイア)の働きをする。これを省略するとAccessはSQLの指示内容を読み取ることができず、「演算子エラー」となり、クエリ実行は中止される。FROM 句 (FROM M_配信リスト;)役割:データの取得元となるテーブルを指定詳細:「M_配信リスト」テーブルからデータを取るように指定。末尾の ;(セミコロン)は、SQL文の終わりを示す。2. 本SQLの役割「M_配信リスト」テーブルに格納されたすべてのレコード(行)と、すべての項目(列)を抽出して表示補足:「列」の呼び方についてAccessの設計画面やMicrosoft公式ヘルプなどでは、伝統的に「フィールド」という言葉が使われる。MyS
0
カバー画像

「データベースが開けません」と出たとき — 何%戻るかを言い切る人は、たぶん見ていません

長年使ってきたソフトを開いたら、起動しない。エラーの文言をそのまま検索すると、データベースが壊れているらしい。そんな状況になったことはありませんか。・業務で使っているアプリが起動せず、データが読めなくなった・`database disk image is malformed` のようなメッセージが出る・バックアップはあるが、半年前のもので、そこから今までの入力が入っていないまず、いちばん急ぐことをお伝えします。何よりも先に、コピーを取ってくださいそのファイルに、これ以上さわらないでください。やることは1つだけです。壊れたファイルを、別の場所へコピーする。それだけです。USBメモリでも、別のフォルダでも構いません。できれば2か所に置いてください。理由は単純で、復旧を試みる操作そのものが、状態をさらに悪くすることがあるからです。修復ツールを走らせる、アプリで開き直す、再インストールする。どれも、残っている断片を上書きしてしまう可能性があります。元のファイルさえ手つかずで残っていれば、何度でもやり直せます。復旧で最初にやるべきことは、直すことではなく壊れた状態を保存することです。「何%戻りますか」に答えられる人はいません次に聞きたくなるのが、これです。ですが、この質問に事前に答えられる人はいません。データベースが壊れるといっても、壊れ方はさまざまです。先頭の数十バイトだけが書き換わったのなら、中身はほぼ無傷です。ファイルの後ろ半分が切り落とされていたら、その部分は誰にも取り戻せません。消えたバイトは、どんな技術でも復元できません。そして、どちらの壊れ方なのかは、開いてみるまで分かりま
0
カバー画像

Access学習メモ 0-4. AIに真似できない素晴らしさ

ココナラを訪れ、初めて取り組んだのが売上管理システム。【設問】売上日の入力後に売上番号(11桁の番号)を自動表示(編集不可)させなさい売上番号の付番ルール:日々の売上データを001から昇順3桁にて売上日 yyyymmdd に付加 例)売上日 2017年5月13日 当日1件目の売上 の場合 20170513001 売上日 2017年5月13日 当日3件目の売上 の場合 20170513003売上日 2017年5月15日 当日1件目の売上 の場合 20170515001 開発で忙しそうな出品者の手を煩わせたくなくて、生成AIに助けを求めるようになった。主に企業相手の商売だからか、Access関連サービスは価格設定が強気。比較的安価なサービスでも分厚めの参考書と同等のお値段°˖☆◝(⁰▿⁰)◜☆˖°ともあれ、生成AIが考案したコードはきちんと動くし、スッキリまとまっていて、何も問題なしと思われた。そんな中、ほかのココナラ出品者によって開発されたコードの品質が生成AIのコーディングとは異なることに気づいたので、記録しておきたいと考えた。※動画内コードは出品者から得た知識にて自分なりに練習を重ね実装した内容生成AIおよび人間による開発の違い実装結果を比較しながら、自分なりに検証してみた1. 実用向けか否か生成AI:Like演算子を使い、文字列としての売上番号から日付を逆算するため、入力された文字列が日付か否かに関係なく形成実行出品者:WHERE 売上日 = #日付# と、正規の日付項目で入力候補を絞り込み、日付型に該当しない入力をブロック2. 長期利用に耐えうるか生成AI:売上番号のデー
0
カバー画像

Access学習メモ 1-9. Nullってなあに

クエリを通してテーブルを学ぶ...選択クエリ作成問題で登場する式・発注数量 = 最大在庫数(計)ー(出庫数(計)-入庫数(計))Accessの集計関数で表現すると、こうなるらしい。発注数量: [最大在庫数] - ( Nz(Sum([出庫数]),0) - Nz(Sum([入庫数]),0) )” Nz(Sum([]),0)”とは?トランザクションテーブルに対象レコードが1件も見当たらない場合、Sum() は合計値を出せず“結果なし(Null)”になる。その Null が式に混ざると計算結果を出せなくなるため、Null を0(ゼロ)に置き換える保険として Nz(Sum([ ]),0) が使われる。” Nz(Sum([]),0)”が最大在庫数には不要な理由商品マスタの「最大在庫数」は1商品につき1行だけ存在する固定値であり、設計上Nullになる恐れはない。データインポート用のExcelにも数字がしっかり入っており、Nz()不要。1商品につきデータ1件の構成なので、集計Sum() も必要ない。” Nz(Sum([]),0)”が必要なのはトランザクションテーブル上の「入庫数/出庫数」だけSum([出庫数]) :出庫数の合計Sum([入庫数]) :入庫数の合計Sum()は「対象レコードが1件もない」場合にNullを返す(計算できる材料が揃わないことにより算定結果を出せないと判断する)働きがある。対象レコードが 1 件以上 → 合計値(数値)を認める対象レコードが 0 件 → Nullを認める例:「商品マスタ」のある商品に対し、入出庫トラン上の入庫が1回も無い → Sum([入庫数]) = N
0
カバー画像

【ACCESS SQL】サイバイマンを減らすクエリ

YouTubeでも紹介しています。是非ご覧ください。SQLをSQLビューから作成を始めると、今までのクエリが無駄に思えてきます。 エイリアスとjoinを利用して、クエリを作成します。サイバイマンを減らすクエリ こんにちは。伊川です。 前回は、エイリアスについて解説しました。 しかし、実行するクエリに関しては、3つあります。 この3つのクエリを1発で実行する方法を紹介します。 単純に、INNER JOINと、エイリアスを利用します。 JOINに関しては、下記の記事で紹介しています。 相変わらずですが、競馬ネタであることをご了承ください。 このブログはこんな人にお勧め ACCESSを勉強している人 クエリを勉強している人 ACCESSにクエリが沢山ある人 このブログを、読み終わるころには・・・・ 複数のクエリを作成すると、メンテナンスが困難になります。 SQLを、直で編集するスキルがあれば、複数のクエリを作成することなく、 1つのクエリで実行することができます。 1発のクエリで実行する Q_買い目1というもを作成するのに、 Q_指数買い目順位2 Q_指数買い目順位5 上記の2つのクエリが必要となります。 当然、1発で実行できるなら、2つのクエリは不要になるわけです。 この、Q_指数買い目順位2、Q_指数買い目順位5は、MT_数値追加から、派生したものです。 MT_数値追加から、派生したクエリ(サイバイマン)ならば、1発で実行できます。 1発のクエリで実行する 作業手順 その1 見出しの考え方 SELECT ~ FROM~ WHERE~ この形が基本です。 SELECT ここには、ク
0
カバー画像

データーベースのデバッグツール <WinSQL>

 何種類かのデータベースを扱う技術者にとって、専用ツールを使用したクエリテストは避けられないものです。  私がストレスを感じるのは、データベースエンジンごとに、ユーザーインターフェースの使い勝手が全然違って、「ただクエリをテストしたいだけ」なのに、クエリに集中できないことです。 そこで私が愛用しているツールが「WinSQL」です。   www.synametrics.com/SynametricsWebApp/Download.do?ProgName=WinSQL これは様々な種類のデータベースに対して、一つの共通したインターフェースからクエリを発行することが出来るツールです。 これを使用すると、データベースにアクセスするプログラムを開発する、一般的な手順の中で(1) 画面設計/作成(2) DB接続※場合により、トランザクション処理を開始。(3) SELECTクエリでテーブルデータを読込み。(4) (3)項の結果に応じて、INSERT, UPDATE, DELETEなどのクエリを発行。(5) SELECTクエリで、データの不整合がないか確認。※場合により、トランザクション処理を終了。といった流れの (3)(4)項を 効率的に進めることができます。非常におすすめのツールです。
0
カバー画像

Access学習メモ 7-12. SQL基礎学習⑫

”○○から○○まで”をフィールド(列)に条件として指定しテーブルのデータの中から、条件に合致したレコード(行)を抽出する期間の○○~○○:Between #yyyy/mm/dd# And #yyyy/mm/dd#Between #dd/mm/yyyyy# And #dd/mm/yyyy#クエリデザイン画面から設計する場合は日付は##で囲まなくても、Accessが自動で認識して##を付けてくれるがその場合、月日は0埋め(月日とも2桁表示に)しておかないとエラーになる。「特定日(例:今年の元日)から今日まで」を指定する際にはBetween #1/1/2026# And Date() と記入すればOK。文字列の○○~○○:日付を指定する際に用いるBetween演算子は使えない。Like演算子とワイルドカード(*)を使う。Like "[あ-お]*"※ワイルドカード(*):その後に続く任意の文字列⇒「あ~お」を頭文字とした名称の候補をすべて連れてきてくれる。抽出文字列にひらがなとカタカナが混在する場合Like "[あ-おア-オ]*"[あ-お] : あ、い、う、え、お のいずれかの1文字[ア-オ] : ア、イ、ウ、エ、オ のいずれかの1文字【注】漢字の読み仮名はLike "[あ-おア-オ]*"対象外。漢字を抽出対象としたい場合はテーブル制作時に抽出条件用の読み仮名フィールドを設けておく。【注】濁音や半濁音は、五十音順の次音を抽出上限に指定すると含まれるようだ。タイトル「バズろう心霊動画」は「ア~ハ」と指定したときは拾うことができず「ア~ヒ」と指定すると出てきてくれた。【完成形】SELEC
0
カバー画像

Access学習メモ 7-10. SQL基礎学習⑩

結合したテーブルから特定のフィールドを選び特定のフィールドが持つ値の順に並べ替え、特定のレコードだけを表示する。これまで作成したテーブル①M_名簿②M_登場人物③M_配信リスト④T_視聴各テーブルの共通フィールド(列の見出し)を内部結合(INNER JOIN)表示するフィールドを選択:[ゴジNo][キャラクター名][話数][タイトル][放送日][Seasoon][視聴数(万回)]指定したレコード(行)を抽出:[ゴジNo][キャラクター名]のレコード(行)を抽出し[話数][タイトル]の並べ替え:[視聴数(万回)]を降順表示抽出条件:今年度(Season4)は現時点で配信途中であるため、出力対象から除外。「条件:Season4未満」目的:キャラクター別に人気作品を調査します。SQLはこんな感じ:SELECTM_名簿.[ゴジNo], M_名簿.[キャラクター名], M_登場人物.[話数], M_配信リスト.[タイトル], M_配信リスト.[放送日], M_配信リスト.[Season], T_視聴.[視聴数(万回)]FROM ((M_名簿 INNER JOIN M_登場人物 ON M_名簿.[ゴジNo] = M_登場人物.[ゴジNo]) INNER JOINM_配信リスト ON M_登場人物.[話数] = M_配信リスト.[話数]) INNER JOINT_視聴 ON M_配信リスト.[話数] = T_視聴.[話数]WHERE (((M_名簿.[ゴジNo])="CH001") AND ((M_配信リスト.Season)<4))ORDER BYT_視聴.[視聴数(万回)] DESC
0
カバー画像

Access学習メモ 7-6. SQL基礎学習⑥

テーブル上の全フィールドを表示させ特定のフィールド順に、レコードの並べ替えをおこないます。特定のフィールドとは、「視聴数(万回)」です。アニメの放送話ごとの再生数を記録したフィールドです。「視聴数(万回)」フィールドの場所:既存のマスタテーブルに追加する方法と新たにトランザクションテーブルを追加しマスタテーブルに内部結合させる方法がある。再生回数の集計結果は日々変化し得る情報でありトランザクションテーブルで管理を行うのが王道なので今回はトランザクションテーブルを新たに設け既存のマスタテーブルと結合(JOIN)させる方法を採用する。1.トランザクションテーブルの構成を決める名称:T_視聴目的:[視聴数(万回)]を記録したい↓[視聴数(万回)]フィールドを置くことは確定。[視聴数(万回)]の記録は複数行(レコード)必要か?↓動画の再生数なので、集計結果は刻々と変化し得る。毎日せっせと集計したいほどではないけど、ないよりはあった方がいいかな・・・↓集計日を記録するための「記録日」フィールドを設けておこう。今回のトランザクションテーブル(T_視聴)は時系列データの保管場所となり「記録日」を軸に進行するため、「記録日」フィールドを主役とする。【注】1レコード1記録日であれば、データ型が日付型であっても頓着することなく「記録日」フィールドを主キーに設定することは可能だが今回のように、複数レコード(放送話)にわたって同じ記録日の入力が想定される場合(他と重複する場合)主キーにはできない。主キーを設けたい場合は「記録ID」など一意の値が入るフィールドを別途、用意する。2.マスタテーブル(M_配
0
カバー画像

Access学習メモ 7-5. SQL基礎学習⑤

テーブル上の全フィールド(列)・全レコード(行)を表示させ特定のフィールド順に、レコードの並べ替えをおこないます。特定のフィールドとは、「視聴数(万回)」です。アニメの放送話ごとの再生数を記録したフィールドです。「視聴数(万回)」の降順に並べ替えを行い、人気順を調査します。「視聴数(万回)」フィールドの場所:既存のマスタテーブルに追加する方法と新たにトランザクションテーブルを追加しマスタテーブルに内部結合させる方法がある。再生回数は流動性を持つ集計情報であり、トランザクションテーブルで管理を行うのが王道。ただし集計日別の管理をおこなう必要がなく、単純に集計時点の累計視聴数を上書きする形で問題なければ、M_配信リスト内で記録をとり、レポート機能で都度、集計日ごとの読み取りデータを出力しPDF等で情報を残せば足りる。基礎学習⑤では同一テーブル内に「視聴数(万回)」フィールドを準備。基礎学習⑥では別テーブルを用意し、記録日ごとに「視聴数(万回)」の累計数を書き留めていく方法をとってみる。⑥の方法では追加項目が一気に増えるため、順を追って整理していきたい。並び替えのために使用する関数DESC:降順ASC:昇順クエリを使わず、テーブルプロパティ「並べ替え」で降順設定をおこなう方法もある。[M_配信リスト].[視聴数(万回)] DESC同一テーブル(※)にて[視聴数(万回)]集計(※)マスタテーブルM_配信リスト全フィールド(列)・全レコード(行)表示SELECT M_配信リスト.*, FROM M_配信リスト【New】ORDER BY 句ORDER BY テーブル名.[フィールド名] D
0
カバー画像

Access学習メモ 7-2. SQL基礎学習②

データベースのテーブル全フィールドの内、特定フィールドを表示したいときに用いられる、標準的なデータ取得SQLです。SELECTテーブル名.[1つ目の指定フィールド名],テーブル名.[2つ目の指定フィールド名], テーブル名.[3つ目の指定フィールド名]FROM テーブル名;1. SQLの構造7-1.SQL基礎学習①と同じく、ここでもふたつの「句」が登場する。SELECT 句:SELECTM_配信リスト.[話数], M_配信リスト.[タイトル], M_配信リスト.[放送日], M_配信リスト.[Season]役割:どの列(フィールド)のデータを取得するかを指定詳細:テーブル名「M_配信リスト」前回のように全フィールドを一括取得する場合、*(アスタリスク)を用いた命令句が成立するが、一部のフィールドのみ取得する場合においては、具体的なフィールド名をカンマ(,)で区切って「どのテーブルの、どの項目か」を正確に指定する必要がある。今回はテーブル名「M_配信リスト」の内、[タイトル][放送日][Season]フィールドを表示。FROM 句:FROM M_配信リスト;役割:データの取得元となるテーブルを指定詳細:「M_配信リスト」テーブルからデータを取るように指定。末尾の ;(セミコロン)は、SQL文の終わりを示す。2. 本SQLの役割「M_配信リスト」テーブルに格納されたすべてのレコード(行)の内、指定した項目(列)を抽出して表示。補足:「フィールド名」の[](角かっこ)の意味「プログラムの命令(予約語)の内、ここからここまでが名称」と固有名詞の存在をAccessに伝えるための境界線。一
0
カバー画像

業務システムの不具合調査で最初に確認すべき5つの情報

業務システムで「保存できない」「計算結果が合わない」「特定の画面だけエラーになる」といった問題が起きると、すぐに修正箇所を探したくなります。しかし実務では、原因が見えないまま修正に入るほど、影響範囲の見落としや別不具合につながりやすくなります。最初に大切なのは、直すことではなく、何が、どの条件で、どこまで起きているのかを整理することです。問題が長引く理由の多くは、情報が断片的なまま共有されることにあります。「エラーが出る」という一言だけでは、入力値の問題なのか、権限なのか、データの状態なのか、プログラムの分岐なのか判断できません。業務システムは、画面、処理ロジック、データベース、外部ファイル、利用者権限がつながって動くため、画面だけを見ても原因がわからないことがあります。最初に確認したい情報は5つあります。1つ目はエラーメッセージです。文言だけでなく、発生時刻、画面名、操作内容も残します。2つ目は再現手順です。どの画面を開き、どの項目に何を入力し、どのボタンを押したかを順番に書きます。3つ目は発生条件です。特定の利用者だけか、特定の日付や区分だけか、同じ操作でも成功する場合があるかを確認します。4つ目は正常時との違いです。過去に成功したデータ、別の利用者、別の月度などと比較すると差分が見えます。5つ目はログ、ソースコード、DBデータです。ここで画面の現象と内部処理を突き合わせます。対応手順としては、まず現象を1枚にまとめ、再現できるかを確認します。次に正常データと異常データを比較し、入力値、権限、マスタ、履歴データの違いを見ます。そのうえでログの時刻と処理の流れを合わせ、該当す
0
カバー画像

Access学習メモ 2-7. クエリデザインが開けないとき

クエリを設計したあとテーブルの構成を変更したとき、クエリを編集したくてもデザインビューに切り替えられないことがある。シンプルなクエリであればSQLビューで直接、式を編集してみるしかない。例:「書籍マスタ」に外部キーとして「利用者マスタ」の「キャラID」が含まれ、相応の選択クエリを組んだ後、その構成が不要となり「書籍マスタ」から「キャラID」を削除したケース【修正前】SELECT 書籍マスタ.書籍ID, 書籍マスタ.書名, 書籍マスタ.[キャラID ], 利用者マスタ.[キャラ名]FROM 書籍マスタ LEFT JOIN 利用者マスタ ON 書籍マスタ.[キャラID ] = 利用者マスタ.[キャラID];【修正】SELECT 書籍マスタ.書籍ID, 書籍マスタ.書名FROM 書籍マスタ;他オブジェと結合後のテーブルを編集する際は、クエリの関係フィールドを整理してから。フォームやレポートは後出しの編集も可能だけど、クエリは全体が機能しなくなるから気を付けないといけない。今回、貸出入力簿の作成にあたり、数値のみである書籍IDのデータ型を意図的に「短いテキスト」としている。当初の設定は数値型だったが、書籍マスタ&貸出トランのリレーションの際、プロパティシートの規定値を0にしていても、フォーム読み込み時にAccessがマスタキーを0埋めし、勝手にレコードに0が書き込まれ+データ不整合によりAccessが落ちる現象が起きてしまい、かなりの時間をムダにした。データ型を「短いテキスト」にすると症状は治まった。これまで例題を解いていて、数値しかないフィールドにテキスト型が使われていて不思議だった
0
カバー画像

ROW_NUMBER()で「ユーザーごとの最新データ」を取得した話(実務SQL)

SQLで「ユーザーごとの最新データだけ取得したい」という場面があり、当初は `MAX(update_date)` を使って取得しようとしていました。ただ実際の要件としては、> 「最新日付の“行そのもの”を取得したい」というもので、単純なMAX集約では対応できず、少し悩んだポイントでした。最終的に採用した方法最終的には、`ROW_NUMBER()` を使って対応しました。SELECT *FROM (    SELECT         user_id,        update_date,        ROW_NUMBER() OVER (            PARTITION BY user_id            ORDER BY update_date DESC        ) AS rn    FROM your_table)WHERE rn = 1 ポイントこの書き方にすることで、以下が実現できます。* ユーザーごとの最新1件を取得* 重複データの整理* ランキング的な抽出* 柔軟な並び替え条件の指定実務でよく使う場面実際の業務では、以下のようなケースでよく使います。* 最新履歴の取得* 重複データの除外* ステータスごとの最新情報取得* ランキング・順位付け処理特に「最新1件だけ欲しい」という要件は意外と多く、この書き方を知っているかどうかでSQLの設計がかなり変わる印象があります。MAX()との違いで詰まりやすいポイント最初に `MAX(update_date)` で考えると、* 最新日付は取れるが行全体が取れない* JOINが必要になる* 複雑
0
カバー画像

Accessの本当の凄さとは何か

Accessで介護支援記録システムを作った理由-11 これまで長い間、介護支援記録を管理するデータベースシステムをAccessを使い開発することとした経緯等について語ってきましたが、このシリーズの最後として、別の視点から見たAccessの凄さにについて触れたいと思います。 Accessのアプリケーションとしての性格は、現状、小規模かつローカルな環境下で、高度なリレーショナルデータベースシステム(RDBMS)を開発し運用するためのソフトとして定義づけられると思います。 長年にわたりバージョンアップを重ねてきた結果、動作も安定しており、データベースを動かすスピードも高速です。しかも一ライセンス当たりの価格が安く、無料のランタイムも使えるなど、他のデータベースソフトよりもコスパの良さは抜きん出ています。 しかし、Excelに比べるととっつきにくく、マクロやVBAを使ったアプリの開発も初心者にとってハードルが高いため、様々な職場で広く普及することは妨げられてきたように思います。 視点を変えてみると、これは実に「勿体ない」の一言です。 企業が自らのオープン系システムの中に、情報通信会社に頼んでRDBMSを構築しようとする場合には、データベースを操作する言語としてSQLが一般的に使われています。 SQLは優れた言語で、RDBMS開発に欠かせないものであり、様々な仕様を持つデータベースの殆どがSQLに対応しています。 しかし、SQLはデータベースに対してしか命令できない言語のため、C言語など他のプログラミング言語の中に組み込んでシステム全体を開発しなければなりません。当然ながら、このような作
0
カバー画像

VB.NET (.VB) ポスグレに接続 SQL 実行

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load  '*********************************************************************  ' Form1 を Load した時のイベント 押した処理  '*********************************************************************         ' ポスグレ接続         Dim Con As NpgsqlConnection = Nothing         ' クラス ClassDB から 接続文字列を取得 (接続文字列を入れればOK)         Con = New NpgsqlConnection(ClassDB.ConString)         Con.Open()         ' コマンド         Dim Cmd As NpgsqlCommand = New NpgsqlCommand("select id, name, ranking,group_name from countries;", Con) ' SQL の結果を格納する         Dim rs As NpgsqlDataReader ' SQL 実行         rs = Cmd.ExecuteReader         rs.Read()         txthyouji.Text = rs
0
カバー画像

Django で利用する SQL データベースの管理

Django で利用する SQL データベースの管理以前の投稿で、Django は標準でアプリの管理機能をサポートしているという事を紹介しました。この記事では、もう少し詳しく管理機能について紹介しています。データベースの管理や参照バックエンドを含めた Web サービスや Web アプリを開発する場合、データベースを利用するケースは多いと思います。Firebase を利用する場合は、Firebase コンソールを使うとデータベースの状態を簡単に参照できるので便利です。Django の場合は、SQL データベースを利用します。PHP で SQL のデータベースを管理する場合は、「phpmyadmin」が有名です。特に WordPress を利用する場合、データベースを直接管理する場合には便利なアプリです。phpmyadimin 自体は SQL データベースの管理なので、Django を利用する場合でも利用は可能ですが、別に Web サーバーを動かす必要もありますし、既に設定をされていない場合にはちょっと不便です。Django が標準でサポートしているデータベースは「SQLite」になります。このデータベースを利用する場合は、既に紹介している「SQLiteBrowser」を使えば必要な機能は揃っています。あとは、SQL データベースが提供するコマンドラインベースのアクセスを利用すれば、大抵のデータベースは直接アクセスが可能です。しかし、コマンドラインなので、慣れないと使いづらいのと、毎回コマンドをタイプしないといけないので面倒です。Django の管理アプリDjango は、フレーム
0
カバー画像

Access学習メモ 7-13. SQL基礎学習⑬

数値フィールド「超え/以上/未満/以下」    &昇順/降順の並べ替え☆ポイント※以上/以下:≧や≦の1文字記号は使えない。記入順は=を最後とする。※昇順・降順:昇順はASC抜きでも並べ替え可能。【超え】視聴回数が11万回超えの配信を昇順(12~TOP)で並べるSELECTM_配信リスト.[話数],M_配信リスト.[タイトル], M_配信リスト.[放送日], M_配信リスト.[Season],T_視聴.[視聴数(万回)]FROMM_配信リストINNER JOINT_視聴ONM_配信リスト.[話数] = T_視聴.[話数]WHERET_視聴.[視聴数(万回)]>11ORDER BYT_視聴.[視聴数(万回)] ASC;視聴回数が11万回超えの配信を降順(TOP~12)で並べるSELECTM_配信リスト.[話数],M_配信リスト.[タイトル], M_配信リスト.[放送日], M_配信リスト.[Season],T_視聴.[視聴数(万回)]FROMM_配信リストINNER JOINT_視聴ONM_配信リスト.[話数] = T_視聴.[話数]WHERET_視聴.[視聴数(万回)]>11ORDER BYT_視聴.[視聴数(万回)] DESC;【以上】視聴回数が11万回以上の配信を昇順(11~TOP)で並べるSELECTM_配信リスト.[話数],M_配信リスト.[タイトル], M_配信リスト.[放送日], M_配信リスト.[Season],T_視聴.[視聴数(万回)]FROMM_配信リストINNER JOINT_視聴ONM_配信リスト.[話数] = T_視聴.[話数]WHERET
0
カバー画像

Access学習メモ 7-11. SQL基礎学習⑪

INNER JOIN句を用いた検算方法(請求書)管理職の代理で、請求書の内容チェック~決裁をおこなう必要が生じた。私の人生にAccessは必要ない...と断言して早1ヶ月。電卓を叩く工程だけでもAccessに任せられないものか、画面と睨めっこ中。方法を調べる内、これまで取り組んできたINNER JOINの学習が活かせる可能性が生じた。別々のオブジェクト(テーブルやクエリ)に存在する同一データのレコード(行)を探し当て各オブジェクトの列(フィールド)をあたかもひとつのオブジェクト上のデータのように繋ぎ合わせることができる。ココナラのユーザー登録を例に挙げると...(会員IDを各テーブルの仲介役と仮定)テーブル1: ココナラ登録会員リストテーブル2: ココナラブログ投稿歴のある会員リストテーブル3: ココナラサービス出品歴のある会員リストテーブル4: ココナラサービス購入歴のある会員リストそれぞれのテーブルに、各条件を満たす会員IDが格納された状況下において「ココナラに会員登録している」かつ「ココナラブログを1度でも書いたことがある」かつ「ココナラで何らかの商品を出品したことがある」かつ「ココナラで何らかの商品を購入したことがある」INNER JOIN句を用いたSQLにより命令を与えることで、テーブル別に分類された上記条件をすべて満たす会員データを抽出することも可能。INNER JOIN句のこうした働きを応用することで、日頃は別々に運用されているテーブル同士またはテーブルをもとに作成されたクエリ同士を呼び集め一定の条件下における演算にも展開できる・・・はず。社内情報を社外に持ち出す
0
カバー画像

Access学習メモ 7-9. SQL基礎学習⑨

右外部結合(RIGHT JOIN)SQLをつくらないといけないパターン複数テーブルを用いてSQLを構成する際に用いる結合(JOIN)方法には、内部結合と(左/右)外部結合がある。【内部結合(INNER JOIN)】結合相手となるレコードが存在しない(またはNullである)場合結合を中止しお互いのテーブル(レコード)は非表示となる。【外部結合(LEFT JOIN/RIGHT JOIN)】結合先テーブルに一致するレコードがなくても(Nullでも)お互いのテーブル(レコード)を必ず表示する。【注意点】内部結合/外部結合の対応差によって影響を受けるのは「レコード(行)が表示されるか、されないか」であり設計したフィールド(レコードの見出し)自体はデータの有無に応じて消失することはない。【今回のテーマ】右外部結合(RIGHT JOIN)の必要性クエリのデザインビュー画面でテーブル間に結合線を引きJOIN(結合)させる際テーブル置き順、或いは結合線(矢印)の引く際のドラッグの方向によっては画面上の配置と、Accessが認識する「左右」が逆転するケースがある。Accessの「結合プロパティ」における左右は「画面上の見た目の位置」ではなく「結合線を引いた順番やAccess側の内部順序」で決まることがあり、「左外部結合にしたいから2番(左の全レコード)を選ぼう」と機械的に選ぶと失敗する。外部結合を選ぶ場合、左右どちらを主フィールドとするかは画面上の左右ではなく、ダイアログ内の具体的な説明文で判断しないと危険!第1段階のJOIN(結合プロパティ)上から2番め: M_登場人物の全レコードを表示する設定
0
カバー画像

7-8. Access学習メモ SQL基礎学習⑧

左外部結合(LEFT JOIN)SQLをつくる複数テーブルを用いてSQLを構成する際に用いる結合(JOIN)方法には、内部結合と(左/右)外部結合がある。【内部結合(INNER JOIN)】結合相手となるレコードが存在しない(またはNullである)場合結合を中止しお互いのテーブル(レコード)は非表示となる。【外部結合(LEFT JOIN/RIGHT JOIN)】結合先テーブルに一致するレコードがなくても(Nullでも)お互いのテーブル(レコード)を必ず表示する。【注意点】内部結合/外部結合の対応差によって影響を受けるのは「レコード(行)が表示されるか、されないか」であり設計したフィールド(レコードの見出し)自体はデータの有無に応じて消失することはない。【今回のテーマ】現時点における全放送話リストの記録状況を出力し、未記入や条件不適合のレコード情報をチェックする。(「M_配信リスト」の話数に「M_登場人物」、  「M_登場人物」のゴジNoに「M_名簿」を繋ぎ、リストを見える化。)【左外部結合(LEFT JOIN)】【例】それぞれの放送話に登場するキャラクター名を記録していく。ただし、114話のうち、「M_登場人物」にデータがあるのは70話まで。また、71話めのゴジNoとして、「ココナラ」とダミー情報が混在。もちろん、「M_名簿」にはそのようなキャラクター登録はない。左外部結合の結果、データはどのように表示されるか?SELECT  M_配信リスト.[話数],   M_配信リスト.[タイトル],   M_登場人物.[ゴジNo],   M_名簿.[キャラクター名]FROM  (M_配信
0
カバー画像

Access学習メモ 7-7. SQL基礎学習⑦

内部結合(INNER JOIN)SQLをつくる複数テーブルを用いてSQLを構成する際に必要な結合(JOIN)方法には、内部結合と(左/右)外部結合がある。【内部結合(INNER JOIN)】結合相手となるレコードが存在しない(またはNullである)場合結合を中止しお互いのテーブル(レコード)は非表示となる。【外部結合(LEFT JOIN/RIGHT JOIN)】結合先テーブルに一致するレコードがなくても(Nullでも)お互いのテーブル(レコード)は必ず表示される。【注意点】内部結合/外部結合の対応差によって影響を受けるのは「レコード(行)が表示されるか、されないか」であり設計したフィールド(レコードの見出し)自体はデータの有無に応じて消失することはない。【今回のテーマ】それぞれの放送話に登場するキャラクター名を記録していく。すでにほかの記事で作成した「M_名簿」マスタテーブルを使用。各放送話への出演記録は別のマスタテーブルで管理をおこなう。【New】マスタテーブル「M_登場人物」を新設。114話分のレコードを設けたが、1話1レコードの構成。それぞれの放送話には複数名のキャラクターが登場する。そこで、複数の「ゴジNo」フィールドを試みたがAccessに拒否られる。1話に複数の登場人物を記録するためには、レコードを増やすしかない。当たり前のことかもしれないが、こういうところで躓くのだ。そこで、レコードを増やすための作業にかかる。2行目に新しいレコードを追加しようとしても114行目の下(最下段)に流されてしまう1話から順にレコード増やそうにも新規作成は最終行とかこういうとこホント、融
0
カバー画像

日時

日付の値年CAST(strftime("%Y", 日付) AS INTEGER)月CAST(strftime("%m", 日付) AS INTEGER)日CAST(strftime("%d", 日付) AS INTEGER)計算n日前date(日付, '-n day')列のデフォルト値現在時刻 (TEXTとして格納)DEFAULT CURRENT_TIMESTAMP
0
カバー画像

サブクエリ

テーブルSELECT ...FROM (サブクエリ)列SELECT ...FROM ...WHERE ... IN (サブクエリ)
0
カバー画像

集計

グループ化SELECT A列, ...FROM テーブルGROUP BY A列合計SUM(列)最大MAX(列)最小MIN(列)並べ替え集計した列で並べ替えるSELECT A列, SUM(B列) AS 別名FROM テーブルGROUP BY A列OEDER BY 別名集計してから絞り込むSELECT A列, SUM(B列) AS 別名FROM テーブルGROUP BY A列HAVING 条件
0
カバー画像

Access学習メモ 2-8. AccessでココナラブログNote②

ココナラでは、自身のブログの閲覧数をマイページ「サービス・ブログ分析」画面から確認できます。折れ線グラフで表示もしてくれる。便利デスネ~ただし、記録はマイページに訪問した当日の90日前まで。8月1日(土)に確認できたのは、5月3日(日)の閲覧数までだった。8月3日(月)に確認できるのは、5月5日(火)の閲覧数まで。91日後になると今日の情報は消えてしまうということになる。累計閲覧数を毎日1レコードずつ保存し、たとえば翌年同日の訪問数と本日分を比較し増減の動向など追跡できる。その気になれば、「本日から遡った90日間の閲覧数の増減」を日々集計することもできる。「本日から遡って90日間の閲覧数の増減」を算出するための計算式:増減: [90日累計閲覧数]-Nz(DMax("[90日累計閲覧数]","T_閲覧記録","[記録日]=#" & Format([記録日]-1,"yyyy/mm/dd") & "#"),0)[90日累計閲覧数]:フィールド名は[]で包んで、固有名詞であることをAccessに伝えるFormat([記録日]-1,"yyyy/mm/dd"):今日の記録日から 1日引いて「前日の日付」を作る"[記録日]=#2026/08/01#":「前日の日付と一致するレコードを探せ」という検索条件を文字列で作る日付検索の際は必ず#2026/08/03#  のように日付を # で囲むDMax("[90日累計閲覧数]","T_閲覧記録", 条件式):前日のレコードの「90日累計閲覧数」を取り出す(1日1行なら「前日の値そのもの」になる)Nz(前日の値, 0):前日のレコード
0
カバー画像

順位

昇順RANK() OVER (ORDER BY 列 ASC)降順RANK() OVER (ORDER BY 列 DESC)指定した列の値ごとに順位付けするA列の値ごとにB列の値で順位付けRANK() OVER (  PARTITION BY A列  ORDER BY B列 ASC)
0
カバー画像

その手作業、まだ続けますか?——エンジニアが自作プログラムで事務作業を“消した”話

「誰かが毎日やっている」という違和感どの職場にも、当たり前のように存在している「毎日のルーティン作業」があります。「各拠点から送られてくる数字を集計する」「決まった形式のレポートを毎朝作成してメールする」一回あたりは5〜10分程度の作業かもしれません。しかし、それが365日積み重なり、仮に複数の担当者が行っているとしたら、それは年間でどれほどの損失になるでしょうか。私はかつて、こうした「人間がやらなくてもいい苦労」を技術で消し去ることに没頭していました。「現場の痛み」をコードに変える私が社内SEとして現場を支えていた頃、大切にしていたのは最新のIT用語を並べることではなく、目の前の担当者の「手が止まっている時間」をなくすことでした。例えば、毎日の帳票作成。以前は、データベースから手動でデータを抽出し、Excelに貼り付け、加工して、ようやく関係者に送信していました。「これ、自動でできるんじゃないか?」そう思い、PythonやSQLを独学し、VBAと組み合わせて独自のプログラムを組みました。結果、ボタン一つ……いや、ボタンすら押さなくても、決まった時間にシステムが勝手にデータを集計し、整理されたレポートが関係者のメールボックスに届く仕組みが出来上がりました。「自動化」の本当の価値は、時間の節約だけではない事務作業が自動化されると、職場には二つの大きな変化が起きます。「ミス」というストレスからの解放人間が手作業で行う以上、コピー&ペーストのミスや入力漏れはゼロにはできません。プログラムによる自動化は、精度を100%に引き上げます。「考える仕事」に集中できる単純作業に追われていた担当
0
カバー画像

Django で利用するデータベース

Django で利用するデータベースDjango のフレームワークを利用して Web 開発をする場合は、SQL のデータベースを使うことになります。 SQL のデータベースは Firebase のデータベースとはちょっと違います。正確な言い方をすれば、Firebase のデータベースは広く活用されている、SQL などのリレーショナルデータベース(RDB)とは違うと言うことです。これまで、Firebase を中心にお届けしてきたので、その違いについてまとめて見ました。  Django は SQL データベースが基本Django で利用するデータベースは SQL データベースが基本です。標準では、SQLite を利用する設定になっています。SQLite を利用する場合は、特別な設定は必要ありません。そのまま、データベースの機能が利用可能です。その他にもメジャーな SQL のデータベースを利用可能です。Django の公式ページのドキュメントを見ると、公式にサポートされているデータベースは:* PostgreSQL* MariaDB* MySQL* Oracle* SQLite です。この他に身もサードパーティがサポートしているデータベースに* CockroachDB* FIrebird* Microsoft SQL Server  などがあります。利用するデータベースは、プロジェクトフォルダにある、settings.py で指定すれば利用可能です。標準設定では以下のようになっていますが、これを書き換えます。DATABASES = {    'default': {        '
0
カバー画像

カウント

NULLを含めたテーブルの行数COUNT(*)NULL以外の値COUNT(列)
0
カバー画像

Access学習メモ 3-1. カッコつけないでください

学習メモ2-1.の再現ウィザード機能でフォームを設計する際、フィールド名にカッコ()が用いられていると処理が中断してしまう。エイリアスにてカッコなしの名称に置き換えると直ちにウィザードが機能する様子を伺うに、カッコが原因。
0
カバー画像

集計

合計SUM(列)行数 COUNT(*)  NULLを無視 COUNT(列)
0
カバー画像

数値

データ型整数INTEGER小数REAL小数に変換CAST(値 AS REAL)剰余計算値1 % 値2
0
カバー画像

条件分岐

if CASE   WHEN 条件式1 THEN 値1  ...  ELSE その他の値ENDswitch CASE 列   WHEN 値① THEN 値1  ELSE その他の値END
0
カバー画像

処理の順序

WHERE と HAVING ①WHERE で行を絞り込む ②グループ化して集計③HAVING で行を絞り込むJOIN ON ①左テーブル をSELECT ②ON で結合する行を 右テーブル から探す
0
カバー画像

Django とテーブル一覧の表示

Django とテーブル一覧の表示Django で SQL のデータベースのテーブルは「models.py」に Python のクラスを作ることで簡単に定義できました。実際のアプリケーションでは、テーブルにデータを保存して、そのデータの処理が必要です。この記事では、簡単なデータベースのテーブルのアクセスについてまとめてみました。テーブルのエントリーの名前は?Django では、アプリのフォルダーの「models.py」に Python のクラスを作成して、そのクラスを「admin.py」に登録(register)すると、管理用アプリからアクセスできるようになります。例えば、「Customer」というクラスを作成します。class Customer(models.Model):    name = models.CharField(max_length=50, help_text="The name of a customer.")  これを、「admin.py」に登録するとfrom django.contrib import adminfrom srd7.models import Customer# Register your models here.admin.site.register(Customer)「127.0.0.1:8000/admin」にアクセスして、作成したスーパーユーザー(管理用のユーザー)でログインすると、このテーブルのデータの一覧の表示やデータの追加、修正、削除ができるようになります。実際に顧客(カスタマ)を追加してみます。「add」をクリックして顧客
0
カバー画像

【PythonのORM】SQLAlchemyの基本的な使い方!

# はじめにSQLAlchemy とは、Python で使用できる ORM です。Python コミュニティにおける最も使用されている ORM ライブラリの一つとなっているので、使用する機会も多いかと思います。そんな SQLAlchemy の基本的な使い方をまとめてみました。まずは、ここから基本的な操作を学び、応用的なものについては、随時調べながら実装すると良いかと思います。# 使い方## インストール```$ pip install sqlalchemy```## モデルの作成以下のようにモデルを定義することで実行のタイミングでテーブルが生成されます。```pythonengine = sqlalchemy.create_engine('sqlite:///db.sqlite3', echo=True)Base = declarative_base()class Account(Base):__tablename__ = 'account'email = Column(String, primary_key=True)password = Column(String)Base.metadata.create_all(bind=engine)```## 基本操作### Insertデータを追加する際は、まず、session を生成します。その後、作成したモデルにデータを入力し、session に対して追加します。追加したデータを commit でデータベースへ反映して、session を閉じます。```pythondb_session = sessionmaker(bind=e
0
カバー画像

SQL

SQLSQL was developed to use relational database. It is standardized by ISO andJIS and is widely used.You can use SQL (Structured Query Language) to create, manipulate, update,and delete tables. SQL consists of DDL (Data Definition Language),DCL (Data Control Language), and DML (Data Manipulation Language).DCL may be included in DDL.■Define a tableThe table has a two-dimensional structure consisting of rows and columns.It stores the actual data. There can be multiple tables, but the table namesmust be different.(To identify the table)For example, if you define a "Grade" table consisting of "Student_Number","Name", "Language", "Math", and "Class", SQL is as bellows.CREATE TABLE Grade(Student_N
0
45 件中 1 - 45