はじめてのPostgreSQL入門(1)

中国語翻訳 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 値があるため、インデックスを構築しないでください。

列の値は頻繁に維持されるため、インデックスは構築しないでください。

Supongo que te gusta

Origin blog.csdn.net/qq_42697946/article/details/130343769
Recomendado
Clasificación