当前位置:网站首页>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;
边栏推荐
猜你喜欢
LeetCode 90. Subset II
Web components series (VIII) -- custom component style settings
亚马逊aws数据湖工作之坑1
实现strStr() II
From design delivery to development, easy and efficient!
Contest3147 - game 38 of 2021 Freshmen's personal training match_ E: Listen to songs and know music
New version of dedecms collection and release plug-in tutorial tool
CUDA中的Warp Shuffle
CUDA中的线程层次
Browser principle mind map
随机推荐
Don't use the new WP collection. Don't use WordPress collection without update
Three suggestions for all students who have graduated and will graduate
LeetCode 78. subset
BGP中的状态机
Data science [viii]: SVD (I)
BGP routing optimization rules and notification principles
Hydration failed because the initial UI does not match what was rendered on the server.问题原因之一
Browser principle mind map
【每日一题】写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。
MySQL的10大经典错误
【程序员的自我修养]—找工作反思篇二
介绍两款代码自动生成器,帮助提升工作效率
RestTemplate请求时设置请求头,请求参数,请求体。
TensorRT的数据格式定义详解
Community theory | kotlin flow's principle and design philosophy
CUDA用户对象
When requesting resttemplate, set the request header, request parameters, and request body.
In depth understanding of JUC concurrency (II) concurrency theory
IPv6 experiment and summary
Support new and old imperial CMS collection and warehousing tutorials