<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>数据库 on Kevin&#39;s Blog</title>
    <link>https://bloglee.pages.dev/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/</link>
    <description>Recent content in 数据库 on Kevin&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>zh</language>
    <lastBuildDate>Sun, 02 Mar 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://bloglee.pages.dev/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Supabase 基础知识</title>
      <link>https://bloglee.pages.dev/post/basics-of-supbase/</link>
      <pubDate>Sun, 02 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://bloglee.pages.dev/post/basics-of-supbase/</guid>
      <description>&lt;h2 id=&#34;supabase-anon-key&#34;&gt;Supabase Anon Key&lt;/h2&gt;&#xA;&lt;p&gt;Supabase 的匿名密钥（Anon Key）是用于访问 Supabase 数据库的密钥。它允许用户在不进行身份验证的情况下访问数据库，通常用于开发和测试环境。&lt;/p&gt;&#xA;&lt;h2 id=&#34;rls&#34;&gt;RLS&lt;/h2&gt;&#xA;&lt;p&gt;Supabase 的 安全核心是 RLS (Row Level Security)&lt;/p&gt;</description>
    </item>
    <item>
      <title>PostgreSQL 基本知识</title>
      <link>https://bloglee.pages.dev/post/postgresql-basics/</link>
      <pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate>
      <guid>https://bloglee.pages.dev/post/postgresql-basics/</guid>
      <description>&lt;h2 id=&#34;postgresql-数据类型&#34;&gt;PostgreSQL 数据类型&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;类别&lt;/th&gt;&#xA;          &lt;th&gt;类型名称&lt;/th&gt;&#xA;          &lt;th&gt;描述&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;数值类型&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;SMALLINT&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;2 字节小整数&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;INTEGER&lt;/code&gt; (或 &lt;code&gt;INT&lt;/code&gt;)&lt;/td&gt;&#xA;          &lt;td&gt;4 字节整数&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;BIGINT&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;8 字节大整数&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;SMALLSERIAL&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;2 字节自增整数&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;SERIAL&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;4 字节自增整数&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;BIGSERIAL&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;8 字节自增整数&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;REAL&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;4 字节单精度浮点数&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;DOUBLE PRECISION&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;8 字节双精度浮点数&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;NUMERIC&lt;/code&gt; (或 &lt;code&gt;DECIMAL&lt;/code&gt;)&lt;/td&gt;&#xA;          &lt;td&gt;精确小数&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;字符类型&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;CHAR(n)&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;定长字符串&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;VARCHAR(n)&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;变长字符串&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;TEXT&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;无长度限制字符串&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;日期/时间类型&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;DATE&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;日期&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;TIME&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;时间&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;TIMESTAMP&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;时间戳&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;INTERVAL&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;时间间隔&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;布尔类型&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;BOOLEAN&lt;/code&gt; (或 &lt;code&gt;BOOL&lt;/code&gt;)&lt;/td&gt;&#xA;          &lt;td&gt;布尔值（true/false）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;二进制类型&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;BYTEA&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;二进制数据&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;几何类型&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;POINT&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;点&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;LINE&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;线&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;LSEG&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;线段&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;BOX&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;矩形框&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;PATH&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;路径&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;POLYGON&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;多边形&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;CIRCLE&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;圆&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;网络地址类型&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;CIDR&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;网络地址（CIDR 格式）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;INET&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;IP 地址&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;MACADDR&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;MAC 地址&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;文本搜索类型&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;TSVECTOR&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;文本搜索向量&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;TSQUERY&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;文本搜索查询&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;UUID 类型&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;UUID&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;通用唯一标识符&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;JSON 类型&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;JSON&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;JSON 数据&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;JSONB&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;二进制格式的 JSON 数据&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;数组类型&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;数据类型[]&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;数组（如 &lt;code&gt;INTEGER[]&lt;/code&gt;, &lt;code&gt;TEXT[]&lt;/code&gt;）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;其他类型&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;XML&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;XML 数据&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;RANGE&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;范围类型&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;DOMAIN&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;自定义域类型&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;COMPOSITE&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;复合类型&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;postgresql-扩展&#34;&gt;PostgreSQL 扩展&lt;/h2&gt;&#xA;&lt;h3 id=&#34;什么是扩展&#34;&gt;什么是扩展？&lt;/h3&gt;&#xA;&lt;p&gt;在 PostgreSQL 中，&lt;strong&gt;扩展&lt;/strong&gt; 是一种可以添加到数据库中的额外功能模块。它们提供了一些额外的功能、函数或数据类型，帮助你更方便地完成某些任务。你可以把扩展理解为 PostgreSQL 的“插件”。&lt;/p&gt;</description>
    </item>
    <item>
      <title>数据库基本知识</title>
      <link>https://bloglee.pages.dev/post/database-basics/</link>
      <pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate>
      <guid>https://bloglee.pages.dev/post/database-basics/</guid>
      <description>&lt;h2 id=&#34;参数化查询&#34;&gt;参数化查询&lt;/h2&gt;&#xA;&lt;p&gt;参数化查询是 SQL 中一种安全且高效的查询方式，我用通俗易懂的方式来解释：&lt;/p&gt;&#xA;&lt;h3 id=&#34;什么是参数化查询&#34;&gt;什么是参数化查询？&lt;/h3&gt;&#xA;&lt;p&gt;想象你在餐厅点餐，有两种方式：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;直接告诉服务员&lt;/strong&gt;：&amp;ldquo;我要一份宫保鸡丁，不要花生&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;用菜单模板&lt;/strong&gt;：选择菜品类型（川菜），然后填写具体要求（宫保鸡丁，去花生）&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;参数化查询就像第二种方式——先准备一个 SQL 模板，然后把具体的数据作为参数填入。&lt;/p&gt;</description>
    </item>
    <item>
      <title>数据库函数</title>
      <link>https://bloglee.pages.dev/post/database-function/</link>
      <pubDate>Fri, 07 Feb 2025 00:00:00 +0000</pubDate>
      <guid>https://bloglee.pages.dev/post/database-function/</guid>
      <description>&lt;p&gt;数据库函数是在数据库管理系统（DBMS）中预先定义好的，用于执行特定操作并返回结果的代码块。&lt;/p&gt;&#xA;&lt;p&gt;在 Supabase 中，数据库函数通常用 SQL 或 PL/pgSQL（PostgreSQL 的过程语言）编写，但你也可以使用其他语言（如 JavaScript）来编写函数。&lt;/p&gt;</description>
    </item>
    <item>
      <title>RPC</title>
      <link>https://bloglee.pages.dev/post/remote-procedure-call-in-supabase/</link>
      <pubDate>Mon, 01 Apr 2024 21:36:41 +0800</pubDate>
      <guid>https://bloglee.pages.dev/post/remote-procedure-call-in-supabase/</guid>
      <description>&lt;p&gt;在 Supabase 中，RPC（Remote Procedure Call，远程过程调用）是一种允许你直接调用 PostgreSQL 数据库中的函数的机制。通过 RPC，你可以在 Supabase 中执行自定义的数据库函数，并将结果返回给客户端。这对于执行复杂的数据库操作或封装业务逻辑非常有用。&lt;/p&gt;</description>
    </item>
    <item>
      <title>RPC</title>
      <link>https://bloglee.pages.dev/post/remote-procedure-call/</link>
      <pubDate>Mon, 01 Apr 2024 21:36:41 +0800</pubDate>
      <guid>https://bloglee.pages.dev/post/remote-procedure-call/</guid>
      <description>&lt;p&gt;RPC（Remote Procedure Call，远程过程调用）是一种通信协议，允许一个程序在本地调用另一个地址空间（通常是远程服务器）上的函数或过程，就像调用本地函数一样。RPC 的目的是隐藏网络通信的复杂性，使得分布式系统中的远程调用对开发者透明。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
