PostgreSQL是一个开放源代码的对象关系型数据库管理系统(ORDBMS),支持几乎所有的SQL构件(包括子查询、事务、用户定义类型和函数)。
数据库是由一批数据构成有序的集合。这些数据被存放在结构化的数据表里。数据表之间相关互联,,反映了客观事物间的本质联系。、
PostgreSQL,客户端-服务器结构,(C/S结构),是一种网络架构。
服务器是整个应用系统资源的存储与管理中心,多个客户端的请求被传送到数据库服务器,数据库服务器进行处理后,将结果返回客户端,减少网络数据传输量。
PostgreSQL支持热备份技术,该技术是创建、维护和监控一个或者多个主数据库的备用数据库,以保护企业数据不受故障、灾难、错误和崩溃的影响。它通过一个控制中心来完车以上所有的任务。当生产数据库由于计划中断而变得不可用时,数据库热备份可以将任意备用数据库切换到生产角色,从而使与中断相关的停机时间减到最少,并防止数据丢失。
修改数据库的名称
alter database test rename to testdb;
修改数据库拥有者
alter database test owner to postgres1;
删除数据库
drop database test;
数据库在修改数据库名称、删除的时候,以下状态无法操作成功。当数据库处于正在使用状态等的时候。
修改数据库连接最大值
alter database testdb with connection limit=1000;
在创建数据库时,create database后面不能直接加条件,需要配合alter语句进行。这和SQL server有差别。
主键,又称主码,是表中的一列或者多列。
主键约束(Primary Key Constraint)
主键约束要求主键列的数据唯一,并且不允许为空。
1.单字段主键
create table tb1
(
id int ,
name varchar(20),
age int,
primary key(id)
);
2. 多字段联合主键
create table tb1
(
id int ,
name varchar(20),
age int,
primary key(id,name,age)
);
外键约束
外键用来在两个表的数据之间建立连接,可以是一列或者多列。一个表可以有一个或者多个外键。
create table tb_dept1
{
id int primary key,
name varchar(22) not null,
location varchar(50)
}
create table tb_emp5
{
id int primary key,
name varchar(25),
deptid int,
salary float,
constraint fk_emp_dept1 foreign key(depid) references tb_dept1(id);
}
非空约束 not null constraint
指定字段的值不能为空
create table tb_emp6
(
id int primary key,
name varchar(20) not null,
deptid int,
salary float,
constraint fk_emp_dept2 foreign key (deptid) tb_dept1(id)
)
唯一约束 unique constraint
唯一性约束(unique constraint)要求添加该约束的列字段的值唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。
create table tb-dept2
(
id int parmary key,
name varchar(20) unique ,
location varchar(20)
)
create table tb_dept3
(
id int primary key,
name varchar(20),
location varchar(20),
constraint sth unique(name)
)
unique 和primary key : 一个表中可以有多个字段声明为unique , 但只能有一个primary key 声明:声明为primary key 的列不允许有空值,但是声明为unique的字段允许空值null的存在。
只能有一个primary key 声明的含义:
以下为错误声明:
create table tb_dept3
(
id int primary key,
name varchar(20) primary key,
location varchar(20),
constraint sth unique(name)
)
这是错的
默认约束 default constraint
指定某列的默认值
语法规则如下:
字段名 数据类型 default 默认值
create table tb_emp7
(
id int primary key,
name varchar(25) not null,
deptid int default 11,
salary float,
constraint fk_emp_deptid3 foreign key (deptid) references tb_dept1(id)
)
修改表名
alter table <旧表名> rename to <新表名>
修改字段的数据类型
alter table <表名> alter column <字段名> type <数据类型>
修改字段名
alter table <表名> rename <旧字段名> to <新字段名>
添加字段
alter table
1. 添加无完整性约束条件的字段
alter table test1 add column usernameid int;
2.添加有完整性约束条件的字段
alter table test1 add column1 varchar(10) not null;
删除字段
alter table