当前位置:网站首页>PgSQL学习笔记
PgSQL学习笔记
2022-07-02 06:21:00 【谢同学咯】
PgSQL教程
数值类型

创建数据库
--创建一个 runoobdb 的数据库:
create database runoobdb;
- 删除数据库
-- 删除数据库
DROP DATABASE xyx;
- 创建表格
-- 创建表格
CREATE TABLE table_01(
id INT PRIMARY KEY NOT NULL,
name VARCHAR(50),
age INT
);
- 删除表格
-- 删除表格
DROP TABLE table_01;
- PostgreSQL 模式(SCHEMA)
-- 创建模式
CREATE SCHEMA test01
-- 删除模式
DROP SCHEMA test01
- INSERT INTO (插入)
-- 插入table-01表 只插id,name
INSERT INTO table_01 ( ID, NAME )
VALUES
( 15, '李四' );
-- 全部插入
INSERT INTO table_01
VALUES
( 45, '张三', 25 );
返回结果说明:
INSERT oid 1
只插入一行并且目标表具有 OID的返回信息, 那么 oid 是分配给被插入行的 OID。
INSERT 0 #
插入多行返回的信息, # 为插入的行数。
以下插入语句 JOIN_DATE 字段使用 DEFAULT 子句来设置默认值,而不是指定值:
-- 以下插入语句 JOIN_DATE 字段使用 DEFAULT 子句来设置默认值,而不是指定值:
INSERT INTO table_01 ( ID, NAME ,age ,JOIN_DATE )
VALUES
(78,'阿通',28,DEFAULT);
- SELECT(查询)
-- 查询
SELECT * FROM table_01;
- 运算符

简单例子:
SELECT 2+3;
SELECT 2*3;
SELECT 10/5;
SELECT 2-3;
-- 取余
SELECT 12%5;
-- 指数
SELECT 2^3;
-- 平方根
SELECT |/ 25.0;
-- 立方根
SELECT ||/ 27.0;
- 表达式

-- 读取 SALARY 字段大于 50000 的数据
SELECT * FROM COMPANY WHERE salary>5000;
-- 读取 SALARY 字段等于 20000 的数据
SELECT * FROM COMPANY WHERE salary=20000;
-- 读取 SALARY 字段不等于 20000 的数据
SELECT * FROM COMPANY WHERE salary>65000;
-- 读取 SALARY 字段大于等于 65000 的数据
SELECT * FROM COMPANY WHERE salary>=65000;
逻辑运算符
PostgreSQL 逻辑运算符有以下几种:

SQL 使用三值的逻辑系统,包括 true、false 和 null,null 表示"未知"。

-- 读取 AGE 字段大于等于 25 且 SALARY 字段大于等于 6500 的数据:
SELECT * FROM company WHERE age>=25 and salary>=6500;
-- 读取 AGE 字段大于等于 25 或 SALARY 字段大于 6500 的数据:
SELECT * FROM company WHERE age >=25 or salary>6500;
-- 读取 SALARY 字段不为 NULL 的数据:
SELECT * FROM company WHERE salary is NOT NULL;
- WHERE 子句
布尔表达式是根据一个指定条件来读取数据:
SELECT * FROM COMPANY WHERE salary=20000;
数字表达式常用于查询语句中的数学运算:
SELECT (17 + 6) AS ADDITION ;
此外 PostgreSQL 还内置了一些数学函数,如:
avg() : 返回一个表达式的平均值
sum() : 返回指定字段的总和
count() : 返回查询的记录总数
-- 查询总记录数
SELECT COUNT(*) AS "RECORDS" FROM COMPANY;
-- 查询当前时间 current_timestamp
SELECT CURRENT_TIMESTAMP;
- AND & OR 运算符
WHERE 子句中使用比较运算符或逻辑运算符,例如 >, <, =, LIKE, NOT 等等
IN 以下 SELECT 语句列出了 AGE(年龄) 字段为 25 或 27 的数据:
SELECT * FROM COMPANY WHERE AGE IN ( 25, 27 );
NOT IN
以下 SELECT 语句列出了 AGE(年龄) 字段不为 25 或 27 的数据:
SELECT * FROM COMPANY WHERE AGE NOT IN ( 25, 27 );
BETWEEN
以下 SELECT 语句列出了 AGE(年龄) 字段在 25 到 27 的数据:
SELECT * FROM COMPANY WHERE AGE BETWEEN 25 AND 27;
子查询
以下的 SELECT 语句使用了 SQL 的子查询,子查询语句中读取 SALARY(薪资) 字段大于 65000 的数据,然后通过 EXISTS 运算符判断它是否返回行,如果有返回行则读取所有的 AGE(年龄) 字段。
SELECT age FROM company WHERE EXISTS (SELECT age from
company WHERE salary >6500);
子查询语句中读取 SALARY(薪资) 字段大于 65000 的 AGE(年龄) 字段数据,然后用 > 运算符查询大于该 AGE(年龄) 字段数据:
-- 子查询语句中读取 SALARY(薪资) 字段大于 65000 的 AGE(年龄) 字段数据,然后用 > 运算符查询大于该 AGE(年龄) 字段数据
SELECT * FROM company WHERE age>(SELECT age FROM company WHERE salary>65000);
- UPDATE 语句
更新 COMPANY 表中 id 为 3 的 salary 字段值:
UPDATE company SET salary = '90000' WHERE id=3;
同时更新 salary 字段和 address 字段的值:
-- 同时更新 salary 字段和 address 字段的值
UPDATE company SET salary = '10000',address='中国北京' WHERE id=3;
删除delete
-- 删除id=8的数据
DELETE FROM company WHERE id=8;
- LIKE 子句
--找出 SALARY 字段中以 200 开头的数据。
WHERE SALARY::text LIKE '200%'
--------------------------------------------------------------------------------------------------------------
--找出 SALARY 字段中含有 200 字符的数据。
WHERE SALARY::text LIKE '%200%'
--------------------------------------------------------------------------------------------------------------
--找出 SALARY 字段中在第二和第三个位置上有 00 的数据
WHERE SALARY::text LIKE '_00%'
--------------------------------------------------------------------------------------------------------------
--找出 SALARY 字段中以 2 开头的字符长度大于 3 的数据。
WHERE SALARY::text LIKE '2_%_%'
--------------------------------------------------------------------------------------------------------------
--找出 SALARY 字段中以 2 结尾的数据
WHERE SALARY::text LIKE '%2'
--------------------------------------------------------------------------------------------------------------
--找出 SALARY 字段中 2 在第二个位置上并且以 3 结尾的数据
WHERE SALARY::text LIKE '_2%3'
--------------------------------------------------------------------------------------------------------------
-- 找出 SALARY 字段中以 2 开头,3 结尾并且是 5 位数的数据
WHERE SALARY::text LIKE '2___3'
--------------------------------------------------------------------------------------------------------------
实例,从第三位开始提取 3 个记录
SELECT * FROM COMPANY LIMIT 3 OFFSET 2;
边栏推荐
- Don't use the new WP collection. Don't use WordPress collection without update
- Contest3147 - game 38 of 2021 Freshmen's personal training match_ A: chicken
- 注解和反射详解以及运用
- From design delivery to development, easy and efficient!
- LeetCode 27. 移除元素
- CUDA中的异步数据拷贝
- It is said that Kwai will pay for the Tiktok super fast version of the video? How can you miss this opportunity to collect wool?
- Detailed steps of JS foreground parsing of complex JSON data "case: I"
- CUDA与Direct3D 一致性
- LeetCode 27. Removing Elements
猜你喜欢
![Data science [viii]: SVD (I)](/img/cb/7bf066a656d49666985a865c3a1456.png)
Data science [viii]: SVD (I)

Let every developer use machine learning technology

I/o impressions from readers | prize collection winners list

Invalid operation: Load into table ‘sources_orderdata‘ failed. Check ‘stl_load_errors‘ system table

BGP中的状态机

浏览器原理思维导图

Amazon AWS data Lake Work Pit 1

Learn about various joins in SQL and their differences

Redis——热点key问题

代码技巧——Controller参数注解@RequestParam
随机推荐
CUDA中的存储空间修饰符
Use of Arduino wire Library
New version of dedecms collection and release plug-in tutorial tool
实习生跑路留了一个大坑,搞出2个线上问题,我被坑惨了
穀歌出海創業加速器報名倒計時 3 天,創業人闖關指南提前收藏!
Reading classic literature -- Suma++
实现strStr() II
Support new and old imperial CMS collection and warehousing tutorials
CUDA中内置的Vector类型和变量
一口气说出 6 种实现延时消息的方案
【程序员的自我修养]—找工作反思篇二
BGP报文详细解释
Web components series (VIII) -- custom component style settings
Network related knowledge (Hardware Engineer)
数据科学【八】:SVD(一)
LeetCode 83. Delete duplicate elements in the sorting linked list
AtCoder Beginner Contest 253 F - Operations on a Matrix // 树状数组
链表(线性结构)
CUDA中的动态全局内存分配和操作
LeetCode 47. Full arrangement II