katapedia
  • README
  • doc
    • Ansible
    • Assert
    • Astah
    • Autohotkey
    • CI
    • C_Cpp
    • CentOS6x系でhttp認証に失敗する
    • Chef
    • Clipboard
    • コーディング
    • Configure
    • Console2_NYAOS
    • Debian系RedHat系の違い
    • DesignDoc目次サンプル
    • Docker
    • Doxygenコメント規約
    • Eclipse
    • Excel
    • FAQ
    • Footer
    • Git
    • GitBucket
    • GitBucketとJenkins連携
    • GitBucketとRocketChat連携
    • GitHub
    • GitLab
    • Gitで大量のファイルの中から必要ファイルのみをaddする方法
    • GitのGUI比較
    • Gitのリポジトリがでかくなったときの削減の昔のやり方
    • Gitワークフロー
    • Go
    • Googletest
    • Gradle
    • Grafana
    • Groovy
    • Haroopad
    • Haskell
    • Htmlpdfに直リンクする(ダウンロードしない)方法
    • IT業界
    • Java
    • Javascript
    • Javascriptrライブラリ・フレームワーク一覧
    • Jenkins
    • JetBrains_IDE
    • Linux
    • Linux Command
    • Linux Distribution
    • Makefile
    • Maven
    • MicrosoftProject
    • NoSQL
    • Omniauthによるアカウント統合
    • Outlook
    • PHP
    • Prometheus_Loki
    • Python
    • RDB
    • Redmine
    • RedmineDドライブへの保存
    • Redmineアップデート
    • Redmineプラグイン
    • Redmineメール通知
    • Redmine文字化け
    • Ruby
    • Rust
    • R言語
    • SVN
    • Sidebar
    • Solaris
    • Staticまとめ
    • Terraform
    • Thinkpad
    • Tmux
    • ToDoリスト
    • UML
    • Vagrant
    • Vim/Neovim
    • VirtualBox
    • Visio
    • Webアプリケーション
    • Webサーバ
    • Webブラウザ
    • Webブラウジング
    • Webページ備忘録
    • Windows
    • Word
    • Zabbix
    • Zsh
    • C#
    • dotfiles
    • html_css
    • Lua
    • sonarqube
    • terminal
    • tweetまとめ
    • xrdp
    • お預り証サンプル
    • その他Webサービス
    • その他ツール
    • よく使う英語
    • アジェンダサンプル
    • アジャイル宣言
    • アンチパターン
    • インシデント
    • エディタ・IDE
    • エンジニアリングスキル
    • オンプレミスサーバ管理
    • オープンソースライセンス
    • キックオフミーティング
    • コミットメッセージでよく使う英語
    • サーバデータ移行
    • サーバ環境構築
    • シェルスクリプト
    • セキュリティ
    • ソフトウェア開発
    • チャットツール
    • チーム構築
    • ツール調査履歴
    • テスト
    • デザイン
    • デザインパターン
    • ドキュメント
    • ネットワーク
    • ノート
    • バージョン番号
    • ビジネスモデル
    • プラクティス一覧
    • プラグイン調査
    • プログラマがやってはいけない97のこと
    • プログラミングテクニック
    • プログラム
    • プログラムエラー集
    • プロジェクトマネージメント
    • プロダクトマネージメント
    • ヘルプ文
    • ライフハック
    • リソース設計
    • リバースエンジニアリングツール
    • リリースノート
    • リリースノートサンプル1
    • リンク
    • レビュー
    • 人月の神話
    • 人間のあれこれ
    • 仕事のあれこれ
    • 会議
    • 作業報告項目サンプル
    • 例外処理
    • 勉強
    • 名言・教訓
    • 品質管理
    • 教育
    • 数学
    • 文書レビュー観点
    • 朝会
    • 未来技術
    • 林檎の木のものを持ってきた
    • 正規表現
    • 物理
    • 知識データベース
    • 紛らわしい・似たような用語
    • 経営
    • 経済
    • 自作template_class_でundefined_reference_to
    • 要求分析・要件定義
    • 見積もり
    • 設計
    • 評価
    • 認証
    • 議事録サンプル
    • 運用・保守
    • 開発インフラ
    • 開発環境
    • 開発計画
    • 関数名でよく使われる英単語
    • 関数命名規約
    • 関数型言語
    • 雑多メモ
    • 面接
Powered by GitBook
On this page
  • 用語
  • 命名規則
  • SQLite
  • 使い方
  • PostgreSQL
  • よく使うSQL
  • DB内全消去
  • Tips
  • MySQL
  • コマンド
  • Tips
  • TroubleShooting
  1. doc

RDB

PreviousPythonNextRedmine

Last updated 4 years ago

用語

DDL:Data Definition Language データ定義言語。データを格納するための構造を定義する。

DML:Data Manipulation Language データ操作言語。定義されたデータ構造中の個々のデータを操作する。

DCL:Data Control Language データ制御言語。データへのアクセス権限などを制御する。

命名規則

命名規則はスネークケース(小文字で単語を_区切りにしたもの)を採用しているパターンが多い

カラム名もスネークケースを採用したほうが命名規則が統一されて美しい

  • テーブル編

    複数形

tlm_values

基本的にはRailsの命名規則に従うのがよいだろう

SQLite

使い方

よく使うコマンド

.databases

.table

.dump ?TABLE?

.help

.exit

利用可能な型

PostgreSQL

よく使うSQL

CSVにする

COPY (select * from foo) TO '/tmp/aaa.csv' (FORMAT csv);

バイナリをlike検索

select * from binary where data::varchar like '%010203%';

Byteaを挿入

普通にinsertすればよい

INSERT INTO table (data) VALUES (
\x13070809'
);

Select結果をinsert

INSERT INTO table(A, B, C, time)
SELECT
0,
'aaa',
COL_C,
lag(time) OVER (ORDER BY time asc),
FROM
table2

ページャーを変更

シェルで

export PAGER=less

ページャーを使わない

\pset pager off

キャラクタ型を整数に変換する方法

ALTER TABLE cps_def ALTER COLUMN no_imaging_flag TYPE integer USING (no_imaging_flag::integer);

DB内全消去

drop schema public cascade; create schema public;

Tips

カラム内のJson配列の結果の最大値を取得する

select max(cast(j.jsonb_array_elements_text as integer)) from (select jsonb_array_elements_text(t.time_range) from (select (select jsonb_agg(t -> 'time') as time_range from jsonb_array_elements(param_array) as x(t)) from data where type = 'D') t) j;

型を調べる

pg_typeof

カラムのjsonのデータにアクセスする

select (select jsonb_agg(t -> 'time') from jsonb_array_elements(parameters) as x(t)) from table where type = 'A';

integerからdayに変換する

かければいい

2 * interval '1 day'

intervalから日数だけintegerで抜き出す

extract(day from '2019-07-22 10:00:00' - time)

intervalから日数だけ抜き出す

date_trunc('days', '2019-07-22 10:00:00' - time)

datetimeをtimeにキャストする方法

cast("start_time" as time)

特定のカラムを対象として重複行を削除したい

enumにコメントをつけたい

各項目にはつけられないみたいなのでenum自体に列挙する CREATE TYPE my_type_description AS ENUM('foo desc', 'bar desc');

ひとつ前のレコードの前回値を取得する

ORDER BYでnull値を除外する

WHERE target_column IS NOT NULL ORDER BY target_column

target_columnに別名をつけているの場合はWHEREできないので

ORDER BY target_column desc NULLS LAST

MySQL

コマンド

mysql -uroot -p'password' -D database_name

Tips

バイナリを曖昧検索する

SELECT * FROM table WHERE data like BINARY CONCAT('%', 0x6671, '%')

TroubleShooting

phpmyadminでblobのバイナリフィールドを表示する方法

ActiveRecord::StatementInvalid (Mysql2::Error: Incorrect string value:というエラーが出る

文字コードが原因。

show table status;

をして、

latin1_swedish_ci とかを探す。

あったら、

ALTER TABLE my_table CONVERT TO CHARACTER SET utf8;

をしてUTF-8にする。

http://railsdoc.com/rails_base
http://so-zou.jp/web-app/tech/database/sqlite/
http://so-zou.jp/web-app/tech/database/sqlite/data/data-type.htm
https://dba.stackexchange.com/questions/229069/extract-json-array-of-numbers-from-json-array-of-objects
https://www.postgresql.jp/document/11/html/datatype-json.html
https://stackoverflow.com/questions/9795660/postgresql-distinct-on-with-different-order-by
https://stackoverflow.com/questions/42367917/postgres-add-description-of-an-enum-value
https://blog-asnpce.com/technology/1345
https://support.plesk.com/hc/en-us/articles/115003337614-How-to-see-BLOB-fields-as-text-in-PHPMyadmin-