📜  PostgreSQL 类型和 C# 类型 - SQL (1)

📅  最后修改于: 2023-12-03 15:33:45.666000             🧑  作者: Mango

PostgreSQL 类型和 C# 类型 - SQL

在使用 PostgreSQL 数据库和 C# 编程语言的过程中,需要了解 PostgreSQL 数据类型和对应的 C# 数据类型,使得程序能够正确地获取数据,以及在存储数据时使用正确的数据类型。

PostgreSQL 数据类型

PostgreSQL 支持多种数据类型,包括数字类型、字符类型、日期类型、数组类型等等。

下面是一些常见的 PostgreSQL 数据类型及其含义:

  • INTEGER:整数类型,范围从 -2147483648 ~ 2147483647。
  • BIGINT:长整数类型,范围从 -9223372036854775808 ~ 9223372036854775807。
  • REAL:单精度浮点数类型,范围从 1.18E-38 到 3.40E+38。
  • DOUBLE PRECISION:双精度浮点数类型,范围从 2.23E-308 到 1.79E+308。
  • CHARACTER(n):固定长度字符串类型,n 为字符串长度。
  • VARCHAR(n):可变长度字符串类型,最大长度为 n。
  • TEXT:可变长度字符串类型,无最大长度。

其他常见的 PostgreSQL 数据类型还包括日期时间类型、布尔类型、枚举类型、数组类型等等。这些类型根据具体的需求选择使用即可。

C# 数据类型

在 C# 编程语言中,存在与 PostgreSQL 数据类型对应的数据类型,这些类型可以直接映射到 PostgreSQL 数据库中的相应类型。

下面是一些常见的 C# 数据类型及其对应的 PostgreSQL 数据类型:

  • int:对应 PostgreSQL 的 INTEGER 类型。
  • long:对应 PostgreSQL 的 BIGINT 类型。
  • float:对应 PostgreSQL 的 REAL 类型。
  • double:对应 PostgreSQL 的 DOUBLE PRECISION 类型。
  • char:对应 PostgreSQL 的 CHARACTER(n) 类型。
  • string:对应 PostgreSQL 的 VARCHAR(n) or TEXT 类型。

其他常见的 C# 数据类型还包括 boolDateTime 等等。这些类型根据具体的需求选择使用即可。

示例代码

下面的示例代码演示了如何使用 C# 语言与 PostgreSQL 数据库进行交互,其中包括了数据类型转换等操作:

using Npgsql;

namespace Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 连接数据库
            var connString = "Host=localhost;Username=postgres;Password=123456;Database=mydb";
            using var conn = new NpgsqlConnection(connString);
            conn.Open();

            // 查询数据
            using var cmd = new NpgsqlCommand("SELECT id,name,age FROM users", conn);
            using var reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                var id = reader.GetInt32(0);
                var name = reader.GetString(1);
                var age = reader.IsDBNull(2) ? null : (int?)reader.GetInt32(2);

                // 数据类型转换
                var user = new User
                {
                    Id = id,
                    Name = name,
                    Age = age
                };
            }

            // 插入数据
            var sql = "INSERT INTO users(name,age) VALUES(@name,@age)";
            using var cmd = new NpgsqlCommand(sql, conn);
            cmd.Parameters.AddWithValue("name", "Tom");
            cmd.Parameters.AddWithValue("age", 20);
            cmd.ExecuteNonQuery();
        }
    }

    class User
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int? Age { get; set; }
    }
}

以上代码演示了如何使用 C# 语言与 PostgreSQL 数据库进行交互,包括了连接数据库、查询数据、插入数据等操作。在数据类型转换时,使用了 C# 和 PostgreSQL 数据类型相对应的类型。