このすみノート

Webエンジニアが技術や趣味を書くブログです。

データベース

内部構造から学ぶPostgreSQL 設計/計画編 (5〜6章)

内部構造から学ぶPostgreSQL 設計/計画編 (5〜6章)の読書メモです。 第5章 テーブル設計 文字型 文字型は基本的にはtext型(可変長、データサイズ上限指定なし)を用いることが推奨される text型は最大で1GB まで格納することが可能 varchar型はtext型とほ…

Oracleデータベースを採用する場合のSQLコーディング規約について

業務でOracleデータベースを使う必要があり、しばらくOracleを試用していたのですが、Oracleには特有のクセがあることがわかりました。 そこで、Oracleデータベースの特性にあったSQLコーディング規約を採用することにしました。 SQLコーディング規約(Oracl…

Japan Oracle Developersの、Oracle Database入門がわりといい

Oracleを使うときに、概要を掴むための資料を探していたのですが、Japan Oracle DevelopersのOracle Database入門がわりといいです。 www.youtube.com なぜいいと思ったのか Oracle社の人が解説してくれる。 概要にとどまらず、データベース設定からアーキテ…

Oracle DBのテーブル名は、ダブルクォーテーションの有無によって挙動が違う

仕事でOracleを使っているのですが、ダブルクォーテーション("")の有無による挙動差にハマったのでメモします。 CREATE TABLE sample_table( col1 number, col2 number ) -- これが失敗する SELECT * FROM "sample_table" CREATE TABLEのやり方に依存する …

Oracle Databaseでドットを2つ書くパターンの理由を調査した

業務でOracleを使うことになるかもしれないため、検証目的でOracleの開発環境構築を進めている。 【Docker】Oracleを無料で簡単にローカルに構築する https://zenn.dev/re24_1986/articles/29430f2f8b4b46 結論から言えば、まんましろ氏の記事の通りに進めて…

DBのデッドロック問題に遭遇した

仕事でWEBアプリケーションの開発に携わっております。 システム自体は私が携わっていない時代に作られたものなのですが、最近利用者数が増えてきて、DBのデッドロック問題が発生するようになりました。 発生箇所の特定 実際のエラーログを集計したところ、…

SQLのNULL値を比較してしまい、想定した値が更新されず失敗してしまった

プロジェクトで最近SQLをいろいろ触る機会がありまして、その時にフラグを更新するSQLに遭遇しました。 イメージとしてはこんな感じ。 UPDATE flag = 1, updated_at = NOW() WHERE id = 2; なお、このflagの型はSMALLINTでした。 そして、これだと元のフラグ…

DDL・DML・DCL - SQLの分類を学習する

SQLの分類について学習したので、メモを残します。 普段何気なくデータベースを使っているため、DDL以外の用語はあまり意識したことがないかもしれません。 DDL DDLはData Definition Languageの略称です。 代表例として4つ。 CREATE: テーブルやビューの作…