okinawa

IT勉強メモ

2023-01-01から1年間の記事一覧

LeetCodeその2:ValidAnagram

自分の解答1 自分の解答2 模範解答 ちょっとずるいやつ 自分の解答1 2つの文字がアナグラムになっているかを判定する問題。 Accept public boolean isAnagram(String s, String t) { // 文字数が違う場合はfalse if (s.length() != t.length()) { return fal…

HashMapについてのメモ

HashMapはキーと値のセットを要素として持つデータ構造。 参考 検索がO(1)になる理由 アドレス決定の例 参考 わかりやすいのでこっち見たほうが早い↓ JavaにおけるHashMapの仕組みを深堀り - Qiita 検索がO(1)になる理由 HashMapは要素を格納するメモリアド…

LeetCodeその1:ContainDuplicate

NeetCodeなるものの存在を知ってLeetCodeを始めました。 解説動画がわかりやすくてとても良いです。 英語なので大変ですが。。。 neetcode.io 自分の解答 模範解答 学び 学び2 自分の解答 何も考えずに2重ループで重複チェック。 タイムオーバーでした。 //…

Javaのコレクション一覧と計算量

各コレクションの特徴 List Map Set コレクションの計算量 計算量の目安 各コレクションの特徴 ・参考 コレクションクラスの比較 - Javaちょこっとリファレンス xxxxxxxxxxx ArrayList LinkedList HashMap LinkedHashMap TreeMap HashSet TreeSet インタフェース Li…

バッファプールとログバッファ

バッファプールとログバッファ SQLServerでのバッファプールの確認方法 バッファプールとログバッファ バッファプール:ストレージ(HDD)にあるRDBのデータの一部を保持している。高速化のため。 ログバッファ:更新処理のときに更新情報をログバッファ上に…

統計情報とは

統計情報とは カーディナリティの補足 ヒスグラムの補足 参考書籍 統計情報とは 実行計画を練るためのネタ元。 各テーブルのレコード数 各テーブルの列数と列のサイズ 列値のカーディナリティ(値の個数) 列値のデータ分布(どの値がいくつあるかのヒストグラ…

SQLチューニングの一覧

早い段階で取得するデータ量を減らす インデックスが使われなくなる時 インデックス列を加工する 否定形とOR 暗黙の型変換 複合インデックスは列の順番に注意 サブクエリを減らす 参考書籍 早い段階で取得するデータ量を減らす Where条件が複数ある場合、抽…

HAVING句をマスターすると集合志向が理解できるらしい

WHEREとHAVINGで対比するとわかりやすい WHERE HAVING 参考書籍 WHEREとHAVINGで対比するとわかりやすい WHERE:1行の特徴を調べる HAVING:集合の特徴を調べる 例:下記テーブルから算数80点以上&国語80点以上の生徒を調べたい 答えはstudentId 100 200。 …

【SQL】テーブル同士の比較

テーブル同士の比較 テーブル同士が等しいか異なるかを集合演算子で華麗に比較する方法。 もしテーブルAとテーブルBが完全に等しければ、UNIONの結果とINTERSECTの結果も等しい。 もしテーブルAとテーブルBが異なれば、UNIONの方がINTERSECTより必ず大きくな…

【SQL】テーブル結合で行を増殖させないポイント

テーブル結合で行を増殖させないポイント 1対1で結合 1対多で結合 多対多で結合 DISTINCT・GROUP BYで増殖対策 テーブル結合で行を増殖させないポイント ON句の条件を 1対1 1対多 にする。 1対1で結合 ↑元テーブル SELECT t4.id, t5.id FROM table4 t4 le…

【SQL】3値論理とは

3値論理 普通は TRUE・FALSE の2つ。 SQLは TRUE・FALSE・UNKNOWNの3つ。 いつUNKNOWNになるの? NULLが絡むとUNKNOWNになる。 WHERE A = NULL -- UNKNOWNになる なのでIS NULLやIS NOT NULLがある。 WHERE A IS NULL OR A IS NOT NULL NOT AND ORでUNKNO…

集合指向言語と手続き型言語の違い

集合指向言語と手続き型言語 SQLとJavaで同じことをやってみる SQL Java 集合指向言語の思想 余談:MAX関数の内部処理 関連記事 参考 見返す用のかんたんなメモとして。 集合指向言語と手続き型言語 集合指向:まとめて処理 手続き型:1個ずつ処理 JavaのSt…

SQLの集合演算をテーブル結合でやってみる

SQLの集合演算 和集合:UNION / UNION ALL 差集合:EXCEPT 積集合:INTERSECT 関係除算を自力でやる 余りのある関係除算 厳密な関係除算 参考 集合演算子を使うよりテーブル結合のほうが処理が速いこともあるらしい。 SQLの集合演算 和集合:UNION / UNION A…

【SQL】特性関数とは

SQLの特性関数について 特性関数とは、入力項がある集合に含まれるかどうかを調べるための関数で、含まれるなら 1 を、含まれないなら 0 を返すものです²。例えば、次のようなテーブルがあるとします。 id name gender 1 A M 2 B F 3 C M このテーブルからge…

GROUP BYってなんなの?

Group Byとは 部分集合に分けるのがGroup By。 表示結果をみると行が減るから行が圧縮されるような印象を持っていたがそんなことはない。 元テーブル ・実行SQL select tenpo_cd from Table1 group by tenpo_cd 実行結果 イメージ図↓ Group By後 実行結果だ…

GROUPING演算子とWINDOW関数のフレーム

あまりちゃんと理解できていない。 自分用のメモとして。 GROUPING演算子 ROLLUP:小計、合計を出力 CUBE:3次元以上のデータ。よくわからなかった。→参考:https://it-trend.jp/bi/article/cube 元テーブル select tenpo_cd, bunrui, sum(value) from Table1…

SQL CASE式について

CASE式の書ける所 CASE式はELSE句を必ず書くべし! CASE式の書ける所 式なので「1+1」が書けるところならどこでもOK。 CASE式はELSE句を必ず書くべし! ELSE句を省略するとNULLが入る。 省略すると思わぬところでNULLが入るバグに繋がるので、ELSEを書く癖を…

SQL サブクエリについてのメモ

サブクエリの実行順序 スカラ・サブクエリ 相関サブクエリ 相関サブクエリの実行順序イメージ 相関サブクエリをテーブル結合で書き換える 参考 サブクエリの実行順序 サブクエリは内側から先に実行されるよ。 スカラ・サブクエリ スカラは「単一の」という意…

Group By句にないカラムを表示させたい

自己結合 やり方 参考記事 番外編(集約関数の中にCASE式) 自己結合 ・元テーブル Table1 例:店舗ごとの金額合計を出しつつ、他のカラムも表示する。 select * from Table1 t1 left join ( select tenpo_cd, sum(value) AS 'tenpo_total' from Table1 grou…

UNIONの使い所

参考記事 UNIONのイメージ UNIONの使い所 FULL OUTER JOINの使い所 参考記事 note.com UNIONのイメージ UNIONは縦にテーブル結合。 JOINは横にテーブル結合。 というイメージ。 UNIONの使い所 異なるテーブルの値を集計したいとき fruits table Meat table …

DB勉強メモ

インデックスって何なの? 参考記事 インデックスのイメージ クラスター化インデックス 非クラスター化インデックス エクステント(データ管理の単位) Viewって何なの? お勉強の内容を記憶に残すためにメモをば。 インデックスって何なの? 参考記事 とて…