开始使用PostgreSQL之前, 上一节我们说了怎样安装它。
PostgreSQL可能已经安装到你的电脑上了,安装后postgre服务默认在电脑开机时运行启动。
一.了解PostgreSQL的运行
PostgreSQL使用一种客户端/服务器(C/S)模型。
和其他典型的客户端/服务器应用一样,客户端和服务器可以在不同的主机上,这时它们通过 TCP/IP 网络连接通讯。
1.客户端应用是多种多样的,你可以使用很多的工具来连接上它。我们使用的现在有两种 pgAdmin 和 sql命令行工具。
1.1 pgAdmin
1.2 sql命令行工具
2.服务器有一个守护进程总是在等待着客户端来连接。
当一个客户端连接时会运行一个服务器进程,多个客户端连接时会分别对应运行多个服务器进程。
所以说一次连接就是建立了一次PostgreSQL会话,会话可以是长时的,就是说一个会话可以分别执行多个sql命令。
3.每一个服务器进程,管理数据库文件、接收客户端与数据库的连接,并且代表客户端在数据库上执行操作。
数据库服务器程序就叫做postgres,这是它的由来。
二.创建一个数据库
首先通过默认用户postpre登录。
一个新的数据库,在我们例子数据库叫 firstdb ,可以使用下面的命令:
create database firstdb; --创建名称为firstdb的数据库
注意创建数据库需要;结尾
如果不产生任何响应则表示该步骤成功。
注意新的数据库,默认可以使用超级用户postgre登录,我们就使用超级用户postgre重新连接新数据库firstdb。
之后试验一下下面的命令:
select version(); -- 输出当前数据库版本信息
select current_date; -- 打印当前日期
select 2 + 2; -- 计算2+2
两个方式执行,哪个都行。
如果使用的是sql命令行工具,psql程序有一些不属于SQL命令的内部命令,以反斜线开头 \,获取各种SQL命令的帮助语法:
\h 表示帮助语法 help
firstdb=> \h
\q 表示退出psql
firstdb=> \q
三.SQL语言说明
PostgreSQL是一种关系型数据库管理系统(RDBMS)。是一种用于管理存储在关系中的数据的系统。关系是表的数学术语。
现今把数据存储在表里的概念已经快成了固有的常识。
1.单个PostgreSQL服务器实例管理的全部数据库的集合,组成了一个数据库集簇。
2.一个数据库可以分组为多个表,可以与excel表格类比。
3.每个表都是一个行集合,每一行由一组命名列组成,而每一列都有一个特定的数据类型。
四.创建表天气表
指定表的名字weather(天气) 和所有列的名字及类型来创建一个表∶
create table weather ( --创建表天气
id varchar(20), --id为表的行标识id 1、2、3、4.... varchar(20)为字符数据类型,最大20个字符
city varchar(80), -- 城市名词 varchar(80) 为存储最长80个字符的任意字符串的数据类型
temp_low int, -- 最低温度 int是整数类型
temp_high int, -- 最高温度 int是整数类型
prcp real, -- 湿度 real存储单精度浮点数的类型(知道就行,不常用)
date date -- 时间字段 就是类型为date的列名字也是date
);
-- 这个标志为注释,就是说明,在sql中不会进行执行,会被忽略。
上面的sql命令以及换行符,直到分号才结束。
在 SQL 命令中可以自由使用空白(即空格、制表符和换行符)。
SQL 是对关键字和标识符大小写不敏感的语言。
PostgreSQL支持标准的SQL类型有int、smallint、real、double precision、char(N)、varchar(N)、date、time、timestamp和interval,还支持其他的通用功能的类型和丰富的几何类型。
甚至可以定制任意数量的用户自定义数据类型。因而类型名并不是语法关键字,除了SQL标准要求支持的特例外。
五.创建表城市表
用来保存城市和相关的地理位置:
create table cities ( --创建表城市
id varchar(20), --id为表的行标识id varchar(20)为字符数据类型,最大20个字符
name varchar(80), --name为城市名称 varchar(80) 为存储最长80个字符的任意字符串的数据类型
location point --location地理位置字段 类型point就是一种PostgreSQL特有数据类型的例子(知道就行,不常用)
);
看了两个表的创建应该明白了,它的形式都一样,就看我们存储什么。
六.删除城市表
如果你不再需要某个表,或者以不同的形式要重建它,那么你可以用下面的命令删除对应的表。
drop table cities; -- drop 执行会删除表,删除后无法恢复
甚至可以直接删除刚新建的数据库firstdb
drop database firstdb; -- 删除数据库(DROP DATABASE 大小写都有)
当前登录为firstdb数据库,自己不能删除自己的库。
若真要删除可以登录postgres用户删除,因为建库是用postgres用户。
最后
下次说表中增加行和查询表
完毕!