仰望の小窝
We grow neither better nor worse as we grow old but more and more like ourselves.
DataGrip远征之离港篇(PostgreSQL基础篇一)

一、基本概念介绍&PostgreSQL特性

从这篇开始,我们正式对数据库进行学习。那么在庞大的数据库家族里边,最具有代表性的当然还是SQL家族。那么很多小白会产生疑问,SQL到底是啥呢,那么下面这张图,或许能够或多或少的解答一下你的疑惑。

p41

在数据库的选择上,我也着重考虑了一下各大数据库的优劣后,慎重选择了本系列所使用的的SQL型数据库——PostgreSQL。以下是维基百科还有菜鸟教程对它的简单介绍

p47

p49

确实,如果在国内的话,大家一提到SQL,脑海里边大多数浮现出来的都是微软的SQL SERVER(当然我上数据库课就用的这个)还有互联网是上面大火的MySQL(甲骨文旗下,分开源与商业版本)。但是对于这款PostgreSQL,大家却鲜有提及,可我为什么要拿他来作为本教程的例子来进行教学呢。下面,我就用几张图来向大家证明一下我的想法究竟怎么样:

p42

p43

p44

p45

由此可见,PostgreSQL不仅是一款开源数据库,更是一款优秀的开源数据库。有着极其强大功能还有广泛的操作系统支持。而且,PostgreSQL里面还有一个很强大的组件——PostGIS

p47

所以说,在庞大的SQL型数据库家族里边——PostgreSQL确实是一个强大且独特的存在。不仅完全开源(MySQL有商业版),而且还有着强大的数据库功能和插件支持,且支持很多类型的数据(JSON、XML等等)。所以说,我们选择这款数据库来学习也是无可厚非的!
接下来,就让我们利用上一篇学过的DG,来对PostgreSQL进行一些基本的建立以及查询操作吧!

二、数据库的安装

这个过程跟安装DG基本上差不多,就是去官网找到下载链接以后下载安装包以后一步步安装即可。【PostgreSQL无需设置用户名,默认postgres(该用户为超级用户,也就相对于root或者Administrator)。设置的密码就是该用户的密码】

官网下载界面(https://www.postgresql.org/download/)

直接下载界面()

安装好以后的管理界面启动窗口以及登录界面(PS:这个程序叫做pgAdmin4,是PostgreSQL图形化管理界面。可以在里边进行各种操作。由于本系列主要介绍DataGrip来对数据库操作,所以略过此部分,有兴趣的朋友可以自行查阅菜鸟教程或者相关资料来进行学习)

PostgreSQL的插件管理器(Application Stack Bulider)

p5

p6

进入管理界面后的数据库信息界面(右边性能状态,左边数据库结构信息)

p7

p8

三、基本操作

1.连接数据库(上篇已经介绍过了)

首先按照下图输入自己设置的用户名以及密码进行连接

p9

连接成功后如下

p10

2、建立&删除(数据库、数据表、模式)

i、建库&删库(跑路?)&选库

数据库建立语句:CREATE DATABASE dbname(数据库的名字);

p11

数据库删除语句:DROP DATABASE dbname;

p12

数据库的选择:①寻找这个下拉箭头 ②在下拉菜单里边对数据库进行选择喽

p13

Warning(:bangbang:):SQL语言和C\C++、JAVA语言一样,均以英文分号(;)来作为某条语句的结束符,如果你粗心大意忘记它的话,就会出现一些莫名其妙的错误。(毕竟当年也是这么过来的 (:weary:) )

ii、建表&删表

建表语句:CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
…..
columnN datatype,
PRIMARY KEY( 一个或多个列 )
);

p14

结果如下:

p15

p16

删表语句:DROP TABLE table_name(表名);
p17

iii、模式创建&删除

创建模式语句:create schema myschema;
create table myschema.company(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID));

p18

删除模式语句:DROP SCHEMA myschema CASCADE;(模式&模式内对象) DROP SCHEMA myschema;(删除空模式)(此处模式内有对象存在,所以使用第一个语句)
p19

3、向表内插入数据(记录) (PS:删除会在下一章讲解)

INSERT INTO 语句语法格式如下:
INSERT INTO TABLE_NAME (column1, column2, column3,…columnN)
VALUES (value1, value2, value3,…valueN);
其中:
column1, column2,…columnN 为表中字段名。
value1, value2, value3,…valueN 为字段对应的值。

实例:

创建 COMPANY 表并向其中插入数据:
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL,
JOIN_DATE DATE
);
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (1, ‘Paul’, 32, ‘California’, 20000.00,’2001-07-13’);
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,JOIN_DATE) VALUES (2, ‘Allen’, 25, ‘Texas’, ‘2007-12-13’); (本语句忽略 SALARY 字段)
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (3, ‘Teddy’, 23, ‘Norway’, 20000.00, DEFAULT ); (本语句 JOIN_DATE 字段使用 DEFAULT 子句来设置默认值,而不是指定值)
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (4, ‘Mark’, 25, ‘Rich-Mond ‘, 65000.00, ‘2007-12-13’ ), (5, ‘David’, 27, ‘Texas’, 85000.00, ‘2007-12-13’);
(以上语句采用多行插入)

p20

插入后的数据表:
p21

4、查询语句(查看数据表内容以及结合下面的运算符表达式来查询特定内容)

语法格式:SELECT column1, column2,…columnN FROM table_name;
column1, column2,…columnN 为表中字段名。
table_name 为表名。
查询整个表内容可用此句:SELECT * FROM table_name;
那么就让我们来赶紧查询一下我们刚刚建立好的数据表吧 (:smile:)

p22

当然我们也可以读取指定字段 ID 和 NAME:

p23

(PS:其实在实际使用中如果没有特定需求根本没必要这么麻烦,DataGrip里边方便的图形管理方式就够你使用的了,在实际应用当中一般都是用SELECT语句结合下面的运算符表达式还有后面学到的一些语句实现一些特定的查询操作喽)

5、运算符&表达式(承上启下喽,本篇最后一节内容喽)

i、运算符(跟常见语言里边的大同小异)

PostgreSQL 常见的运算符有:
算术运算符
比较运算符
逻辑运算符
按位运算符
(这里就不在详细介绍了,相关链接会在第四部分出现,只有运行结果)
算术运算符的实例:

p24

p25

比较运算符在查询中的实例:

p31

p36

逻辑运算符在查询中的实例:(此处有遗漏,抱歉抱歉)

p40

按位运算符的实例:

p38

ii、表达式(THE END OF THE PAGE)

表达式是由一个或多个的值、运算符、PostgresSQL 函数组成的。
PostgreSQL 表达式类似一个公式,我们可以将其应用在查询语句中,用来查找数据库中指定条件的结果集。

PostgreSQL 中的表达式分为:布尔表达式、数字表达式以及日期表达式三类(详细暂不介绍)

小技巧:如何把SQL文件中的内容导入PostgreSQL (其他SQL型数据库也与此方法相同)
我们学习的语言叫做SQL语言,那么与之对应的文件即为.sql后缀名结尾的文件(其他语言也是如此,只不过有的是缩写(Python是.py))。
实例中提供了一个SQL文件,那么我们改如何利用它呢。其实很简单,借助DataGrip只需以下两步即可
① 打开左上角文件菜单,选择标红处来打开文件

p26

② 选择文件路径(用浏览器下载的在你的下载文件夹里边)

p50

③ 在右边栏选择并打开文件后,复制文件内容,将其粘贴到查询控制台当中(输入SQL语句的地方)

p27

以上三步完成以后,我们利用已有的SQL文件的建表操作就完成了(你也可以把你自己的语句保存到SQL文件里边,方便日后使用)

提示:在选择多行语句的时候,一般点击最后一个选项(即全标为绿色)来进行选择

p28

以下便是综合利用布尔表达式以及数字表达式来对该表进行查询的实例:

p37

日期表达式:该表达式可以查询当前数据库所在系统的时期与时间【默认为GMT(格林尼治时间)】(tips:如果想与系统时间相同,需要手动设置时区,后面会提到)

p39

四、小结&预告

i、小结

本篇(数据库部分第二篇)基本上介绍了PostgreSQL的基本使用(食用)方法,让大家领略了SQL语言的用法以及特点。其实本系列不仅是一个教程,更是我本人的一趟探索之旅。我其实大二上学期那个数据库课程学的也并不怎么的,对于SQL语言也基本上是一知半解。但在日后的学习当中愈发显现出来了数据库的重要性。虽然我们专业方向是大数据,但是某些地方还是少不了SQL的支持(例如Apache Hive)。然后又在去年下半年接触到了NoSQL这个概念,感觉很新奇。所以可以说是对数据库又有了不小的兴趣。而且在探索了几天DataGrip以后,发现这确实是个神器一般的IDE。所以我便以PostgreSQL和CouchBase(这个是在DataGrip里边偶然发现的)为代表来写本系列教程数据库部分。【当然MongoDB(助我完成了数据采集存储课程的课程设计)也是一款很好用且易用的NoSQL数据库,日后有时间也会写一下有关它的教程(番外篇喽)。】

ii、下期预告

下期会带领大家把剩下的部分补充完整,并拓展一点PostgreSQL的高级玩法(与Apache HTTP Server插件结合)。并且进一步发掘DataGrip里边更好玩的功能。所以说,下期可能还要再等上那么一段时间(因为我还要考俩证hhh)。

五、相关问题说明

本篇大量借鉴了菜鸟教程当中的PostgreSQL系列教程(https://www.runoob.com/postgresql/postgresql-tutorial.html) 在此也对菜鸟教程的维护者们表达一声衷心的感谢(没有你们也没有我这篇教程可以说(:joy:))本处没有提及到的内容,大部分都可以在这个网页上找到,有兴趣的可以前去参考一下。
拓展:我把PostgreSQL和CouchBase相关官方文档以及维基百科PDF版本压缩后上传到了我的网盘里,现将链接附于此处方便大家自取:

链接:https://pan.baidu.com/s/1xssmYUsQyF6Q9pdO33pteA
提取码:f9y9

感谢各位的大力支持,你们的热情也是我坚持创作下去的不懈动力,如果觉得本文比较好的话,可以在文章下方将鼠标轻轻移到支付宝&微信出,给我一点小小的奖励。也可以在下面找到相关社交软件的入口,来将本文分享出去哦。(等以后有时间会在b站上传录播课哦,嘿嘿嘿)

PostgreSQL DataGrip
考点精讲 4-课程概论
DataGrip远征之起航篇
© 2020 John Doe
Powered by hexo | Theme is hexo-theme-blank
Title - Artist
0:00