3 数据库的基本操作

3.1 创建数据库

3.1.1 使用对象浏览器创建数据库

  1. [Server] -> PostgreSQL 9.6 -> 数据库,右击 -> 创建

  2. 通常:

    • 数据库:test
    • 所有者:postgres
    • 注释:PostgreSQL 学习专用
  3. 定义:

    • 编码:UTF8
    • Connection limit: -1
  4. 安全: 点击 权限 后面的 + ,添加选项:

    • Grantee - PUBLIC
    • 权限 - ALL
    • Grantor - postgres
  5. 参数: 点击 参数 后面的 + ,添加选项:

    • 名称 - application
    • 值 - DEFAULT
    • 角色 - postgres
  6. 保存

3.1.2 使用SQL创建数据库

  1. 工具 -> 查询工具

  2. 执行语句 create database zoo; //创建库zoo

  3. 数据库,右击刷新

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 使用主键约束

  1. 单字段主键

    主键由一个字段组成,SQL语句格式分一下两种情况

    1. 在定义列的同事指定主键:

      字段名 数据类型 primary key

      create table tb_emp1(id int primary key,
      name varchar(25),deptId int,salary float);
    2. 在定义完所有列之后指定主键

      [constraint 约束名] primary key [字段名]

      create table tb_emp1(id int,name varchar(25),
      deptId int,salary float,primary key(id));
  2. 多字段联合主键

    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 数据库的基本操作的更多相关文章

  1. PostgreSQL自学笔记:1 初识 PostgreSQL

    博主教材:李小威.清华大学出版社.<PostgreSQL 9.6 从零开始学> 博主操作系统系统:Windows10 博主PostgreSQL版本:PostgreSQL 9.6 和 Pos ...

  2. PostgreSQL自学笔记:与python交互

    与python交互教程 原文地址:https://www.yiibai.com/html/postgresql/2013/080998.html 1. Python psycopg2 模块APIs 连 ...

  3. PostgreSQL自学笔记:9 索引

    9 索引 9.1 索引简介 索引是对数据库表中一列或多列值进行排序的一种结构,使用 索引可提高数据库中特定数据的查询速度 9.1.1 索引的含义和特点 索引是一种单独的.存储在磁盘上的数据库结构,他们 ...

  4. PostgreSQL自学笔记:8 查询数据

    8 查询数据 8.1 基本查询语句 select语句的基本格式是: select {* | 字段1[,字段2,...]} [ from 表1,表2... [where 表达式] [group by & ...

  5. PostgreSQL自学笔记:6 PostgreSQL函数

    6 PostgreSQL函数 6.2 数学函数 abs(x) 绝对值 pi() 圆周率π select abs(-3),pi(); cookie: MySQL中的pi()默认值3.141593, Po ...

  6. PostgreSQL自学笔记:5 数据类型和运算符

    5 数据类型和运算符 5.1 PostgreSQL 数据类型介绍 5.1.1 整数类型 整型类型 字节 取值范围 smallint 2字节 -2^15 ~ 2^15 int integer 4字节 - ...

  7. PostgreSQL自学笔记:7 插入、更新与删除数据

    7 插入.更新与删除数据 7.1 插入数据 先创建表person: create table person( id int not null, name char(40) not null defau ...

  8. JAVA自学笔记19

    JAVA自学笔记19 1.集合总结 Collection(单列集合) List(有序可重复) ArrayList:底层数据结构是数组 ,查询快,增删慢.线程不安全,效率高 Vector:底层数据结构是 ...

  9. Hadoop自学笔记(一)常见Hadoop相关项目一览

    本自学笔记来自于Yutube上的视频Hadoop系列.网址: https://www.youtube.com/watch?v=-TaAVaAwZTs(当中一个) 以后不再赘述 自学笔记,难免有各类错误 ...

随机推荐

  1. antd的Tree控件实现点击展开功能

    antd 的 Tree 控件没有提供点击展开的功能,只能通过左边的三角形实现展开和收起,没办法只好自己实现这个功能. 先看效果 如图实现的是类似 Mac 文件目录形式的结构,有箭头代表是个文件夹,点击 ...

  2. 第六节:反射(几种写法、好处和弊端、利用反射实现IOC)

    一. 加载dll,读取相关信息 1. 加载程序集的三种方式 调用Assembly类下的三个方法:Load.LoadFile.LoadFrom. //1.1 Load方法:动态默认加载当前路径下的(bi ...

  3. html设置背景图片并自适应

    <style> html{ height:100%; } body{ padding: 0; margin: 0; background: url(images/2.jpg); backg ...

  4. [物理学与PDEs]第2章第2节 粘性流体力学方程组 2.4 粘性热传导流体动力学方程组

    粘性热传导流体动力学方程组: $$\beex \bea \cfrac{\p \rho}{\p t}+\Div(\rho{\bf u})&=0,\\ \rho \cfrac{\rd {\bf u ...

  5. git秘钥生成

    #修改git配置 vi .gitconfig #生成秘钥 ssh-keygen -t rsa -C "邮箱地址" #查看秘钥 cat id_rsa.pub

  6. iTOP-4418开发板和6818开发板-第五路串口介绍

    iTOP-4418开发板和6818开发板 的除去默认 4 个串口的配置和用法. 4418 的开发板最多支持 5 路串口,如下图所示,4418 的 datasheet.   6818 的开发板最多支持 ...

  7. sql 发送邮件

    一.启用Database Mail XPs功能. 查看Database Mail XPs功能是否打开,从返回结果来看,value为0说明没有打开,注意SQL Mail XPs是SQL Server早期 ...

  8. 弄懂promise

    ECMAscript 6 原生提供了 Promise 对象. Promise 对象代表了未来将要发生的事件,用来传递异步操作的消息 有了 Promise 对象,就可以将异步操作以同步操作的流程表达出来 ...

  9. PYthon3:简单几步实现冒泡排序

    1.概念理解: 冒泡排序:可以简单的理解为是列表中相近的元素,两两比较,小的在前面.最多需要len()-1次排序. 2.例子:a=[11,7,4,56,35,0] 3.代码实现: 4.输出结果: 第1 ...

  10. 410 for 循环 运算 改变循环的控制流 死循环 遍历数组 定义方法 有名函数匿名函数 定义函数的方法取值 date math 局部变量 函数 局部与全局变量 次幂/随机数/取绝对值/向上取整/平方根

    for(1.表达式1;2.表达式2;3.表达式3){ 4.循环体语句; } 先执行1 ,在执行2, 表达式, 如果2结果为false,退出循环 如果2是true 执行4 在执行3 执行2 举例打印1- ...