中国語翻訳 Web サイト:ドキュメント インデックス: 世界で最も強力なオープン ソース データベース...
公式サイトダウンロードアドレス:コミュニティDLページ
Windows 10 のインストールは無視されます (サードパーティ製およびグラフィカル視覚化ツールがインストール用に選択されます)
1.使い始める
1.postgreSQLサービスを開始します。
サービスのインストール場所/bin を入力し、cmd コマンドを実行し、次のコマンドでサービスを開始します。
pg_ctl.exe -D "D:\Program Files\PostgreSQL\12\data" start
#説明: インストール中に、D:\Program Files\PostgreSQL\12\data を実際の /data ストレージ ディレクトリに置き換えます。
実行中に以下の結果が表示されれば起動成功です。
起動時の例外、解決策:
1. 既存の /data ディレクトリを削除します。
2. /data保存ファイルを再初期化して実行します。
initdb.exe -D "データの保存場所" -E UTF-8 --locale=chs -U postgres -W
例: C:\Program Files\PostgreSQL\12\data #これがデフォルトの場所です
2. ローカルでデータベースに接続し、テスト ライブラリとテーブルを作成します。今回は Navicat Premium 15 バージョンを使用して接続します。
テストデータベースを作成します - test_db
テスト データ テーブルを作成します - テストは主キーを自動インクリメントするようにテーブルを設定します
(1) テストデータテーブルの作成
CREATE TABLE "public"."test" ( "id" int4 NOT NULL, "name" varchar(255) COLLATE "pg_catalog"."default", "create_time" timestamp(6), CONSTRAINT "test_pkey" PRIMARY KEY ("id ") ) ; ALTER TABLE "public"."test" OWNER TO "postgres"; 列「public」.「test」.「id」のコメントは「主键」です。列「public」.「test」.「name」のコメントは「姓名」です。列「public」.「test」.「create_time」のコメントは「時間」です。
(2) 主キーの自動インクリメントシーケンスを作成します (テーブルを選択 -> その他 -> 新しいシーケンス)
(3) 主キーカラムの関連付け順序の設定
nextval('シーケンス名'::regclass)
(4) サポートデータ型の説明
名前 |
エイリアス |
説明する |
ビギント |
あなた8 |
符号付き 8 バイト整数 |
ビッグシリアル |
シリアル8 |
自動増加する8バイト整数 |
ビット [ (n) ] |
固定長ビット列 |
|
ビット変化 [ (n) ] |
放浪 [ (n) ] |
可変長ビット列 |
ブール値 |
ブール |
論理ブール値 (true/false) |
箱 |
飛行機上の普通の箱 |
|
バイト |
バイナリデータ ( 「バイト配列」 ) |
|
文字 [ (n) ] |
文字 [ (n) ] |
固定長の文字列 |
文字が変化する [ (n) ] |
varchar [ (n) ] |
可変長文字列 |
シドル |
IPv4 または IPv6 ネットワーク アドレス |
|
丸 |
平面上の円 |
|
日付 |
カレンダーの日付(年、月、日) |
|
倍精度 |
float8 |
倍精度浮動小数点数(8バイト) |
アイネット |
IPv4またはIPv6のホストアドレス |
|
整数 |
整数 int4 あなた8 |
-32768~ +32767 -21474836478 ~ 2147483647 -9223372036854775808 ~ +9223372036854775807 |
間隔 [ フィールド ] [ (p) ] |
期間 |
|
json |
テキスト JSON データ |
|
jsonb |
バイナリ JSON データ、分解 |
|
ライン |
飛行機内では延々と長蛇の列 |
|
LSG |
平面上の線分 |
|
マカドル |
MAC (メディア アクセス コントロール) アドレス |
|
マカドル8 |
MAC (メディア アクセス コントロール) アドレス (EUI-64 形式) |
|
お金 |
通貨量 |
|
数値 [ (p, s) ] |
10 進数 [ (p, s) ] |
選択可能な精度による正確な数値 |
パス |
平面上の幾何学的なパス |
|
pg_lsn |
PostgreSQL ログのシーケンス番号 |
|
ポイント |
平面上の幾何学的な点 |
|
ポリゴン |
平面上の閉じた幾何学パス |
|
本物 |
float4 |
単精度浮動小数点数(4バイト) |
smallint |
int2 |
符号付き2バイト整数 |
小型シリアル |
シリアル2 |
自動増加する2バイト整数 |
シリアル |
シリアル4 |
自動増加する4バイト整数 |
文章 |
可変長文字列 |
|
時間 [ (p) ] [ タイムゾーンなし ] |
時刻 (タイムゾーンなし) |
|
時間 [ (p) ] とタイムゾーン |
タイメッツ |
タイムゾーンを含む時刻 |
タイムスタンプ [ (p) ] [タイムゾーンなし ] |
日付と時刻 (タイムゾーンなし) |
|
タイムスタンプ [ (p) ] とタイムゾーン |
タイムスタンプ |
タイムゾーンを含む日付と時刻 |
ツクエリ |
テキスト検索クエリ |
|
tsvector |
文本搜索文档 |
|
txid_snapshot |
用户级别事务ID快照 |
|
uuid |
通用唯一标识码 |
|
xml |
XML数据 |
(5)、事务说明
在PostgreSQL中,开启一个事务需要将SQL命令用BEGIN和COMMIT命令包围起来。事务提交
BEGIN; UPDATE accounts SET balance = balance - 100.00 WHERE name = 'Alice'; -- etc etc COMMIT;
记住那个银行数据库,假设我们从Alice的账户扣款100美元,然后存款到Bob的账户,结果直到最后才发现我们应该存到Wally的账户。我们可以通过使用保存点来做这件事:
事务回退 SAVEPOINT和 ROLLBACK
BEGIN; UPDATE accounts SET balance = balance - 100.00 WHERE name = 'Alice'; SAVEPOINT my_savepoint; UPDATE accounts SET balance = balance + 100.00 WHERE name = 'Bob'; -- oops ... forget that and use Wally's account ROLLBACK TO my_savepoint; UPDATE accounts SET balance = balance + 100.00 WHERE name = 'Wally'; COMMIT;
(6)、索引说明
Btree索引
Btree索引使用Btree数据结构来存储索引数据,可用于处理等值查询和范围查询,包括<、<=、=、>=、>等运算符,以及BETWEEN、IN、IS NULL、IS NOT NULL 等条件。
Btree索引可用于模式匹配查询,如“col LIKE′foo%′”或“col~′^foo′”,但是不能用于“col LIKE′%bar′”之类的后缀模糊匹配查询。Btree索引还可以用于查询结果集排序,如ORDER BY排序。
Hash索引
Hash索引根据每一行数据的索引字段计算哈希码,并维护哈希码、记录指针对应关系。对于哈希码相同的数据来说,可以采用链表来解决冲突。Hash索引的查询速度很快。
GiST索引
GiST(Generalized Search Tree)是一种平衡的树型结构访问方法,可作为一种基础模板来实现任意索引模式。B-tree索引和许多其他的索引模式都可以用GiST索引来实现。GiST 索引适用于多维数据类型和集合数据类型。GiST 多列索引支持在查询条件中包含索引字段的子集。PostgreSQL包含了全文检索、几何数据类型等多个用GiST实现的索引方法。
SP-GiST索引
SP-GiST索引与GiST索引类似,可作为一种基础模板来实现多种搜索方法。SP-GiST索引主要实现非平衡的基于硬盘的数据结构,如四叉树、k-d树和radix树。
GIN索引
GIN索引是一种通用倒排索引(GIN stands for generalized inverted indexes),可以处理包含多个键值,如 hstore, array,jsonb, 和 range 类型。用它来全文搜索或JSON键值的效率很高。GIN 允许用户开发自定义访问方法的数据类型索引,可以支持多种不同用户定义的索引策略。
BRIN索引
BRIN索引BRIN表示块范围索引。BRIN索引存储连续相邻的数据块统计信息,可以大大缩小索引占用空间。对于数据量比较大的表来说,BRIN索引比B-Tree索引插入数据的速度要快,两者的范围查询效率相当。BRIN索引通常用于线性顺序排列的列,如订单表的创建日期。
布尔过滤索引
ブルーム フィルターは、ビット配列を使用してセットを簡潔に表現し、要素がこのセットに属するかどうかを判断できる、スペース効率の高いランダム データ構造です。ブルーム フィルターのこの高い効率には一定の代償が伴います。要素が特定のセットに属するかどうかを判断する際、このセットに属さない要素がこのセットに属していると誤認される可能性があります (偽陽性)。したがって、ブルーム フィルターは「エラーゼロ」のアプリケーションには適していません。低いエラー率を許容できるアプリケーションでは、ブルーム フィルターはほとんどエラーを交換しないため、ストレージ スペースが大幅に節約されます。
次のシナリオではインデックスを使用することはお勧めできません。
データ量が少ないテーブルにはインデックスを使用しないでください
大容量の挿入および更新操作が頻繁に行われるテーブルにはインデックスを作成する必要はありません
列に多数の null 値があるため、インデックスを構築しないでください。
列の値は頻繁に維持されるため、インデックスは構築しないでください。