zoukankan      html  css  js  c++  java
  • PostgreSQL自学笔记:3 数据库的基本操作

    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;
    
  • 相关阅读:
    NGBOSS转型在即:COTS初露锋芒
    [原]CmsEasy安装,后台“内容管理”页面空白
    CentOS5安装mcrypt问题
    [转]Grub安装修复
    [转]BOSS3接近尾声
    多渠道整合开启NGBOSS第一步
    [原][转]TUXEDO与ORACLE数据库的互连
    [译]Oracle Data Cartridge| Oracle数据筒介绍
    [译]ORACLE数据弹药桶(Data Cartridge)简介
    [原]再说精度用于显示的数字出现精度问题的处理(Perl/Java)
  • 原文地址:https://www.cnblogs.com/wangbaby/p/10289404.html
Copyright © 2011-2022 走看看