美文网首页
Node - postgreSQL(一)

Node - postgreSQL(一)

作者: 酷热summer | 来源:发表于2020-04-20 20:24 被阅读0次

    一、几种常见数据库介绍

    • SQL

      • Structured Query Language
      • 用于机构化的查询和操作数据
      • 适用于关系型数据库管理系统
      • 隐藏了如何访问某一条数据的细节
      • 有一套标准/协议来描述SQL语言
      • 后端必会,后端生涯的基石
    • NoSQL

      • 并不是 SQL 的反面,而是各有不同
      • 为了解决特定环境下的问题出现
      • eg: MongoDB redis memocache
    • 关系型数据库

      • 预先定义的数据结构
      • 易于关联的数据
      • 高效的跨表查询
      • Oracle/mySQL/postgreSQL
    • PostgreSQL

      • 完全开源免费
      • 基于分布式数据库设计
      • 良好的社区环境
      • 充分验证

    二、PostgreSQL 安装和使用

    1、安装 brew

    2、安装 postgresql

    • brew install postgresql: 安装包
    • mkdir demo & cd demo
    • initdb ./:初始化数据库
    • pg_ctl -D ./ -l ./pg.log start :启动数据库,其中 ./pg.log 可自定义,为日志输出位置。如果日志已经创建,可通过 pg_ctl -D ./ start 启动数据库,启动完成后,再连接数据库 psql pg_playground
    • pg_ctl --help:可通过这个指令查看pg_ctl有哪些指令
    • createuser -s username: 创建一个无密码用户
    • createdb --owner=username pg_palyground:创建数据库 pg_playground并关联所有者
    • psql pg_playground: 连接数据库
    • SELECT version();查询数据库版本
    • \q:关闭连接
    • 创建数据库:
    // 连接数据库后,即可创建数据库
    CREATE TABLE test_table_1 (  // 敲到左括号,可回车
    string_test_1 varchar(32),          // 不同字段可用 `,` 分隔
    number_test_2 int                      // 字段名 + 数据类型
    );                                                // 最后一行为 `);`
    

    关于数字类型,charvarchar 的区别在于第二个为动态字符,括号内数字表示最大长度,如果为 char,则表示只能使用长度为 32 的字符。

    3、常用数据类型有:

    • char
    • varchar
    • SMALLINT/INT/BIGINT/DECIMAL:分别对应 2 / 4 字节整型数字
    • TEXT
    • NUMERIC:浮点数
    • DOUBLE PRECISION:双精度浮点数
    • BYTEA
    • DATE
    • INTERVAL
    • BOOLEAN
    • ENUM: 枚举类型,举例说明:
    CREATE TYPE mode AS ENUM('mode_1', 'mode_2', 'mode_3');
    CREATE TABLE test_table_3 (
    mode_test_3 mode
    );
    

    此时,表中 mode_test_3 只能取 mode 中的某一个值

    4、SQL 常用语句:

    • SELECT * FROM test_table_1;:在终端输出表 test_table_1 的表结构

    5、操作表

    • ALTER TABLE test_table_3 ADD COLUMN new_uuid UUID;: 为表新增一列,可通过SELECT * FROM test_table_3 查询表的前后差异
    • ALTER TABLE test_table_1 ALTER COLUMN string_test_1 TYPE char(32);:将 test_table_1 中 string_test_1 的类型改为 char
    • DROP TABLE test_table_3;:删除表
    • 建表时添加主键约束:
    CREATE TABLE test_table_4 (
      id INT PRIMARY KEY
    );
    

    主键约束的意思是,在向表中插入数据的时候,要保证此字段既是全表唯一且不能为空。

    三、PostgreSQL 对表进行增删改查

    • 命令查询:在启动 postgreSQL 并连接数据库后,可输入 \h 查看对表进行操作的一些命令
    • \d: 查看当前数据库下有哪些表
    • \d test_table_1:查询表的详细信息
      eg: 新建一张表,包含 name 和 age, name 不为空,且长度大于4小于16,age 为整型,可不传,默认值为 18:
    CREATE TABLE users(
      name TEXT NOT NULL CHECK(CHAR_LENGTH(name) > 4 && CHAR_LENGTH(name) < 15),
      age INT CHECK(age >= 0) DEFAULT 18
    );
    

    创建完成后,可通过 \d users 查看表的信息。

    • 插入数据: INSERT INTO users (name, age) VALUES ('your name', 20);。可通过SELECT * FROM users;查询表内数据。此处* 如果代表返回的表内字段,users表可指定 name 或者 age,select 多个可使用,分隔。
    • 根据条件查询表: SELECT * FROM users WHERE age = 20;
    • 删除表中的数据: DELECT FROM users;,此指令会删除表中所有的数据。慎用。
    • 根据条件删除数据:DELETE FROM users WHERE age = 18;。删除 age = 18 的所有数据。
    • 更新数据信息:UPDATE users SET age = 88 WHERE name = 'summer';

    相关文章

      网友评论

          本文标题:Node - postgreSQL(一)

          本文链接:https://www.haomeiwen.com/subject/dwdlvhtx.html