PostgresのArrayタイプ
2589 ワード
mysqlはArrayタイプをサポートしていません
一、Postgres原生SQL
適用シーン:
1、定義
2、挿入
(1)方法一
注意1:二重引用符一重引用符ここでは混用できません:
(2)メソッド2——配列構造関数
注意:ここでは、単一引用符:
3、アクセス
(1)一つ取る
注意:ここでは
return:
注意:ここの配列インデックス値は0からではありません
(2)複数取る
return:
(3)全て取る
return:
[拡張]
Postgres引用符使用規則のまとめ:
4、修正
{音楽、寝る、読書}=>{音楽、寝る、読書}
5、検索
return:
6、展開配列
return:
二、Sequelizeと協力する
Sequelizeはarrayタイプをどのように定義しますか?
オリジナルのPostgresには2つの点があります.
1、配列の形式は[]ラップではなく{}
2、配列のインデックスは0からではなく1から
3、[未知]table designをnavicatで表示し、本来defineがarrayのinterestフィールドに表示されるのはvarcharタイプである
Sequelizeでこれらの違いをよく消して、配列の方法でデータベースとインタラクティブに操作することができます.
参考資料
1.[postgresガイド-配列]http://postgresguide.com/cool/arrays.html 2.[PostgreSQL Array] http://www.postgresqltutorial.com/postgresql-array/
一、Postgres原生SQL
適用シーン:
機能の実装に使用可能1、定義
CREATE TABLE "Students"
(
name VARCHAR(255),
interest VARCHAR(255)[]
)
2、挿入
(1)方法一
INSERT INTO "Students"
VALUES
('colin',
'{" ", " ", " "}'
)
注意1:二重引用符一重引用符ここでは混用できません:
'{" ", " ", " "}'
注2:挿入後のデータベース表示は{ , , }
であり、{' ',' ',' '}
ではありません.(2)メソッド2——配列構造関数
INSERT INTO "Students"
VALUES
('colin',
ARRAY[' ', ' ', ' ']
)
注意:ここでは、単一引用符:
ARRAY[' ', ' ', ' ']
しか使用できません.3、アクセス
(1)一つ取る
select interest[1] from "Students" where id = 1
注意:ここでは
interest[1]
は引用符では使用できません.return:
' '
注意:ここの配列インデックス値は0からではありません
(2)複数取る
select interest[1:2] from "Students" where id = 1
return:
{ , }
(3)全て取る
select "interest" from "Students" where id = 1
return:
{ , , }
[拡張]
Postgres引用符使用規則のまとめ:
:内蔵関数、キー名が配列でインデックス値が取られる
:値、キー名が配列でインデックス値が取られる場合、jsonフィールドはvalue値(「edu_experience」->「name')
:テーブル名、キー名、値にネストされた値4、修正
update "Students" set interest[2] = ' ' where id = 1;
{音楽、寝る、読書}=>{音楽、寝る、読書}
5、検索
ANY()
select "interest" from "Students" where ' ' = ANY("interest");
return:
{ , , }
6、展開配列
unnest()
select unnest("interest") from "Students" where ' ' = ANY("interest");
return:
二、Sequelizeと協力する
Sequelizeはarrayタイプをどのように定義しますか?
interest: DataTypes.ARRAY(DataTypes.STRING),
オリジナルのPostgresには2つの点があります.
1、配列の形式は[]ラップではなく{}
2、配列のインデックスは0からではなく1から
3、[未知]table designをnavicatで表示し、本来defineがarrayのinterestフィールドに表示されるのはvarcharタイプである
Sequelizeでこれらの違いをよく消して、配列の方法でデータベースとインタラクティブに操作することができます.
参考資料
1.[postgresガイド-配列]http://postgresguide.com/cool/arrays.html 2.[PostgreSQL Array] http://www.postgresqltutorial.com/postgresql-array/