所以,也是有些沒有想到的方式,又開始postgresql,只是裝了之後放了很久,所以還是需要實際需求啊。好吧,再次用起來。

安裝

windows

好像沒有什麼特別的,下一步下一步就行。

archlinux

安裝就直接pacman就行:

sudo pacman -S postgresql

提權然後進入postgresql的shell

sudo -iu postgres  

初始化數據庫:

initdb -D /var/lib/postgres/data

然後應該推出postgresql用戶shell。

啓動:

sudo systemctl start postgresql

查看情況:

systemctl status postgresql

然後如果正常就ok了。

使用的時候還是需要先換成postgresql用戶:

sudo -iu postgres

然後就可以psql了。

基礎使用

創建數據庫: create database <數據庫名稱> ;

創建表: create table

刪除表: drop table

基礎數據類型

integer 整數

char 字符

varchar

date

基礎查詢

select * from


SQL基礎教程 (第2版) Mick著

在學習SQL中最重要的就是一下2點:親自編寫SQL,通過執行SQL來學習和理解數據庫操作。

第0章 緒論——搭建SQL的學習環境

postgresql的安裝和連接設置

使用“listen_addresses”作为关键词来查询文件内容。安装完成之后,该关键词会被设置成“listen_addresses = ‘*‘”。虽然这意味着允许所有远程主机进行连接,但是这次的学习环境只需要通过本地机器进行连接就可以了,因此我们在这一行的最前面添加一个 #,注释掉该行。

#listen_addresses = '*'

listen_addresses = 'localhost'

通過postgresql執行SQL語句

psql -U postgres

在linux下需要:

sudo -iu postgres

psql

然後就可以執行sql語句了。”posgres=#”後面就可以直接sql了。

創建學習用的數據庫

CREATE DATABASE shop;

另外,一點psql的使用:\l 列出數據庫 \c [數據庫] 連接指定的數據庫 \q 推出

數據庫和SQL

數據庫是什麼

數據庫無處不在。

关系数据库是现在应用最广泛的数据库。关系数据库在 1969 年诞生,可谓历史悠久。和 Excel 工作表一样,它也采用由行和列组成的二维表来管理数据。同时,它还使用专门的 SQL(Structured Query Language,结构化查询语言)对数据进行操作。

比较具有代表性的 RDBMS 有如下 5 种。

  • Oracle Database :甲骨文公司的 RDBMS

  • SQL Server :微软公司的 RDBMS

  • DB2 :IBM 公司的 RDBMS

  • PostgreSQL :开源的 RDBMS

  • MySQL :开源的 RDBMS

數據庫的結構

C/S

表的結構:列(字段),行(record,記錄)

SQL概要

DDL(Data Definition Language,数据定义语言)  用来创建或者删除存储数据用的数据库以及数据库中的表等对象。DDL 包含以下几种指令。

CREATE :创建数据库和表等对象

DROP : 删除数据库和表等对象

ALTER : 修改数据库和表等对象的结构

DML(Data Manipulation Language,数据操纵语言)  用来查询或者变更表中的记录。DML 包含以下几种指令。

SELECT :查询表中的数据

INSERT :向表中插入新数据

UPDATE :更新表中的数据

DELETE :删除表中的数据

DCL(Data Control Language,数据控制语言)  用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对 RDBMS 的用户是否有权限操作数据库中的对象(数据库表等)进行设定。DCL 包含以下几种指令。

COMMIT : 确认对数据库中的数据进行的变更

ROLLBACK :取消对数据库中的数据进行的变更

GRANT : 赋予用户操作权限

REVOKE : 取消用户的操作权限


SQL 的基本书写规则:

SQL 语句要以分号(;)结尾

SQL不区分关键字的大小写

字符串和日期常数需要使用单引号(’)括起来

单词需要用半角空格或者换行来分隔

表的創建

CREATE TABLE < 表名 >
(< 列名 1> < 数据类型 > < 该列所需约束 >,
< 列名 2> < 数据类型 > < 该列所需约束 >,
< 列名 3> < 数据类型 > < 该列所需约束 >,
< 列名 4> < 数据类型 > < 该列所需约束 >,
.
.
.
< 该表的约束 1>, < 该表的约束 2>,……)

如:

CREATE TABLE Product
(product_id CHAR(4) NOT NULL,
product_name VARCHAR(100) NOT NULL,
product_type VARCHAR(32) NOT NULL,
sale_price INTEGER ,
purchase_price INTEGER ,
regist_date DATE ,
PRIMARY KEY (product_id));

只能使用半角英文字母、数字、下划线(_)作为数据库、表和列的名称。在同一个数据库中不能创建两个相同名称的表,在同一个表中也不能创建两个名称相同的列。

数据类型表示数据的种类,包括数字型、字符型和日期型等。每一列都不能存储与该列数据类型不符的数据。

NOT NULL 约束。主键约束

表的刪除和更新