跳至主要内容

SQL 数据库概览教程

在本教程中,您将了解 SQL 中的数据库。
· 3分钟 阅读

使用 AI 探索

数据库通过将现实世界中的实体(如教授和大学)存储在表中来建模。每个表包含单一实体类型的数据。这样可以通过仅存储一次实体来降低冗余。例如,关于某家公司的详细信息只需要一行数据。最后,数据库可用于建模实体之间的关系。

SQL 是结构化查询语言(Structured Query Language),是一种用于在关系型数据库中存储、操作和检索数据的计算机语言。

SQL 是关系型数据库系统的标准语言。所有关系型数据库管理系统(RDBMS),如 MySQL、MS Access、Oracle、Sybase、Informix、Postgres 和 SQL Server,都使用 SQL 作为其标准数据库语言。

PostgreSQL 数据库

information_schema 是一个元数据库,保存着有关您当前数据库的信息。它并非 PostgreSQL 独有,在 MySQL 或 SQL Server 等其他数据库管理系统中也可用。您可以使用熟悉的 SELECT * FROM 语法查询 information_schema 中的多张表:

  • tables:关于当前数据库中所有表的信息
  • columns:关于当前数据库中所有表的所有列的信息
  SELECT table_schema, table_name
  FROM information_schema.tables;
      table_schema    |              table_name
   -------------------+------------------------------
   pg_catalog         | pg_statistic
   pg_catalog         | pg_type
   pg_catalog         | pg_policy
   pg_catalog         | pg_authid
   pg_catalog         | pg_shadow
   public             | university_professors
   pg_catalog         | pg_settings
  ... 

SQL 中的命令

数据定义语言(DDL)

  • CREATE:创建一个新表或表的视图。
  • ALTER:修改现有表。
  • DROP:删除整个表或数据库中的其他对象。

数据操作语言(DML)

  • SELECT:从一个或多个表中提取特定记录。
  • INSERT:在现有表中创建一条记录。
  • UPDATE:修改表中的现有记录。
  • DELETE:删除表中的记录,甚至可以删除整个表。

查看特定表的列

information_schema 还在名为 "columns" 的表中保存列的信息。一旦您知道表名,就可以通过访问 "columns" 表来查询其列。

SELECT table_name, column_name, data_type
FROM information_schema.columns
WHERE table_name = 'pg_config';


 table_name | column_name | data_type
 -----------+-------------+-----------
 pg_config  | name        | text
 pg_config  | setting     | text 

这里可以看到,系统表 pg_config 只有两列——大概用于存储名称-值对。

交互式示例

在本练习中,您只需要来自 'public' 模式的信息,它在 tables 和 columns 表中作为列 table_schema 指定。'public' 模式保存关于用户自定义表和数据库的信息。其他类型的 table_schema 保存系统信息——在这里,我们只关注用户自定义的内容。

您将获取当前数据库中所有表名的信息,同时将查询限制在 'public' 的 table_schema 中。

## Query the right table in information_schema
SELECT table_name
FROM information_schema.tables
## Specify the correct table_schema value
WHERE table_schema = 'public';

运行上述代码时,会得到如下结果:

查询结果

亲自试一试。

要进一步了解 SQL 中的关系型数据库,请观看我们课程 Introduction to Relational Databases in SQL 中的这段视频。

本内容摘自 DataCamp 的 Timo Grossenbacher 所授课程 Introduction to Relational Databases in SQL。

欢迎查看我们的教程 Introduction to Indexing in SQL。

主题