IT袋

当前位置:主页 > 经验教程 > 软件教程 >

如何建立自己的数据库文件

如何建立自己的数据库文件 mysql数据库基础知识(3)

更新:2023-08-25 22:48:08 来源:IT袋 作者:苏晓敏
导读:如何建立自己的数据库文件,查询表中的内容 SQL 是一种查询语言,因此你可以通过查询来查看数据库的内容。查询可以是很简单的,也可以涉及连接多个不同表之间的复杂关系。要查

如何建立自己的数据库文件

查询表中的内容

SQL 是一种查询语言,因此你可以通过查询来查看数据库的内容。查询可以是很简单的,也可以涉及连接多个不同表之间的复杂关系。要查看表中的所有内容,请使用SELECT关键字和**是通配符):

exampledb=> SELECT * FROM my_sample_table; id | wordlist----+------------ 1 | Alice 2 | Bob 3 | Alexandria(3 ROWS)

更多数据

PostgreSQL 可以处理很多数据,但是对于任何数据库来说,关键之处在于你是如何设计你的数据库的,以及数据存储下来之后你是怎么查询数据的。在 OECD.org上可以找到一个相对较大的公共数据集,你可以使用它来尝试一些先进的数据库技术。

首先,将数据下载为逗号分隔值格式(CSV)的文件,并将文件另存为Downloads文件夹中的land-cover.csv

在文本编辑器或电子表格应用程序中浏览数据,来了解有哪些列,以及每列包含哪些类型的数据。仔细查看数据,并留意错误情况。例如,COU列指的是国家代码,例如AUS表示澳大利亚和GRC表示希腊,在奇怪的BRIICS之前,这一列的值通常是 3 个字符。

在你理解了这些数据项后,你就可以准备一个 PostgreSQL 数据库了。

$ createdb landcoverdb --owner bogus$ psql --user bogus landcoverdblandcoverdb=> create table land_cover(country_code varchar(6),country_name varchar(76),small_subnational_region_code varchar(5),small_subnational_region_name varchar(14),large_subnational_region_code varchar(17),large_subnational_region_name varchar(44),measure_code varchar(13),measure_name varchar(29),land_cover_class_code varchar(17),land_cover_class_name varchar(19),year_code integer,year_value integer,unit_code varchar(3),unit_name varchar(17),power_code integer,power_name varchar(9),reference_period_code varchar(1),reference_period_name varchar(1),value float(8),flag_codes varchar(1),flag_names varchar(1));

引入数据

Postgres 可以使用特殊的元命令\copy来直接引入 CSV 数据:

landcoverdb=> \copy land_cover from '~/land-cover.csv' with csv header delimiter ','COPY 22113

插入了 22113 条记录。这是一个很好的开始!

查询数据

SELECT语句可以查询这 22113 条记录的所有列,此外 PostgreSQL 将输出通过管道传输到屏幕上,因此你可以轻松地滚动鼠标来查看输出的结果。更进一步,你可以使用高级 SQL 语句,来获得一些有用的视图。

landcoverdb=> SELECT lcm.country_name, lcm.year_value, SUM(lcm.value) sum_valueFROM land_cover lcmJOIN ( SELECT country_name, large_subnational_region_name, small_subnational_region_name, MAX(year_value) max_year_value FROM land_cover GROUP BY country_name, large_subnational_region_name, small_subnational_region_name) AS lcmyvON lcm.country_name = lcmyv.country_name AND lcm.large_subnational_region_name = lcmyv.large_subnational_region_name AND lcm.small_subnational_region_name = lcmyv.small_subnational_region_name AND lcm.year_value = lcmyv.max_year_valueGROUP BY lcm.country_name, lcm.large_subnational_region_name, lcm.small_subnational_region_name, lcm.year_valueORDER BY country_name, year_value;

相关阅读