2021年数据库指南

数据是地理空间最重要的部分之一,或者我想说几乎每个行业。每个行业现在都认真对待数据管理,因此,作为IT人员了解它,已成为我们职业生涯的重要组成部分。本指南是一站式文章,引导您从地面(什么是数据)到空中(了解并使用地理空间查询)。

?数据库基础

?数据库类型

数据库通常分为关系数据库和非关系数据库两种类型。两者都有各自的优缺点。说一个比另一个更好是很愚蠢的,但这取决于用例。我个人有99%的时间使用空间数据来使用关系数据库,您很快就会明白原因。?关系数据库和RDBMS考虑到您的老板要求您创建一份重要信息表,例如所有员工的姓名,地址,电子邮件,电话 码和职务。您将立即拉出一个Excel工作表或Google工作表,写下所有这些列标题并开始感受信息

> Sample Information Sheet

这里的模式是每个条目都有有限和固定的列,我们需要了解这些列。因此,我们创建了一个包含所有信息的表,每个条目将具有唯一的主键,使其对于所有操作都是唯一且可访问的。在关系数据库中,每种类型的表都包含固定的列数,我们还可以在多个列之间建立关系

> Relation Between 2 columns

> No-SQL Realtime Database in Google Firebase

在No-SQL数据库中,用户有时必须编写自己的逻辑,以向每个条目添加唯一键以使其可访问,大多数行业标准的No-SQL数据库,例如Firebase,MongoDB,都使用JSON格式存储数据。因此,使用Javascript,Python,Ruby等对来自Web应用程序的数据执行操作非常容易和方便。recommendation空间数据的数据库类型推荐很明显,我们要保存点,线,面,栅格,等等,除了保存数据外,我们还需要一个DBMS来理解并帮助我们以空间方式(缓冲区,交集,距离计算等)查询数据,而不是将其保存为仅坐标的形式。 )。到目前为止,由于使用SQL语言在此类操作中可用的功能,关系数据库已证明在这种情况下更强大。在PostgreSQL上使用PostGIS之类的扩展程序为开发人员提供了编写复杂的空间查询的机会之窗。另一方面,No-SQL仍在空间领域上工作,像MongoDB这样的公司提供了一些功能来执行地理空间操作,但是Relational Databases仍然在很大程度上占有市场。

?使用RDBMS

> pgAdmin 4 on mac

> Creating a new database for the project

查询工具创建数据库的方式如下:

CREATE DATABASE <database_name>

?创建表-创建表只需要花些时间,因为这是我们需要定义所有列及其数据类型的地方。您可以在此处找到可以在PostgreSQL中使用的所有数据类型。pgAdmin允许我们从表中选择各种约束和键,例如Not Null,Primary Key等。我们稍后会发现更多信息。

> Creating users table

请注意,我们没有在列列表中添加主ID列,因为PostgreSQL会自动为我们这样做。我们可以在一个数据库中创建任意数量的表。一旦创建了表,就可以基于特定的列(通常为id)在不同的表之间建立关系。使用查询工具创建数据库的方法如下:

CREATE TABLE <table_name> (<column_1> <datatype>,<column_2> <datatype>,…..<column_n> <datatype>PRIMARY KEY (<column>));

?CRUD对表中数据的操作CRUD(创建,检索,更新,删除)是DBMS的”问候世界”,并且由于它们是最常用的操作,因此所有RDBMS都有相同的动词来执行它们。我们将在pgAdmin的查询工具中编写和执行查询,该查询可按以下方式使用。

> Query tool in pgAdmin

1??创建新条目在表中添加新条目如下命令

INSERT INTO <tablename> (column1, column2, column3,…) VALUES (value1, value2, value3,…);

INSERT,INTO,VALUE是SQL所使用的动词,因此不应将它们用作变量或值等。要向用户表中添加新条目,我们将以下查询写入查询工具。

INSERT INTO users(name, employed, address) VALUES (‘Sheldon Cooper’, true, ‘Pasadena’);

> Insert Query

请注意,字符串应始终以‘’(单引 )而不是””(双引 )书写

2??检索条目(全部或很少)可以检索和显示数据库中存储的数据。我们也可以获取整个数据或有限的条目。提取数据的代码是

select <column1, column2 ,…> from <tablename>

这将获取整个数据集,如果您只想获取20个条目,则可以编写

select <column1, column2 ,…> from <tablename> limit 20

如果要获取所有列,则可以编写以下内容,而不是编写所有列名称:

select * from <tablename>

如果要在某些特定条件下获取结果,则可以使用Where关键字,如下所示

select * from <tablename> where <key> = <value>

您甚至可以创建复杂的查询,稍后再讨论。在我们的示例中,我们可以检索所需的数据

–Retrieving Specific columns for all users

select name,employed from users

–Retrieving all columns for all users

select * from users

–Retrieving all columns for first 3 users

select * from users limit 3

–Retrieving all columns for all users where employed = true

select * from users where employed = true

> Retrieving Data from table

3??更新条目(全部或很少)RDMBS允许我们更新所有或有限的数据条目以将新值设置为列。

UPDATE <tablename> SET <column1> = <value1>, <column2> = <value2>

如果要更新特定行,则可以使用Where添加条件。

UPDATE <tablename> SET <column1> = <value1>, <column2> = <value2>WHERE <column> = <value>

就我们而言,我们将使用以下查询更新表

— Make all rows as employed = true

update users set employed = true

— change employed = false for entries with address = ‘nebraska’

update users set employed = false where address = ‘nebraska’

> Update entries

4??删除条目(全部或很少)在SQL中删除条目很容易,用户可以通过添加Where子句删除所有行或删除特定行

— Deleting all entries

Delete from <tablename>

— Deleting entries based on conditions

Delete from <tablename> where <column> = <value>

对于我们的示例,查询如下

— Deleting all entries

Delete from users

— Deleting entries based on conditions

Delete from users where employed = false

> Delete Entries from table

由于CRUD操作为数据库提供了基本功能,因此已被广泛使用。

在进入高级SQL和空间查询之前,是休息和玩CRUD的好时机。

本系列的第2部分将重点介绍使用键和约束在RDMBS中的表之间建立复杂的关系。

关于我

嗨,我是Krishna Lodha,是全栈Web GIS开发人员。我非常热衷于地理位置的力量以及它所讲述的故事。

阿迪奥斯!

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月6日
下一篇 2021年1月6日

相关推荐