Export方法(方法は2つある) [ 環境 ] psql (PostgreSQL) 9.5.3 COPYコマンド psqlとコマンドうってpostgres内に入ってからコマンド。 カンマ区切り(CSV)
PostgreSQLの基本コマンドをメモ。 参考:ドットインストール 他 (注:少しずつ追加していきます) 起動 サービスの起動 postgres -D /usr/local/var/postgres ターミナルを起動 デフォルトのデータベースに接続 psql -d postgres データベースを指定して接続 psql -d データベース名 データベースとユーザを指定して接続 psql -d データベース名 -U ユーザ名 データベース データベース一覧の表示 \l データベースの選択 \c データベース名 テーブル テーブル一覧の表示 \dt; テーブル構造の表示 \d テーブル名; テーブル内のデータを一覧 select * from テーブル名; 指定したカラムの内容を小さい順に表示 select * from テーブル名 order by カラム; 指定したカラムの内容を大きい順
(1) PostgreSQLのダンプツールを利用したバックアップ pg_dumpコマンド DBを運用しながらでも使えるbackupコマンド 中ではトランザクションブロック内でSELECT文を発行し、取得したデータを出力形式に合わせて整形した腕標準出力に出力 するらしい。 pg_dumpの出力形式 スクリプト形式(デフォルト) アーカイブ形式 が選択できる。 スクリプト形式 スクリプト形式の出力は、リストアに必要なSQL文の羅列が出る。 ので、psqlコマンドでリストアする。 スクリプト形式の場合はプレーンテキストなので、リストアの際にエラーが出たら、中を見れるという利点がある。 アーカイブ形式 バイナリの形で出力される。リストアはpsqlコマンドでなくpg_restoreコマンドで行う。 アーカイブ形式の利点は、 「指定したtableのみを選択してリストアできる」ことらしい。 また、アーカ
昇順(asc)は小さい順、降順(desc)は大きい順にデータが並ぶという違いがあります。 昇順(asc)は昇っていくイメージ、降順(desc)は降っていくイメージです。 昇順(asc)の意味と読み方、略称について 昇順(しょうじゅん・ascending order) データは小さい方から大きい方の順に並ぶ。 0123456789 abcdefghijklmnopqrstuvwxyz あいうえお 小さい方から大きい方へ昇っていくイメージ。 ascはascendingの略。 ascendには(上る・登る)という意味がある。 ascの読み方は「アスク」、ascendingは「アセンディング」と読むのが一般的。 降順(desc)の意味と読み方、略称について 降順(こうじゅん・descending order) データは大きい方から小さい方の順に並ぶ。 9876543210 zyxwvutsrq
sqlite> select * from sqlite_master; type = table name = personal tbl_name = personal rootpage = 4 sql = CREATE TABLE personal(id, name) type = table name = personal2 tbl_name = personal2 rootpage = 6 sql = CREATE TABLE personal2(id integer, name text) sqlite> 現在2つのテーブルが作成されているため sqlite_master テーブルには2つの行が含まれています。それぞれの行の name カラムにはテーブル名、そして sql カラムにはテーブルが作成された時の CREATE TABLE 文が格納されています。このように sqlite
今回掲載の内容 SQLで集計を行うには? 「GROUP BY」句の制約 列名の指定「AS」 特定の集計行のみの表示 SQLで集計を行うには? 今回は、SQL文での集計の方法(GROUP BY)を説明します。前回までに説明した「SELECT」文では、データを取得し表示させた場合、表示されるデータは元のデータの一部、もしくはすべてでした。今回使用する「GROUP BY」句を使用すると、特定の列をキーにした合計値や平均値などが表示される結果となります。まずは、例1のSQL文を実行してみましょう。前回説明したとおり、「Order Details」テーブルの指定に " "( ダブル・クオーテーション)を使用していますので、注意してくださいね。
テーブルの中のカラムにプライマリーキー制約やユニーク制約が設定されている場合に、データを追加すると制約違反となる場合があります。このような場合通常はエラーとなりますが、エラーを発生させる代わりに既存のデータを指定の値で上書きすることができます。 次の書式を使います。 INSERT INTO tbl_name (col_name1, col_name2, ...) VALUES (value1, value2, ...) ON DUPLICATE KEY UPDATE col_name_x=value_x, col_name_y=value_y, ...; ユニーク制約などで違反するデータを追加しようとした時に、データを新規に追加するかわりに既存のデータの指定のカラムの値を更新するということです。この時、更新するカラムは複数指定できますが、エラーの元となるユニーク制約などが設定されたカラムの
テーブル名/インデックス名/カラム名を変更する(ALTER TABLE RENAME文) 作成済みのテーブルに対してテーブル名の変更やカラム名の変更を行うには ALTER TABLE RENAME 文を使います。書式は次の通りです。 テーブル名の変更 ALTER TABLE tbl_name RENAME [TO|AS] new_tbl_name インデックス名の変更 ALTER TABLE tbl_name RENAME INDEX old_index_name TO new_index_name カラム名の変更 ALTER TABLE tbl_name RENAME COLUMN old_col_name TO new_col_name
Ruby on Railsではmigrationファイルに add_index テーブル名, :カラム名, :unique => true とすることで簡単にテーブルにユニークなindexを生成することが出来ます。 そして、indexに複数のカラムを設定する際は add_index テーブル名, [:カラム名1, :カラム名2, ・・・], :unique => true のようにすることで実現できます。 なので、意気揚々とindexを作成していたら以下のようなエラー。 Index name 'xxxxxxxxxxxxxxxxxxx' on table 'テーブル名' is too long; the limit is 64 characters 何も考えず複数カラムでindexを生成していたら、その名前が長くなりすぎて、エラーとのこと。 64文字以内にしなさいね、ということらしいです。
Model で作成された各テーブル用migrationファイルに NOT NULL制約や index を追加します。 制約やindexの付け方にはいろいろな流儀があると思いますが、今回は以下のような考え方で付けます。 NOT NULL制約は外部キーのようにそこがnullになってしまうと明らかにデータ構造がおかしくなってしまうカラム また、テーブルの核になるデータでそのカラムがnullのデータというのはありえないカラム index は外部キー等でjoint等で絶対用いられるカラム どのようなルールにするかは、作成するDBの性格や文化があるので、これが正解だというのはありません。ただし、一つのプロジェクトの中では統一された考え方や一貫性があることは重要だと思います。 例: class CreateRequests < ActiveRecord::Migration def self.up cr
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く