CodeGym /课程 /SQL SELF /PostgreSQL数据类型入门

PostgreSQL数据类型入门

SQL SELF
第 15 级 , 课程 0
可用

其实这节课完全可以作为我们课程的开头。但那样的话,你们最开始的任务和讲座就会超级无聊。如果你决定体验一天当建筑工人,你会想从哪里开始:先研究砖头的类型和形状,还是先爽一把开30分钟塔吊?你懂的吧,哈哈 :)

学生不是一个需要灌满的容器,而是一支需要点燃的火把(当然别烧着了)!我不是想把我知道的全都告诉你,而是想让你觉得有意思。现在正是时候来了解一下数据类型啦。

在PostgreSQL里,数据类型就是用来指定某个表的某一列会存什么类型的信息。比如数字、文本或者日期。这有点像你选收纳盒:小盒子装小东西,大盒子装鞋子,透明盒子装线团,一眼就能看出来哪里放了啥。

举个例子:

  • 如果你想存人的年龄,那就用数字类型的数据。
  • 如果要存名字,就得用文本类型的数据。
  • 要记录注册日期,当然用日期类型的数据最合理。

数据类型有什么用?

数据类型可以帮你:

  1. 限制输入的信息。比如你不能在需要数字的地方插入文本。
  2. 让数据结构更清晰。你清楚每一列是什么,写SQL和分析数据都更方便。
  3. 节省资源。用对了类型,内存消耗就会更低。
  4. 保证精度。比如做财务计算时,需要用定点小数。

激励一下的小例子

想象一下有个用来存学生信息的表:

id name age enrollment_date
1 Otto Mars 22 2023-01-15
2 Anna Song 19 2023-02-10

这里id是唯一标识符(数字),name是文本,age是年龄数字,enrollment_date是学生入学日期。这些数据类型都不一样,因为它们描述的是对象的不同方面。

PostgreSQL数据类型的分类

PostgreSQL在数据类型方面超级灵活。下面是一个简单的分类。

主要数据类型类别:

  1. 数字类型

    • 用来存整数(比如数量、ID)和带小数的数字(比如钱)。
    • 例子:INTEGERNUMERICFLOAT
  2. 文本类型

    • 用来存文本和字符串(比如名字、地址)。
    • 例子:CHARVARCHARTEXT
  3. 布尔类型

    • 用来存布尔值TRUE(真)或FALSE(假)。
    • 例子:BOOLEAN
  4. 日期和时间类型

    • 用来存日期、时间或者两者的组合。
    • 例子:DATETIMETIMESTAMP
  5. 特殊类型

    • 比如唯一标识符、JSON对象、数组等等。
    • 例子:UUIDJSONBARRAY

PostgreSQL数据类型的特点

PostgreSQL支持超多内置类型,还可以自定义自定义(用户自定义)数据类型。这让它在需要特殊数据要求的复杂系统里特别强大。

有意思的是,PostgreSQL甚至可以存地理信息数据,还能写类似“找出我500米范围内的咖啡馆”这样的查询。遇到这种需求就得用特殊的数据类型啦。

明确指定数据类型有什么好处?

有时候你可能觉得把表里的所有列都设成文本类型很方便——毕竟文本啥都能存。但其实这是个坏习惯!指定合适的数据类型可以:

让查询更简单。如果PostgreSQL知道某列全是数字,像SUM()这种计算就会更快。

避免出错。想象一下你不小心把“三十二”存进了本该存32的年龄列,这种错误可太难发现了。

2
任务
SQL SELF, 第 15 级, 课程 0
已锁定
WHERE 子查询排除记录
WHERE 子查询排除记录
2
任务
SQL SELF, 第 15 级, 课程 0
已锁定
在 `FROM` 子句中使用带有算术表达式的子查询
在 `FROM` 子句中使用带有算术表达式的子查询
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION