• PostgreSQL 基础知识


    执行环境: psql

    1. 创建一个表格

    CREATE TABLE customers (
    customer_id serial PRIMARY KEY,
    	firstname VARCHAR(100) NOT NULL,
    	lastname VARCHAR(100) NOT NULL,
    	username VARCHAR(50) UNIQUE NOT NULL,
    	password VARCHAR(50) NOT NULL,
    	email VARCHAR(255) UNIQUE NOT NULL,
    	created_on TIMESTAMPTZ NOT NULL	
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • customer_id:这是一个序列,意味着它将自动递增,用作主键,用来唯一标识每个客户。
    • created_on:这是一个不允许为空的日期时间字段,用来存储客户的创建时间。

    2. 插入

    INSERT INTO customers(firstname, lastname, username, password, email, created_on)
    VALUES('Elizabeth', 'Banks', 'elizabethbanks', '4s$5eks9m', 'elizabethbanks@myemail.com', CURRENT_TIMESTAMP);
    
    • 1
    • 2
    SELECT * FROM customers;
    
    • 1

    在这里插入图片描述

    插入两条记录

    INSERT INTO customers(firstname, lastname, username, password, email, created_on)
    VALUES('Nicole', 'Kidman', 'nkidman', '392kMLK!m', 'nicole@kidman.com', CURRENT_TIMESTAMP),
    ('Leroy', 'Jenkins', 'leeroy', '4k2ln@Lm', 'leroy@email.com', CURRENT_TIMESTAMP);
    
    • 1
    • 2
    • 3
    SELECT * FROM customers;
    
    • 1

    在这里插入图片描述

    3. 修改

    UPDATE customers
    SET username='aliceinwonderland'
    WHERE email=
    'elizabethbanks@myemail.com';
    
    • 1
    • 2
    • 3
    • 4
    SELECT * FROM customers;
    
    • 1

    在这里插入图片描述

    4. 查找

    SELECT * FROM customers WHERE username='aliceinwonderland';
    
    • 1

    在这里插入图片描述

    仅当"email"字段的值满足特定模式时才被选择,这个模式是以"@myemail.com"结尾的,而"%"符号表示可以有零个或多个字符。
    SELECT username FROM customers WHERE email LIKE '%@myemail.com';
    
    • 1

    在这里插入图片描述

    利用选择的数据创建一个新表
    CREATE TABLE usernames AS SELECT username FROM customers WHERE email LIKE '%@myemail.com';
    
    • 1

    在这里插入图片描述

    5. 排序

    选择的数据将按照"lastname"字段进行降序排列
    SELECT firstname, lastname
    FROM customers
    ORDER BY lastname DESC;
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    返回的结果将会包含每个客户的完整姓名、邮箱地址以及密码的长度,并且按照密码长度从短到长进行排序。
    SELECT firstname || ' ' || lastname fullname, email, LENGTH(password) passwordlength
    FROM customers
    ORDER BY passwordlength;
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    选择 password 长度小于9的数据
    SELECT firstname || ' ' || lastname fullname, email, LENGTH(password) passwordlength
    FROM customers
    WHERE LENGTH(password) < 9
    ORDER BY passwordlength;
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    6. 删除

    使用RETURNING关键字,返回受影响的行。
    DELETE FROM customers
    WHERE customer_id = 1
    RETURNING *;
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    从"customers"表中删除"username"字段不等于’nkidman’的行
    DELETE FROM customers
    WHERE username <> 'nkidman'
    RETURNING *;
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    从"customers"表中删除所有行。
    DELETE FROM customers
    RETURNING *;
    
    • 1
    • 2

    在这里插入图片描述

    7. 创建只读用户

    该用户的有效期截止到’2024-02-02’。
    CREATE USER readitralph
    WITH PASSWORD 'password'
    VALID UNTIL '2024-02-02';
    
    • 1
    • 2
    • 3
    授予名为"readitralph"的用户对数据库中所有数据的读取权限。
    GRANT pg_read_all_data TO readitralph;
    
    • 1
  • 相关阅读:
    Keil MDK的sct分散加载文件详解
    Linux------环境变量
    等保测评一体机是什么
    vue学习(基础1)
    AI-Gateway:一款整合了OpenAI、Anthropic、LLama2等大语言模型的统一API接口
    MicroPython——有点东西,但是不多
    webpack-merge 实现开发、生产和测试环境的不同配置
    Java - HashMap原理分析
    ArcGIS生态服务敏感性网格化计算并空间可视化(附练习数据下载)
    gcc/g++的使用
  • 原文地址:https://blog.csdn.net/weixin_57266891/article/details/134094958