PostgreSQL自学笔记:3 数据库的基本操作
3 数据库的基本操作
3.1 创建数据库
3.1.1 使用对象浏览器创建数据库
[Server] -> PostgreSQL 9.6 -> 数据库,右击 -> 创建
通常:
- 数据库:test
- 所有者:postgres
- 注释:PostgreSQL 学习专用
定义:
- 编码:UTF8
- Connection limit: -1
安全: 点击 权限 后面的 + ,添加选项:
- Grantee - PUBLIC
- 权限 - ALL
- Grantor - postgres
参数: 点击 参数 后面的 + ,添加选项:
- 名称 - application
- 值 - DEFAULT
- 角色 - postgres
保存
3.1.2 使用SQL创建数据库
工具 -> 查询工具
执行语句 create database zoo; //创建库zoo
数据库,右击刷新
3.2 修改数据库的属性
3.2.2 使用SQL语句修改数据库的属性
alter database name [ [with] option [...]];
alter database zoo rename to zoo1; 修改zoo库名字为zoo1
alter database zoo owner to postgres1;修改zoo1库拥有者
注:修改操作时先在仪表盘中关闭使用该库的进程
3.3 删除数据库
3.3.2 使用SQL语句删除数据库
drop database name[,...n];
drop database zoo1; 删除库zoo1
4 数据表的基本操作
4.1 创建数据表
4.1.1 创建数据表的基本方法
使用SQL语句创建数据表,语法规则:
create table 表名 (
字段名1 数据类型 [列级别约束条件] [默认值],
字段名2 数据类型 [列级别约束条件] [默认值],
...
)
create table tb_emp1(id int,name varchar(25),
deptId int,salary float);
- 创建的表位置:
zoo -> 模式 -> public -> 表 -> tb_emp1
4.1.2 使用主键约束
单字段主键
主键由一个字段组成,SQL语句格式分一下两种情况在定义列的同事指定主键:
字段名 数据类型 primary keycreate table tb_emp1(id int primary key,
name varchar(25),deptId int,salary float);
在定义完所有列之后指定主键
[constraint 约束名] primary key [字段名]create table tb_emp1(id int,name varchar(25),
deptId int,salary float,primary key(id));
多字段联合主键
primary key [字段1,字段2,字段3,字段4]
4.1.3 使用外键约束
外键用来在两个表的数据之间建立连接,可以是一列或者多列.一个表可以
有一个或多个外键.外键对应的是完整性.一个表的外键可以为空值,若
不为空值,则每一个外键值必须等于另一个表中主键的某个值
外键:表中的一个字段,可以不是本表的主键,但对应另外一个表的主键
主表(父表):对于两个具有关联关系的表而言,相关联字段中主键所在的表
从表(字表):对于两个具有关联关系的表而言,相关联字段中外键所在的表
[constraint 外键名] foreign key 字段名1 [,字段名2,...]
references 主表名 主键列1 [,主键列2]
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(deptId)
references tb_dept1(id);
4.1.4 使用非空约束
字段的值不能为空
字段名 数据类型 not null
4.1.5 使用唯一约束
添加该约束的列字段值唯一,允许为空,但只能出现一个空值
1. 字段名 数据类型 unique
2. [constraint 约束名] unique 字段名
unique和primary区别:
- 一个表中可以有多个字段声明为unique,但只能有一个primary key声明
声明为primary key的列不允许有空值,但声明unique的字段允许为空值
4.1.6 使用默认约束
某列的默认值
字段名 数据类型 default 默认值
4.2 修改数据表
4.2.1 修改表名
alter table 旧表名 rename 新表名;
4.2.2 修改字段的数据类型
alter table 表名 alter column 字段名 type 数据类型;
alter table tb_dept1 alter column name type varchar(30);
4.2.3 修改字段名
alter table 表名 rename 旧字段名 to 新字段名 新数据类型
4.2.4 添加字段
alter table 表名 add column 新字段名 数据类型
alter table tb_dept1 add column managerid int;
alter table tb_dept1 add column column1 varchar(12) not null;
4.2.5 删除字段
alter table 表名 drop 字段名;
4.2.6 删除外键约束
alter table 表名 drop constraint 外键约束名;
4.3 删除数据表
4.3.1 删除没有被关联的表
drop table [if exists]表1,表2,...;
4.3.2 删除被其他表关联的主表
例:删除被数据表 tb_emp 关联的数据表 tb_dept2
alter table tb_emp drop constraint fk_emp_dept1;
drop table tb_dept2;
PostgreSQL自学笔记:3 数据库的基本操作的更多相关文章
- PostgreSQL自学笔记:1 初识 PostgreSQL
博主教材:李小威.清华大学出版社.<PostgreSQL 9.6 从零开始学> 博主操作系统系统:Windows10 博主PostgreSQL版本:PostgreSQL 9.6 和 Pos ...
- PostgreSQL自学笔记:与python交互
与python交互教程 原文地址:https://www.yiibai.com/html/postgresql/2013/080998.html 1. Python psycopg2 模块APIs 连 ...
- PostgreSQL自学笔记:9 索引
9 索引 9.1 索引简介 索引是对数据库表中一列或多列值进行排序的一种结构,使用 索引可提高数据库中特定数据的查询速度 9.1.1 索引的含义和特点 索引是一种单独的.存储在磁盘上的数据库结构,他们 ...
- PostgreSQL自学笔记:8 查询数据
8 查询数据 8.1 基本查询语句 select语句的基本格式是: select {* | 字段1[,字段2,...]} [ from 表1,表2... [where 表达式] [group by & ...
- PostgreSQL自学笔记:6 PostgreSQL函数
6 PostgreSQL函数 6.2 数学函数 abs(x) 绝对值 pi() 圆周率π select abs(-3),pi(); cookie: MySQL中的pi()默认值3.141593, Po ...
- PostgreSQL自学笔记:5 数据类型和运算符
5 数据类型和运算符 5.1 PostgreSQL 数据类型介绍 5.1.1 整数类型 整型类型 字节 取值范围 smallint 2字节 -2^15 ~ 2^15 int integer 4字节 - ...
- PostgreSQL自学笔记:7 插入、更新与删除数据
7 插入.更新与删除数据 7.1 插入数据 先创建表person: create table person( id int not null, name char(40) not null defau ...
- JAVA自学笔记19
JAVA自学笔记19 1.集合总结 Collection(单列集合) List(有序可重复) ArrayList:底层数据结构是数组 ,查询快,增删慢.线程不安全,效率高 Vector:底层数据结构是 ...
- Hadoop自学笔记(一)常见Hadoop相关项目一览
本自学笔记来自于Yutube上的视频Hadoop系列.网址: https://www.youtube.com/watch?v=-TaAVaAwZTs(当中一个) 以后不再赘述 自学笔记,难免有各类错误 ...
随机推荐
- P1962 斐波那契数列
题面是这样的,其实斐波那契我们之前也有接触过,并不是什么太陌生的玩意,第一个想到的方法其实是用递归来做,这样的话其实是非常轻松的,but同志们你们有没有关注过这样一个鬼东西 你以为蓝题是让你切着玩的吗 ...
- 联想的笔记本有隐藏分区 导致无法安装win10 eufi启动 报错:windows无法更新计算机的启动配置。无法安装
联想的笔记本都带着类似一键还原等的系统恢复软件,这些软件往往是将出厂设置备份在单 独的一个分区,此分区默认为隐藏,在 Windows 的磁盘管理中可以看到.打开磁盘管理器 的方法是右击计算机——管理, ...
- 我眼里K-Means算法
在我眼里一切都是那么简单,复杂的我也看不懂,最讨厌那些复杂的人际关系,唉,像孩子一样交流不好吗. 学习K-Means算法时,会让我想起三国志这个游戏,界面是一张中国地图,诸侯分立,各自为据.但是游戏开 ...
- OS + CentOS / http_proxy / https_proxy / dalishangwang / repo
s OS + Linux RedHat / redhat7 / redhat 7 / redhat 6 / redhat 5 https://lindows.iteye.com/blog/456637 ...
- MySQL学习笔记(六)MySQL8.0 配置笔记
今天把数据库配置文件修改了,结果重启不了了 需要使用 mysqld --initialize 或 mysqld --initialize-insecure 命令来初始化数据库 1.mysqld --i ...
- 第十五节:深入理解async和await的作用及各种适用场景和用法
一. 同步VS异步 1. 同步 VS 异步 VS 多线程 同步方法:调用时需要等待返回结果,才可以继续往下执行业务 异步方法:调用时无须等待返回结果,可以继续往下执行业务 开启新线程:在主线程之外 ...
- Linux之搭建远程数据库[Ubuntu:全过程]
1.mariadb在Linux中首次进入mysql (因为此时还没有创建任何用户,mysql的root并不等效于linux中的root用户) sudo apt-get install mysql-se ...
- Luogu P4321 随机漫游
期望DP要倒着推 Luogu P4321 题意 LOJ #2542 不一定是树,询问点不一定均为1 $Solution$ 设计一个巧妙的DP状态 设$ F(S,x)$表示当前在点$ x$已经走遍了$ ...
- CapsNet胶囊网络(理解)
0 - 背景 Geoffrey Hinton是深度学习的开创者之一,反向传播等神经网络经典算法发明人,他在去年年底和他的团队发表了两篇论文,介绍了一种全新的神经网络,这种网络基于一种称为胶囊(caps ...
- Spring扩展自定义的XML标签
在网上搜了许多,感觉不够全面,就找了官方文档,下面记录如何找到对应的文档进入 网上许多博客都是以dateformat为实例进行编写的,通过官方的foo,能够学到更多的东西,下面贴一段代码,在官方示例上 ...