postgresql筆記
所以,也是有些沒有想到的方式,又開始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 约束。主键约束