随便玩玩之PostgreSQL(第一章)PostgreSQL简介


随便玩玩之PostgreSQL

 未经授权不得转载


第1章PostgreSQL简介

 


1.1什么是PostgreSQL
Postgresql是数据库(软件)。
The world's most advanced open source database.
世界上最先进的开源数据库。


1.2PostgreSQL的优势
随便用、不要钱

比MySQL好,媲美Oracle


 

1.3PostgreSQL安装
下载Windows版本的PostgreSQL,双击启动安装程序。她会自动安装VC++2013运行时组件,之后出现如下界面。

点击NEXT(下一步),进入选择安装目录界面。默认即可。

点击NEXT,进入选择安装组件界面。将Stack Builder勾选选项去掉(不去掉也不影响使用)。

点击NEXT,进入选择数据保存目录(数据库数据文件保存位置)界面。默认即可。

点击NEXT,进入设置postgres帐户密码界面。设置为123。

点击NEXT,进入设置服务端口(监听端口)界面。默认即可。

点击NEXT,进入设置语言区域界面。默认即可。

点击NEXT,进入安装前检查界面。

点击NEXT,进入安装准备界面。点击NEXT,进入安装状态。稍等片刻,倒一杯水的工夫,安装已经完成,如下。

点击Finish,完成安装。



1.4开启PostgreSQL数据库之旅。
点击开始菜单,选择所有程序,打开PostgreSQL菜单项。可以看到安装了三个程序,另一个菜单项内附带了四个帮助文档。
PgAdmin4是管理PostgreSQL数据库的界面程序(GUI管理工具)。
SQL Shell是管理PostgreSQL数据库的命令行程序(Command Line Tools)。
Reload Configuration是重置数据库配置程序。


1.5 SQL Shell 使用介绍
打来SQL Shell (pgsql)程序,出现命令行登录界面,提示输入服务器名称,数据库名称,服务端口名称,用户名称,全部按回车键(Enter)即可,最后提示输入“用户postgres的口令”,输入密码,安装时设置的是123,这里就输入123按回车键,进入PostgreSQL数据库交交互界面。本书大部分案例使用SQL Shell程序,所有SQL语句(命令)必须以半角英文状态输入。

在#号后输入以下命令。

1 SELECT version();

得到以下响应。

1                           version
2 ------------------------------------------------------------
3  PostgreSQL 10.0, compiled by Visual C++ build 1800, 32-bit
4 (1 行记录)

我们输入的语句为:SELECT version();,SELECT是用于从数据库(表)中选取数据语句,中间有一个空格,version()表示版本号,分号(;)表示语句结束。
注:1.PostgreSQL语句关键字对大小写不敏感,即不区分大小写。表名、字段名(列名)区分大小写,引号包含的内容区分大小写。所以SeLEct VerSION();得到的效果与上例相同。因为习惯,为了规范化和代码的易读、易维护,对关键字使用大写,其他使用小写。使用小写的前提是数据库内所有表名、字段名为小写,否则请根据实际情况。2.SQL Shell要求每一条语句必须以分号结束,所以每一条语句后必须要有一个分号。PgAdmin无此要求,她会自动将语句加上分号。

 1.6pgAdmin使用介绍
打开pgAdmin程序,在左边选择节点:Server→PostgreSQL 10(x86),第一次点击系统会提示输入密码,可选择是否保存密码。保存密码以后打开pgAdmin不用再输入密码,由于我们是在学习PostgreSQL数据库,建议勾选保存密码。

pgAdmin程序界面,左边是数据库内信息,右边是控制台。控制台内可以监视数据库运行情况,查看数据库信息。
点击节点右键:Server→PostgreSQL 10(x86) →Databases(1) →postgres,选择Query Tool,在右边弹出的的窗口中输入以下内容:

1 SELECT version();

得到以下结果。

1 PostgreSQL 10.0, compiled by Visual C++ build 1800, 32-bit

如图所示。

在Query Tool中输入SQL语句和在SQL Shell中输入SQL语句效果相同,建议在SQL Shell中练习。


1.7PostgreSQL语句中的注释
PostgreSQL语句中的注释有单行注释和段落(多行)注释。注释用来标记语句用途、表或字段含义、暂时不执行语句等。无强制要求,凡是有语句(代码)的地方都可以使用,写什么都可以。SQL语句作为注释内容后,不再执行。
单行注释以—开头(两个横杠开头)。

1 --查询数据库版本
2 SELECT version(); --上一行和这一行注释标记之后的内容都是注释

段落注释以/*开头,以*/结束。

1 /*
2 这是一个查询数据库版本的语句 */
3 SELECT version();

1.8 准备使用数据
安装完后的数据库没有数据供我们练习,需要向数据库内插入一些数据。创建存放学生考试成绩信息表,再向表内插入一些数据。
在SQL Shell中输入以下语句(命令)。

1 CREATE TABLE cj (
2     id int,
3     kc varchar(20),
4     bj varchar(20),
5     xm varchar(20),
6     yw numeric,
7     sx numeric,
8     yy numeric
9 );

按回车键提示:

CREATE TABLE

表示成功创建表。
表内各字段的含义:id表示序号,无特别意义;Kc表示考试场次;bj表示班级;xm表示姓名;yw表示语文成绩,sx表示数学成绩;yy表示英语成绩。每个字段后都有一些标记,表示数据类型。
输入以下语句,插入一些数据(记录)。

 1 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(1,'期中考试','二班','李四',73,72,76);
 2 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(2,'期中考试','二班','王五',61,71,82);
 3 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(3,'期中考试','二班','张三',64,71,66);
 4 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(4,'期中考试','三班','孙七',82,62,72);
 5 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(5,'期中考试','三班','赵六',59,70,62);
 6 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(6,'期中考试','三班','周八',77,62,74);
 7 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(7,'期中考试','一班','刘一',74,72,74);
 8 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(8,'期中考试','一班','吴九',70,66,60);
 9 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(9,'期中考试','一班','郑十',65,73,82);
10 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(10,'期末考试','二班','李四',71,77,70);
11 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(11,'期末考试','二班','王五',66,76,76);
12 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(12,'期末考试','二班','张三',72,73,62);
13 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(13,'期末考试','三班','孙七',72,54,56);
14 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(14,'期末考试','三班','赵六',62,71,68);
15 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(15,'期末考试','三班','周八',60,71,66);
16 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(16,'期末考试','一班','刘一',59,53,60);
17 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(17,'期末考试','一班','吴九',65,75,62);
18 INSERT INTO cj (id,kc,bj,xm,yw,sx,yy) VALUES(18,'期末考试','一班','郑十',58,70,76);

按回车键后提示:

1 INSERT 0 1

表示插入数据成功。
查询插入的数据。输入以下语句。

1 SELECT * FROM cj;

按回车键得到以下结果:

表示数据已存在数据库的cj表中。
上图所显示的数据和平时用EXCEL做的表差不多。因为数据库的基础是表,数据库就是有一个一个的表组成。在EXCEL中的表头(列名称),PostgreSQL称作字段;EXCEL中的每一行数据,PostgreSQL中称作记录。简单的说就是列是字段,行是记录。


1.9 一些初学者常见的问题
问题一:数据库有Oracle、SQL Server、MySQL、PostgreSQL等等很多,学哪个好?
答:我不会说话的时候,根本不知道四川话好还是河南话好。只是父母教我会说河南话,长大了听得多了四川话也大概能听得懂,在四川待了一段时间居然学会了四川话,后来又跟着新闻联播学会了普通话。同理,先不要思考哪个好的问题,学会了PostgreSQL,掌握其他的数据库也很快。
问题二:PostgreSQL的SQL语句标准吗,我要学标准的SQL语句?
答:同问题一。
问题三:听大婶说PostgreSQL有很多缺点,不如Oracle功能多,稳定,PostgreSQL到底要不要学?
答:爱学不学,爱用不用。
问题四:听大婶说免费的才是最贵的,PostgreSQL贵在哪里?
答:当你不会数据库时,所有数据库都是贵的;当你学会数据库时,您才是最贵的,雇你的人都要考虑财力够不够用得起您这号大婶。

 

至此,第一章结束,简单介绍了PostgreSQL数据库的安装,操作方法。虽然简单,不过对于作为没有学过数据库的小白已经是难上加难了。

转载于:https://www.cnblogs.com/tashi-net/p/7816263.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252931.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bootstrap 利用jquery 添加disabled属性

添加: $("#id").attr("disabled","disabled"); 去除: $("#id").removeattr("disabled");转载于:https://www.cnblogs.com/duyunchao-2261/p/6692141.html

生产环境中Oracle常用函数总结

1>to_char,将日期转换为字符;add_months,在第一个参数的日期上加或者减第二个参数的值;select dkzh,jkhtbh,yhkrq,dkffrq,shqs,dqyqcs,to_char(add_months(dkffrq,shqsdqyqcs1),yyyymm) from grdk_dk_zz a where a.dkzt in(02,03) and jgbm like 01||…

国内VR内容分发平台探讨:未来充满变数,一切才刚开始

移动VR搞内容分发平台的思维源自于移动互联网时代,App Store成就了iPhone和苹果;安卓端谷歌应用商店称霸全球,唯独进不了中国,于是国内涌现了一大批移动分发平台,91无线、豌豆荚、安卓应用商店、机锋、安智、小米商店……最后大部…

Dockerfile构建容器镜像 - 运维笔记

在Docker的运用中,从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低。所以就需要一 种文件或脚本,我们把想执行的操作以命令的方式…

201421123042 《Java程序设计》第8周学习总结

1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容。 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 源代码: 答:查找对象是否再数组中,并且返回在数组中的下标。如果不在数…

Linux驱动静态编译和动态编译方法详解

内核源码树的目录下都有两个文档Kconfig和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文档相关的内核配置菜单。在内核配置make menuconfig时,从Kconfig中读出菜单,用户选择后保存到.…

Linux学习-11月12日(Apache安装)

2019独角兽企业重金招聘Python工程师标准>>> 11.6 MariaDB安装 11.7/11.8/11.9 Apache安装 扩展 apache dso https://yq.aliyun.com/articles/6298 apache apxs https://wizardforcel.gitbooks.io/apache-doc/content/51.html apache工作模式 https://blog.csdn.…

11. sql DDL

SQL分为5大类: DDL:数据定义语言 DCL:数据控制语言 DML:数据操纵语言 DTL:数据事务语言 DQL:数据查询语言 1、DDL(data definition language):create,drop,alter,rename to 数据类型 ①、数字类型,可以数学运算 number(4)代表整数…

[bzoj2243][SDOI2011]染色

来自FallDream 的博客,未经允许,请勿转载,谢谢qaq 给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相…

Linux学习笔记——例说makefile 增加宏定义

从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力。所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法。 例说makefile…

Android基本组件是什么?

1、ImageView继承View组件,不单单用于显示图片,用 XML代码 编写的Drawable也可以显示出来。其中的XML属性 android:scaleType(设置图片如何缩放或移动以适应ImageView的大小) 有很多的属性值,如:matrix(使用矩形方式进行缩放)fitXY(对图片横向纵向缩放)center(图片放在ImageVie…

Java 运算符及优先级

运算符 分割符&#xff1a;  ,  ;  []  ()算数运算符&#xff1a;    -  *  /  %    --关系运算符&#xff1a;  >  <  >  <    !逻辑运算符&#xff1a;  !  &  |  ^  &&  ||赋值运算符&#xff1a; …

array sort - 2 : quick sort

递归实现&#xff1a; #include <stdio.h>int arr[10] {3, 2, 4, 1, 9, 7, 5, 6, 0, 8};void print_array(){ int i 0; for (i 0; i < 10; i) printf("arr[%d]:%d ", i, arr[i]); printf("\n");}void swap(int *i, int *j){ …

Linux C 读取文件夹下所有文件(包括子文件夹)的文件名

本文&#xff1a;http://www.cnblogs.com/xudong-bupt/p/3504442.html Linux C 下面读取文件夹要用到结构体struct dirent&#xff0c;在头#include <dirent.h>中&#xff0c;如下&#xff1a; #include <dirent.h> struct dirent {long d_ino; /* inode number 索…

报表工具实现单据套打

【摘要】 单据套打再也不用手动测量&#xff0c;反复调试了&#xff0c;报表工具实现单据套打&#xff0c;去乾学院看个究竟&#xff1a;报表工具实现单据套打!实际项目开发中&#xff0c;很多情况会涉及到单据的打印。即在一张印刷好的空白单据上&#xff0c;准确无误地打印上…

每隔10秒钟打印一个“Helloworld”

/*** 每隔10秒钟打印一个“Helloworld”*/ public class Test03 {public static void main(String[] args) throws InterruptedException {ThreadImp threadImp new ThreadImp();Thread thread1 new Thread(threadImp);thread1.start();} }class ThreadImp extends Thread {p…

C++ STL 优先队列

//优先队列//Priority_queue //STL#include<iostream>#include<cstdio>#include<cstdlib>#include<queue>using namespace std;struct cmp{ bool operator() (const int a,const int b) const{//用const定义的a,b是包裹着变量外衣的常数&#xff0c;不…

GDB调试core文件样例(如何定位Segment fault)

core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (Linux中如果内存越界会收到SIGSEGV信号&#xff0c;然后就会core dump) 在程序运行的过程中&#xff0c;有的时候我们会遇到Segment fa…

管理信息系统的开发与管理

{% extendsmuban.html %} {% block head %}输入{% endblock %} {% block main %} <div><div class"form-group"><label for"question">标题</label><textarea class"form-control" cols"50" rows"2&q…

python11-28笔记(1.6-1.7)

1.6 多类型传值和冗余参数多类型传值&#xff1a;比如def fun(x,y)&#xff0c;定义2个形参定义一个元组t(1,2),如果把元组当做实参传入到函数中&#xff0c;会报错 如何将元组当做不同类型的参数传入到函数中fun(t) 代表传入的是元组或者这样调用fun((1,2))注意实参的个数要和…