PostgreSQL学习

PostgreSQL上手

PostgreSQL 12.2 手册

postgre主键自增

-- 方法一
create table test_a 
(
  id serial,
  name character varying(128),
  constraint pk_test_a_id primary key( id)
); 

-- 方法二
create table test_b
(
  id serial PRIMARY KEY,
  name character varying(128)
); 

-- 方法三
create table test_c 
(
  id integer PRIMARY KEY,
  name character varying(128)
);  

CREATE SEQUENCE test_c_id_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;
    
alter table test_c alter column id set default nextval('test_c_id_seq');

PostgreSQL 索引

数据库知识基础入门

什么是数据库?

在这里插入图片描述

数据库表

在这里插入图片描述

常用的数据类型

在这里插入图片描述

数据库系统构成

在这里插入图片描述

SQL语言

在这里插入图片描述

常用的数据库访问技术

在这里插入图片描述

PostgreSQL数据库概述

PostgreSQL 是一个自由的对象-关系数据库服务器(数据库管理系统),是从伯克利写的 POSTGRES 软件包发展而来的。经过十几年的发展, PostgreSQL 是世界上可以获得的最先进的开放源码的数据库系统, 它提供了多版本并发控制,支持几乎所有SQL语句(包括子查询,事务和用户定义类型和函数),并且可以获得非常广阔范围的(开发)语言绑定 (包C,C++,Java,perl,python,php,nodejs,ruby)。

PostgreSQL的发展历程

在这里插入图片描述

PostgreSQL数据库的特点

在这里插入图片描述

PostgreSQL数据库环境搭建

官方网站

windows下的安装

在linux系统启动和关闭数据库服务

#查看服务进程
$ ps aux | grep postgres
#切换到postgres安装目录下
$ cd /PostgreSQL/9.3/bin
#PostgreSQL在安装过程中不推荐使用root用户来启动和关闭服务,PostgreSQL会安装一个postgres用户,切换到postgres用户下
$ su postgres
#使用pg_ctl命令关闭服务
$ ./pg_ctl stop -D /PostgreSQL/9.3/data			(-D 是指向data文件所存储的目录)
#使用pg_ctl命令关闭服务
$ ./pg_ctl stop -D /PostgreSQL/9.3/data -l /PostgreSQL/9.3/data/s (-l 是指向服务启动时日志所存储的目录)

使用pgAdmin工具操作数据库对象

在这里插入图片描述
在这里插入图片描述

使用SQL语言操作数据库对象

#创建数据库
create database db_axin;
create database db_axin with owner = postgres encoding = 'utf-8';#创建数据库并指定了参数,所有者为owner,编码格式utf-8。
#修改数据库名称
alter database db_axin rename to db_axin2; 
#修改数据库的参数信息
alter database db_axin connection limit 20; #最大连接数
#删除数据库
drop database db_axin;

使用pgAdmin工具操作数据表对象

在这里插入图片描述

使用SQL语言操作数据表对象

创建

在这里插入图片描述

修改

在这里插入图片描述

在这里插入图片描述

删除

在这里插入图片描述

如果并不存在,并不执行真正的删除操作。

常用的数据类型

  • 数值类型
  • 日期与时间类型
  • 字符串类型

数值类型

在这里插入图片描述

注意:在保存的数据当中,小数点是不占用一位的。

create table temp(
	x smallint,
	y int,
	z real,
	n numeric(5,2)
)

insert into temp values(2,3,2.55,6.88);
insert into temp values(2,3,2.55,1000.88);			//插入不成功,超过了最大的储存长度
insert into temp values(2,3,2.55,100.88);			//小数点在数值当中不计算一位的。
insert into temp values(2,3,2.55,100.888);			//不会报错,自动四舍五入
select * from temp;

在这里插入图片描述

在储存过程中合理定义精度,精度不过,会发生四舍五入,导致数据精度丢失。

日期与时间类型

在这里插入图片描述

字符串类型

在这里插入图片描述

create table temp1(
	ch char(10),
    vch varchar(30),
    t text;
)

insert into temp values('axin','axin1','axin2');

select concat('(',ch,')'),concat('(',vch,')'),concat('(',t,')') from temp3;//用于连接字符串concat

在这里插入图片描述

如何选择数据类型?

在这里插入图片描述

PostgreSQL运算符

算术运算符

select 3+2,3-2,3*2,3/2,3%2;

在这里插入图片描述

比较运算符

在这里插入图片描述

select 1=0,'2'=2,'b'='b',null=null,null=1;

如果有一个参数或两个参数为null,比较的结果为空。

若同一个运算中两个参数都是字符串,按照字符串进行比较。

如果一个整数类型和字符串进行比较,postgetsql会自动将字符串转换为数值进行比较。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

逻辑运算符

在这里插入图片描述

在程序当中,1和y当做真来处理,0和n当做假来处理

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

运算符的优先级

在这里插入图片描述

PostgreSQL常用函数

常用的数值函数

在这里插入图片描述

常用的字符串函数

在这里插入图片描述

select e_name,length(e_name) from employee;

在这里插入图片描述

select e_no,e_name,e_hireDate,concat(e_no,e_name,e_hireDate) from employee;

在这里插入图片描述

常用日期时间函数

在这里插入图片描述

在这里插入图片描述

PostgreSQL自定义函数

自定义函数语法

在这里插入图片描述

实例1:

在这里插入图片描述

结果:

在这里插入图片描述

实例2:

在这里插入图片描述

||就是将两个内容拼接在一起

在这里插入图片描述

删除一个函数

在这里插入图片描述

PostgreSQL数据库索引

索引分类

在这里插入图片描述

B-tree索引:用于使用=和范围查询,按某列解锁数据

在雇员名称上建立索引

//创建索引create index emp_name_index on employee(e_name);//create index...on...默认创建的是B-tree树索引//删除索引drop index emp_name_index;

使用索引的优缺点

在这里插入图片描述

PostgreSQL数据库视图

在数据库中,视图与表的作用非常类似,视图是从一张表或多张表导出的数据内容。

创建视图:

在这里插入图片描述

查询视图:

select * from v_emp_dev;//视图与表类似,可按照查询表的方式查询视图

视图检索出来的数据:

在这里插入图片描述

//删除视图drop view v_emp_dev;

视图的作用

  • 简单化
  • 安全性
  • 逻辑数据独立性

PostgreSQL数据操作

简单数据的插入

在这里插入图片描述

在这里插入图片描述

数据批量插入操作

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

数据更新操作

将一个结果的内容更新到指定字段上面

update student set score =1.1+2.3 where id=1;

delete与truncate操作区别

在这里插入图片描述

PostgreSQL数据表主键、外键

定义主键约束

在这里插入图片描述

创建外键约束的方式

在这里插入图片描述

主键和外键的作用

在这里插入图片描述

PostgreSQL数据表约束

定义非空约束

在这里插入图片描述

唯一约束

每两条记录,约束的字段内容不能重复。主键约束也是不可重复,指定单个字段,且不可为空;而唯一约束可为空,可指定多个字段。

在这里插入图片描述

默认值约束

在这里插入图片描述

约束作用

在这里插入图片描述

简单数据查询操作

查询语句语法

在这里插入图片描述

null处理

雇员的工资是空值,空值按可能最大值处理,把空值数据放在最上面。如下处理:

在这里插入图片描述

把空值数据放在最上下面。

在这里插入图片描述

limit关键字

在这里插入图片描述

分页处理

在这里插入图片描述

子查询操作

exists关键字子查询操作

在这里插入图片描述

子查询可以成功返回结果集,即返回真值。就会显示外面主查询的内容。相反,外部不会返回查询内容。

结果:返回所有数据

在这里插入图片描述

返回员工表中属于开发部的员工信息

内部先查出为开发部的d_no,外部查询出d_no=dept_no的关联信息。

在这里插入图片描述

在这里插入图片描述

相反的查询

在这里插入图片描述

in关键字子查询操作

返回员工表中属于开发部的员工信息

在这里插入图片描述

标量子查询操作(当做数据内容)

返回员工编号、名称、所在部门的位置(||做拼接符)

在这里插入图片描述

查询结果集合并操作

union all

将两个结果集进行合并的操作

在这里插入图片描述

union

将两个结果集进行合并的操作并去重

区别

在这里插入图片描述

在这里插入图片描述

注意:

合并的结果集两条语句的字段需对应,对应不上的补null

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值