摘要:前面三章,我们完成了所有的准备工作:认识了 PostgreSQL,安装了它,还学会了怎么用工具连接它。现在,我们终于要开始干正事了——用 SQL 创造我们自己的东西!
好了,各位未来的数据大师们,激动人心的时刻到了!
前面三章,我们完成了所有的准备工作:认识了 PostgreSQL,安装了它,还学会了怎么用工具连接它。现在,我们终于要开始干正事了——用 SQL 创造我们自己的东西!
在这一章,你将学会:
如何创建一个全新的数据库。如何创建你的第一张数据表。认识最基本、最常用的数据类型。准备好敲下你的第一行 SQL 代码了吗?Let’s do this!
我们的 PostgreSQL 服务器就像一个大公寓楼 ,而数据库 (Database) 就是里面的一个个独立的套房。每个套房(数据库)里都可以存放自己的家具(表、数据等),彼此之间是隔离的。
虽然我们可以用 pgAdmin 右键创建数据库,但学习用 SQL 来完成这件事,能让你更深刻地理解其本质。
动手时间!
打开你喜欢的工具(psql 或 pgAdmin 的查询工具)。
pgAdmin 小贴士: 在左侧的服务器上右键,选择 Query Tool... 就可以打开一个 SQL 编辑器。
在编辑器里,输入下面这行代码:
CREATE DATABASE my_first_db;CREATE DATABASE 是 SQL 命令,告诉数据库:“嘿,我要创建一个新数据库!”my_first_db 是我们给这个数据库起的名字。你可以换成任何你喜欢的名字(但要用英文字母、数字和下划线,并以字母开头)。最后的分号 ; 是 SQL 语句的结束符。在 psql 或大多数工具里,这是一个好习惯。执行它!
在 psql 里,直接回车。在 pgAdmin 里,点击那个绿色的“播放”按钮 (Execute/Run)。如果一切顺利,你应该会看到一条类似 CREATE DATABASE 或 Query returned successfully 的成功消息。
如何验证?
在 psql 里,输入 \l 命令,你会在列表里看到 my_first_db。在 pgAdmin 里,在左侧的 Databases 上右键,选择 Refresh...,你就会看到新的数据库出现了。恭喜!你拥有了你的第一个数据库“套房”!
现在我们有了新家,得“搬”进去才能开始布置呀。
在 psql 里:使用 \c (connect) 命令:\c my_first_db你会看到命令提示符变成了 my_first_db=#,表示你已经成功切换进来了。在 pgAdmin 里:
你只需要在左侧的数据库列表里,直接点击 my_first_db 即可。如果要在这个数据库里执行查询,确保 Query Tool 的左上角选中的是 my_first_db。
好了,我们已经在 my_first_db 这个套房里了。现在,我们要开始打造第一件“家具”——一张用来存放“朋友”信息的表。
我们希望这张表有以下几列:
一个独一无二的 ID朋友的名字他的生日我们认识了多少年在查询工具里,输入下面的 SQL 代码:
CREATE TABLE friends ( id INT, name VARCHAR(50), birthday DATE, years_known INT);我们来逐行拆解这段代码:
CREATE TABLE friends (...): 告诉数据库,我们要创建一张名为 friends 的表。括号里是表的结构定义。id INT: 定义一个名为 id 的列,它的数据类型是 INT (整数)。name VARCHAR(50): 定义一个名为 name 的列,它的类型是 VARCHAR(50)。这表示它可以存放最多 50 个字符的可变长度字符串。birthday DATE: 定义一个名为 birthday 的列,类型是 DATE,专门用来存日期。years_known INT: 定义一个名为 years_known 的列,类型也是整数。执行它!
成功后,如何验证?
在 psql 里,输入 \dt,你就能看到 friends 表。再输入 \d friends,可以查看它的详细结构。在 pgAdmin 里,刷新 my_first_db 下的 Schemas -> public -> Tables,就能看到 friends 表了。太酷了!你刚刚像一个真正的工程师一样,定义了你的第一个数据结构!
在上面的例子里,我们用到了 INT, VARCHAR, DATE。这些就是数据类型。
这一列能存放什么样的数据(比如 INT 列就不能放文本)。数据库会为它分配多少存储空间。数据库能对它进行哪些操作(比如 DATE 类型可以计算日期间隔)。类型描述例子数值类型INT 或 INTEGER整数1, 100, -50NUMERIC(p, s)精确的小数。p是总位数,s是小数位数。NUMERIC(5, 2) 可以存 123.45FLOAT浮点数(不精确,用于科学计算)3.14159文本类型
VARCHAR(n)可变长度字符串,n是最大长度'Hello'TEXT无长度限制的文本'一篇很长的文章...'日期/时间类型
DATE只存日期'2023-10-26'TIME只存时间'18:30:00'TIMESTAMP存日期和时间'2023-10-26 18:30:00'BOOLEAN真或假true, false
学会了创造,也要学会如何“毁灭” 。DROP 命令就是用来干这个的,但使用它时一定要万分小心,因为这个操作是不可逆的!
删除一张表:DROPTABLE friends;删除一个数据库:你不能删除你当前正连接着的数据库。所以,你需要先切换出去,比如切换回 postgres 数据库。在 psql 里: \c postgres然后执行:DROP DATABASE my_first_db;
警告 ⚠️:在真实项目中,DROP 命令是核武器级别的操作,执行前请再三确认!
本章小结
成就感爆棚!你已经从一个旁观者,变成了一个真正的参与者。
你学会了如何用 CREATE DATABASE 和 CREATE TABLE 来构建数据库的骨架,还了解了基本的数据类型。这是成为一个数据库开发者的核心技能。
现在,我们的 friends 表还是一个空架子。在下一章,我们将学习如何向这个空架子里填充数据 (INSERT),让它变得有血有肉。
准备好认识你的第一批“数据朋友”了吗?我们下一章见!
来源:linux运维菜