2024-04-29から1日間の記事一覧

SQLの暗黙的な型変換

暗黙的な型変換 暗黙的な型変換とは、SQL側の忖度である。 通常プログラミングにおいて二つ以上のデータの比較、代入等が発生した場合、その二つが異なるデータ型であればエラーとなってしまう。 例) select max(to_date("2021-01-14") , 10) from dual > …

すぐ分かる!where句の複数条件追加方法【SQL基礎】

すぐ分かる!SQL where句の複数条件指定。 andを用いてより厳しい条件をつける andを重ねていくことでselectの実行結果は絞られていきます。 例えば次のクエリであれば、「誕生日が1998年1月14日以降の人」 という条件ですが、 select e.salary, e.name from…

Javaからplsqlを呼び出す【PLSQL入門】

Javaからplsqlを呼び出す方法 Cと同様に、Oracleはデータベースに接続するためのさまざまなアプローチを提供します。 そもそもSQLとJavaは高愛称です。 なぜなら、PLSQLもJavaも通常Oracle社が作り出したものだからです。 より一般的でJava中心のアプローチ…

SQL 入門

このサイトはSQLを初めて触る人のための入門サイトです。 内容は多岐にわたります。 SQLの用語集や通常のSQL文でのWHERE句の使用方法からCREATE句を使用したテーブル作成を取り扱い。Oracleで使用可能な標準関数。データベース設計のアンチパターンなど入門…

マジックビーンズ【SQLアンチパターン】

MVCのM(モデル)を単純化する ソフトウェア開発の80%は知的作業であり、そのほとんどが創造的な作業です。 この知的作業を支援してくれるのが、デザインパターンなどの規約です。 Singleton、Facade、Factoryなどのパターン名を使うことで、チームのメンバー…

リーダブルパスワード【SQLアンチパターン】

SQLでパスワードを平文で格納してはいけない データベース設計における重大なセキュリティリスクのうちの一つに、SQLでパスワードを平文で格納するというものがあります。 これは重大なセキュリティ欠陥であり、権限のない人に特権的なアクセスを与えるセキ…

スパゲッティ・クエリ【SQLアンチパターンまとめ】

全ての結果を一つのクエリで出そうとしてはいけない 電話で幹部と話している上司が、いきなりあなたの机に来てこう言いました。 「SQLを使って次の4つの値を調べて欲しい。開発者一人当たりの平均バグ修正数、修正したバグの中で顧客から報告された数、バグ…

プアマンズ・サーチエンジン【SQLアンチパターン】

副題 問題にぶつかると「正規表現を使えばいい」という人がいる。 そして問題を二つ抱えることになる。 事例:検索エンジンの必要性 webサイトで記事の数が膨大になるにつれて、検索機能の必要性が明らかになる。 分類して設置しておくことも一つの解決策だが…

ランダムセレクションとは【SQL アンチパターン】

ケース(ランダムセレクション) あなたはweb広告を表示するアプリケーションの担当者だ。 広告は適当なテーブルからランダムに選ばれる仕組みだ。 ある日webサイトが日に日に重くなるインシデントが起票され、その原因があなたが担当するアプリケーションにあ…

アンビギュアスグループ【SQLアンチパターン】

概要(良いクエリ) ある程度SQLを学んだプログラマーは、クエリでGroup Byと集約関数(MIN,MAX,SUM,COUNTなど)を巧みに用いて集計することを覚える。 少量のコードで複雑なレポートを作成できる強力な機能である。 例えば「product_idごとにレポート日付の最大…

ショットガン・インデックス【SQLアンチパターン】

インデックスについて インデックスとは、データの値と格納場所を結びつけるデータベースオブジェクト。 正しく使うとデータベースの検索の高速化が可能になる。 作成例 create table staff( id int , name varchar(10), description varchar(400), PRIMARY …

ファントムファイル【SQLアンチパターンまとめ】

データベースで画像を保存するべき理由と方法 この記事では外部リソースに画像を保存する方法ではなく、データベースに画像を保存する方法のメリットとやり方を紹介する。 まず簡単に結論を述べると、データベースは外部リソースを管理することはできない。 …

マルチカラムアトリビュート【SQLアンチパターンまとめ】

マルチカラムアトリビュート 複数列属性を持つようなアンチデザインパターンのこと。 SQLテーブルに対して列に対して年度や携帯電話番号など、これから増える可能性のあるものをカラムとして設定すると厄介な事象が発生します; 複数の値を持つ属性を格納す…

ポリモーフィック【SQLアンチパターンまとめ】

ポリモーフィックなテーブルを作成したい。 あなたはバグレポートを管理するシステムを作成しようとしています。 そしてこのバグレポート管理システムに新たなる要件が届きました。 その要件とは「バグについてのコメントを書き込めるような機能が欲しい」と…

エンティティ・アトリビュート・バリュー【SQLアンチパターンまとめ】

この記事は? SQLアンチパターンの備忘録です。 特に今回は5章の「エンティティ アトリビュート バリュー」 と呼ばれる手法の悪い点と改善策をまとめました。 エンティティ アトリビュート バリュー とは あなたはバグレポートを管理するシステムを作成しよ…

外部キー制約【SQLアンチパターンまとめ】

外部キー制約とは何か? 外部キー制約とは、SQLのテーブルに課す制約の一種。 外部キー制約を設定したカラムは、設定時に指定した親テーブルの特定のカラムにデータが存在するかどうかを、CRUDが発生するたびにチェックしてくれる 制約を設定する際には 対象…

IDリクワイアド【SQLアンチパターンまとめ】

SQLアンチパターンの備忘録です。 主キーは適切に選ばなければえらい目にあう 例)ジョンはwebアプリケーションを管理するエンジニアだ。 このwebアプリケーションは記事をタグ付けして管理することがウリであり、記事の内容が格納されているAriticleテーブ…

Kotlin Junit でユニットテストする方法

ソフトウェアテストとは何か? ユニットテスト 結合テスト UIテスト クラスやメソッドを対象とした最も小さいテスト:ユニットテスト ユニットテストとは? テストクラスとテストメソッド テストの作り方 コードの説明 ソフトウェアテストでは期待通りの振る…

Kotlin 解説ドキュメント

このサイトではkotlinを学習しようとしている方へ、kotlinの概要と文法を解説するサイトです。 Kotlin概要 kotlinのメリットとデメリット とりあえず試したい方へ Kotlinを動かすための開発環境 言語のビジュアルが見たい方へ 参考サイト Kotlinの人気急上昇…