隨便玩玩之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.pswp.cn/news/252931.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252931.shtml
英文地址,請注明出處:http://en.pswp.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))注意實參的個數要和…