随便玩玩之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,一经查实,立即删除!

相关文章

生产环境中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||…

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

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

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

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

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.…

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;准确无误地打印上…

session机制详解以及session的相关应用

session是web开发里一个重要的概念&#xff0c;在大多数web应用里session都是被当做现成的东西&#xff0c;拿来就直接用&#xff0c;但是一些复杂的web应用里能拿来用的session已经满足不了实际的需求&#xff0c;当碰到这样的情况时候我们需要更加深入的理解session的机制&am…

(转)Shell中获取字符串长度的七种方法

Shell中获取字符串长度的七种方法 原文&#xff1a;http://blog.csdn.net/jerry_1126/article/details/51835119 求字符串操作在shell脚本中很常用&#xff0c;下面归纳、汇总了求字符串的几种可能方法: 【方法一】:利用${#str}来获取字符串的长度 【方法二】:利用awk的length方…

linux下用core和gdb查询出现段错误的地方

有些时候我们在一段C代码的时候&#xff0c;由于对一个非法内存进行了操作&#xff0c;在程序运行的过程中&#xff0c;出现了"段错误"。呵呵&#xff0c;这种问题我想很多人会经常遇到。遇到这种问题是非常无语的&#xff0c;只是提示了"段错误"&#xff…

什么是js的严格模式

设立严格模式的原因&#xff1a; - 消除Javascript语法的一些不合理、不严谨之处&#xff0c;减少一些怪异行为; - 消除代码运行的一些不安全之处&#xff0c;保证代码运行的安全&#xff1b; - 提高编译器效率&#xff0c;增加运行速度&#xff1b; - 为未来新版本的Javascrip…

代码解说Android Scroller、VelocityTracker

在编写自己定义滑动控件时经常会用到Android触摸机制和Scroller及VelocityTracker。Android Touch系统简单介绍&#xff08;二&#xff09;:实例具体解释onInterceptTouchEvent与onTouchEvent的调用过程对Android触摸机制须要用到的函数进行了具体的解释。本文主要介绍两个重要…

支付宝支付

1 申请商户平台 2 申请开放平台 3 申请APP支付 4 创建应用 (名称&#xff0c;logo) 5 生成RSA秘钥&#xff08;公钥&#xff0c;私钥&#xff09; 6 在应用中配置公钥 7 配置其他内容&#xff0c;包括iOS bundle ID。配置安卓包名&#xff0c;和签名。 获取appid&#xff0c;公…

不可错过的CMS学习笔记

引子 带着问题去学习一个东西&#xff0c;才会有目标感&#xff0c;我先把一直以来自己对CMS的一些疑惑罗列了下&#xff0c;希望这篇学习笔记能解决掉这些疑惑&#xff0c;希望也能对你有所帮助。 CMS出现的初衷、背景和目的&#xff1f; CMS的适用场景&#xff1f; CMS的tr…

相机工作原理

轻轻一按&#xff0c;你的相机就把光子转换为了比特。于是一张相片就保存到了你的 iPhone 里。 让我们假设一下你身处室外&#xff0c;环顾四周。三亿里之外&#xff0c;太阳无时无刻不在发射光子。它们需要花上 8 分钟之久才能到达我们舒适的星球。有一些光子撞击到你周围的物…

CentOS用户和用户组的操作

2019独角兽企业重金招聘Python工程师标准>>> CentOS用户和用户组的操作 長得太帥忚四種檌 关注 2018.05.12 16:40* 字数 312 阅读 115评论 0喜欢 0 用户组的操作 1.添加用户组&#xff1a; groupadd 组名2.修改组名 groupmod -n 新组名 原组名删除用户组groupdel 组…

Linux用户空间与内核地址空间

Linux 操作系统和驱动程序运行在内核空间&#xff0c;应用程序运行在用户空间&#xff0c;两者不能简单地使用指针传递数据&#xff0c;因为Linux使用的虚拟内存机制&#xff0c;用户空间的数据可能被换出&#xff0c;当内核空间使用用户空间指针时&#xff0c;对应的数据可能不…

浅谈微信smali注入

作者&#xff1a;郭少雷 搞android搞了几年也没搞出个啥牛逼app出来&#xff0c;眼看时下最火的app微信如此火热&#xff0c;实在想搞搞它&#xff0c;索性就想着给它加点东西进去。 以下内容纯属本人个人爱好&#xff0c;仅限个人学习android用途以及对android的深入了解。 首…

Embeded linux之移植iptables

一、内核环境&#xff1a; linux-3.4.35 -*- Networking support ---> Networking options ---> [*] Network packet filtering framework (Netfilter) ---> IP: Netfilter Configuration ---> <*> IP tables support (required for filtering/masq/NAT)…

Hadoop HIVE

数据仓库工具。构建在hadoop上的数据仓库框架&#xff0c;可以把hadoop下的原始结构化数据变成Hive中的表。&#xff08;主要解决ad-hoc query&#xff0c;即时查询的问题&#xff09; 支持一种与SQL几乎完全相同的语言HQL。除了不支持更新&#xff0c;索引和事务&#xff0c;几…

Xcode9学习笔记67 - 打印查看程序沙箱结构中常用的几个目录

override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.//首先获得应用程序目录的路径&#xff0c;在该目录下有三个文件夹&#xff1a;文档目录、库目录、临时目录以及一个程序包。该目录就是应用程序的…