【数据库】数据库学习(MySQL,Oracle,PostgreSql)

数据库语句学习

摘要:文章主要内容是数据库语句的基本操作,以及一些基本的数据库标准库函数

重点:SQL语句对大小写不敏感

数据库操作语句

  • SELECT - 从数据库表中获取数据
  • UPDATE - 更新数据库表中的数据
  • DELETE - 从数据库表中删除数据
  • INSERT INTO - 向数据库表中插入数据

字句与附加内容

SELECT list1,list2 FROM table;//输出某几个表SELECT * FROM table;//输出表中全部内容SELECT DISTINCT list1 FROM table;//输出列中内容,但每个值只出现一次SELECT * FROM table WHERE id=2;//查找id为2的那一行,注意等号为单个,并且如果查找内容非数值,需要加单引号eg:WHERE name='alice'SELECT * FROM table WHERE id=2 AND name='alice';//他的意思和你想的一样,同样的用法还有ORSELECT * FROM table ORDER by id;//查找以后的结果按照id正序输出
INSERT INTO table(list1,list2) VALUES('alice','bob')
UPDATE table SET list1='alice',list2='bob' WHERE id=1;
DELETE FROM table WHERE id=1;
DELETE * FROM table;

数据库定义语句

  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引

oracle数据库标准库函数(math库)(DML库-操作游标 json)

1. 单行函数

字符函数
  • CONCAT('Hello', 'World'): 结果为 'HelloWorld'
  • SUBSTR('HelloWorld', 6, 5): 从第6位开始取5个字符,结果为 'World'
  • LENGTH('Hello'): 返回字符串 'Hello' 的长度,结果为 5
  • TRIM('H' FROM 'HHHelloHH'): 移除字符串两侧的 ‘H’,结果为 'Hello'
  • LOWER('HELLO'): 将字符串转换为小写,结果为 'hello'
  • UPPER('hello'): 将字符串转换为大写,结果为 'HELLO'
  • REPLACE('2024 Happy New Year', '2024', '2025'): 将字符串中的 2024 替换为 2025,结果为 '2025 Happy New Year'
数值函数
  • ROUND(123.4567, 2): 将 123.4567 四舍五入到小数点后2位,结果为 123.46
  • TRUNC(123.4567, 2): 将 123.4567 截断到小数点后2位,结果为 123.45
  • ABS(-123.45): 返回 -123.45 的绝对值,结果为 123.45
  • CEIL(123.45): 返回大于等于 123.45 的最小整数,结果为 124
  • FLOOR(123.45): 返回小于等于 123.45 的最大整数,结果为 123
日期函数
  • SYSDATE: 返回当前系统日期和时间,结果取决于系统时刻。
  • ADD_MONTHS('01-JAN-2024', 1): 在日期 01-JAN-2024 上加1个月,结果为 01-FEB-2024
  • LAST_DAY('15-JAN-2024'): 返回 JAN-2024 的最后一天,结果为 31-JAN-2024
  • MONTHS_BETWEEN('01-JAN-2024', '01-MAR-2024'): 计算从 01-MAR-202401-JAN-2024 之间的月份差异,结果为 -2
  • NEXT_DAY('01-JAN-2024', 'FRIDAY'): 返回 01-JAN-2024 后的第一个星期五,日期取决于当年日历。

2. 聚合函数(详细)(三个不同)

  • SUM(column): 计算某列的总和。例如,在收入列上使用,可以计算总收入。
  • AVG(column): 计算某列的平均值。例如,计算所有员工的平均薪资。
  • MAX(column): 找出某列的最大值。例如,找出最高的订单金额。
  • MIN(column): 找出某列的最小值。例如,找出最低的库存量。
  • COUNT(column): 计算某列的非空值数量。例如,计算有多少员工有邮箱地址。

3. 转换函数

  • TO_CHAR(SYSDATE, 'YYYY-MM-DD'): 将当前日期转换为 'YYYY-MM-DD' 格式的字符串。
  • TO_NUMBER('123.45', '999.99'): 将字符串 '123.45' 转换为数字。
  • TO_DATE('01-JAN-2024', 'DD-MON-YYYY'): 将字符串 '01-JAN-2024' 转换为日期类型。

4. 分析函数

  • ROW_NUMBER() OVER (ORDER BY salary DESC): 对所有员工按薪资降序排列,并给每个员工分配一个唯一的行号。
  • RANK() OVER (ORDER BY score DESC): 在成绩表中,对学生的分数进行排名,相同分数的学生排名相同。
  • DENSE_RANK() OVER (ORDER BY score DESC): 类似 RANK,但排名将连续不留空。

5. 空值处理函数(详细)

  • NVL(NULL, 'default'): 如果第一个表达式是 NULL,返回 'default'
  • COALESCE(NULL, NULL, 'first_non_null'): 返回参数列表中的第一个非空表达式,结果为 'first_non_null'
  • NULLIF('A', 'B'): 如果两个表达式不相等,返回第一个表达式,结果为 'A';如果相等,则返回 NULL

MySQL数据库函数

1. 字符串函数

  • CONCAT(str1, str2, ...): 连接两个或多个字符串。例如:CONCAT('Hello', ' ', 'World') 返回 'Hello World'
  • LENGTH(str): 返回字符串的长度。例如:LENGTH('Hello') 返回 5
  • LOWER(str): 将字符串转换为小写。例如:LOWER('HELLO') 返回 'hello'
  • UPPER(str): 将字符串转换为大写。例如:UPPER('hello') 返回 'HELLO'
  • REPLACE(str, from_str, to_str): 在字符串中替换子串。例如:REPLACE('Hello World', 'World', 'MySQL') 返回 'Hello MySQL'
  • SUBSTRING(str, pos, len): 从字符串中提取子串。例如:SUBSTRING('Hello World', 7, 5) 返回 'World'
  • TRIM(str): 去除字符串两侧的空格。例如:TRIM(' Hello ') 返回 'Hello'

2. 数值函数

  • ROUND(number, decimals): 对数值进行四舍五入。例如:ROUND(123.4567, 2) 返回 123.46
  • FLOOR(number): 返回不大于数值的最大整数。例如:FLOOR(123.45) 返回 123
  • CEIL(number): 返回不小于数值的最小整数。例如:CEIL(123.45) 返回 124
  • ABS(number): 返回数值的绝对值。例如:ABS(-123) 返回 123

3. 日期和时间函数

  • CURDATE(): 返回当前日期。例如,如果今天是 2024-04-10,则 CURDATE() 返回 2024-04-10
  • NOW(): 返回当前日期和时间。例如,如果现在是 2024-04-10 12:34:56,则 NOW() 返回 2024-04-10 12:34:56
  • DATEDIFF(date1, date2): 返回两个日期之间的天数。例如:DATEDIFF('2024-04-10', '2024-04-01') 返回 9
  • DATE_ADD(date, INTERVAL expr type): 给定日期加上一个时间间隔。例如:DATE_ADD('2024-01-01', INTERVAL 1 MONTH) 返回 2024-02-01

4. 条件表达式

  • IF(expr1, expr2, expr3): 如果 expr1 为真,则返回 expr2;否则返回 expr3。例如:IF(1>0, 'true', 'false') 返回 'true'
  • CASE WHEN condition THEN result [WHEN ...] [ELSE result] END: 条件选择语句。例如:CASE WHEN 1>0 THEN 'true' ELSE 'false' END 返回 'true'

5. 聚合函数

  • SUM(column): 计算数值列的总和。例如,在销售表中,SUM(price) 可以计算总销售额。
  • AVG(column): 计算数值列的平均值。例如:AVG(price) 可以计算平均销售价格。
  • MAX(column): 返回列中的最大值。例如:MAX(price) 可以找到最高的销售价格。
  • MIN(column): 返回列中的最小值。例如:MIN(price) 可以找到最低的销售价格。
  • COUNT(column): 返回列中非NULL值的数量。例如:COUNT(*) 可以计算表中的行数。

6. 其他有用的函数

  • COALESCE(value1, value2, ...): 返回参数列表中的第一个非NULL值。例如:COALESCE(NULL, NULL, 'first_non_null', NULL) 返回 'first_non_null'
  • NULLIF(value1, value2): 如果两个值相等则返回NULL,否则返回第一个值。例如:NULLIF('A', 'B') 返回 'A'NULLIF('A', 'A') 返回 NULL

PostgreSQL数据库函数

1. 字符串函数

  • CONCAT(str1, str2, ...): 连接两个或多个字符串。例如:CONCAT('Hello', ' ', 'World') 返回 'Hello World'
  • LENGTH(str): 返回字符串的长度。例如:LENGTH('Hello') 返回 5
  • LOWER(str): 将字符串转换为小写。例如:LOWER('HELLO') 返回 'hello'
  • UPPER(str): 将字符串转换为大写。例如:UPPER('hello') 返回 'HELLO'
  • REPLACE(str, from_str, to_str): 在字符串中替换子串。例如:REPLACE('Hello World', 'World', 'PostgreSQL') 返回 'Hello PostgreSQL'
  • SUBSTRING(str FROM start FOR length): 从字符串中提取子串。例如:SUBSTRING('Hello World' FROM 7 FOR 5) 返回 'World'
  • TRIM([LEADING | TRAILING | BOTH] [characters] FROM str): 去除字符串两侧的指定字符。例如:TRIM(' Hello ') 返回 'Hello'

2. 数值函数

  • ROUND(value, precision): 对数值进行四舍五入到指定的小数位数。例如:ROUND(123.4567, 2) 返回 123.46
  • FLOOR(value): 返回不大于数值的最大整数。例如:FLOOR(123.45) 返回 123
  • CEILING(value): 返回不小于数值的最小整数。例如:CEILING(123.45) 返回 124
  • ABS(value): 返回数值的绝对值。例如:ABS(-123) 返回 123

3. 日期和时间函数

  • CURRENT_DATE: 返回当前日期。例如:CURRENT_DATE
  • CURRENT_TIMESTAMP: 返回当前日期和时间。例如:CURRENT_TIMESTAMP
  • AGE(timestamp1, timestamp2): 返回两个日期之间的间隔。例如:AGE(TIMESTAMP '2024-04-10', TIMESTAMP '2024-01-01') 返回 '3 mons 9 days'
  • DATE_PART('field', timestamp): 提取日期的指定部分。例如:DATE_PART('year', TIMESTAMP '2024-04-10') 返回 2024

4. 条件表达式

  • CASE WHEN condition THEN result [WHEN ...] [ELSE result] END: 条件选择语句。例如:CASE WHEN 1>0 THEN 'true' ELSE 'false' END 返回 'true'
  • COALESCE(value1, value2, ...): 返回参数列表中的第一个非NULL值。例如:COALESCE(NULL, NULL, 'first_non_null', NULL) 返回 'first_non_null'
  • NULLIF(value1, value2): 如果两个值相等则返回NULL,否则返回第一个值。例如:NULLIF('A', 'B') 返回 'A'NULLIF('A', 'A') 返回 NULL

5. 聚合函数

  • SUM(column): 计算数值列的总和。例如,SUM(price) 可以计算总销售额。
  • AVG(column): 计算数值列的平均值。例如:AVG(price) 可以计算平均销售价格。
  • MAX(column): 返回列中的最大值。例如:MAX(price) 可以找到最高的销售价格。
  • MIN(column): 返回列中的最小值。例如:MIN(price) 可以找到最低的销售价格。
  • COUNT(column): 返回列中非NULL值的数量。例如:COUNT(*) 可以计算表中的行数。

6. 数组函数

  • ARRAY_LENGTH(array, dimension): 返回数组在指定维度的长度。例如:ARRAY_LENGTH(ARRAY[1,2,3,4], 1) 返回 4
  • ARRAY_APPEND(array, element): 向数组添加元素。例如:ARRAY_APPEND(ARRAY[1,2,3], 4) 返回 {1,2,3,4}

7. 地理空间函数(GIS)

  • ST_Area(geom): 计算地理对象的面积。例如:ST_Area(ST_GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) 返回 1.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/18379.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OSPF的扩展配置

1、认证——直连的邻居或邻接关系间,进行认证配置后,5种数据包中均携带身份核实的密码,且华为设备会对更新信息进行加密--前提为认证方式选择密文认证 1)接口认证 [r1-GigabitEthernet0/0/1ospf authentication-mode md5 1 cipher 123456 直连的邻居间秘钥和编号、模…

行列视(RCV)能否同时支持多个实时数据库?

行列视(RCV)生产数据应用系统在设计时考虑到了多数据源的需求,因此它支持同时连接多个实时数据库。这意味着用户可以轻松地将来自不同实时数据库的数据整合到行列视(RCV)系统中,实现数据的集中管理和分析。…

Android14 WMS-窗口添加流程(二)-Server端

上一篇文章讲到了Client端窗口添加流程,本文接着上文往下讲,讲一下Server端的窗口添加流程。 1. WindowManagerService#grantInputChannel 由grantInputChannel我们可以看到,Client端传入了session对象, 发起者Uid-callingUid&am…

X.509数字证书

在国密标准文件《GMT 0015-2012 基于SM2密码算法的数字证书格式》里有对X.509数字证书格式的详细描述。 数字证书的定义 由国家认可的,具有权威性、可信性和公正性的第三方证书认证机构(CA)进行数字签名的一个可信的数字化文件。 数字证书…

YOLOv10代码详细介绍(附录训练教程和权重)

前言 YOLOv10 是清华大学研究人员在 UltralyticsPython 清华大学的研究人员在 YOLOv10软件包的基础上,引入了一种新的实时目标检测方法,解决了YOLO 以前版本在后处理和模型架构方面的不足。通过消除非最大抑制(NMS)和优化各种模型…

【几何角度】感知机

本质:将n维空间中的一些点线性投影到一维,在一维轴上找一个阈值对这些点进行二分类。 程序: import numpy as npclass Perceptron:def __init__(self, learning_rate0.01, n_iterations1000):self.learning_rate learning_rateself.n_itera…

【Python基础】一文搞懂:Python 中 “requirements.txt“ 文件生成和使用

文章目录 1 引言2 什么是 requirements.txt?3 如何生成 requirements.txt?3.1 方法一:使用 pip freeze3.2 方法二:使用 pipreqs 3.3 使用 pip freeze 和 pipreqs 的对比4 如何使用 requirements.txt?4.1 安装依赖4.2 更…

[从零开发JS应用] 如何在VScode中配置Javascript环境,常见的调试方法有哪些?

一、安装VSCode和Node.js 记录环境配置:本文配置的环境主要针对单独JS文件的断点调试,主要是为了调试LeetCode里面的代码。 首先在官网下载对应的版本:https://nodejs.org/en/ 开始安装,可以自定义选择安装路径。 这里选择Add Pa…

【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk

背景:部分客户需求将自己网站打包成app,供用户在浏览器安装使用、 网页网址快速生成app 准备材料操作流程第一步:打开HBuilder X新建项目第二步创建Wap2App项目第三步修改App图标第四步发布app第五步查看apk 准备材料 1.需要打包的网页 2.ap…

在网页开发中,前后端如何更好地协同工作?

在网页开发中,前后端如何更好地协同工作是非常关键的,以下是一些方法和技巧可以帮助前后端更好地协同工作: 1.明确需求和规范:前后端应该共同讨论和明确项目的需求和规范,包括功能、界面、数据格式等。确保双方对项目…

页面加载不出来,报错[@umijs/runtime] load component failed

问题描述 页面加载不出来数据,一直在旋转,控制台输出内容如下: 原因分析: 之前页面是没有问题的,在写当前页面突然出现页面加载不出来,控制台报错,主要是页面引入了这行代码报错 import { …

MX Component基础使用(多点位读取,多点位写入)

步骤,先连接PLC,然后在填入对应的点位 D10 然后去读取。 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;us…

边缘计算网关的主要功能有哪些?天拓四方

随着物联网(IoT)的快速发展和普及,边缘计算网关已经成为了数据处理和传输的重要枢纽。作为一种集成数据采集、协议转换、数据处理、数据聚合和远程控制等多种功能的设备,边缘计算网关在降低网络延迟、提高数据处理效率以及减轻云数…

民国漫画杂志《时代漫画》第13期.PDF

时代漫画13.PDF: https://url03.ctfile.com/f/1779803-1247458360-14efab?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了,截止1937年6月战争来临被迫停刊共发行了39期。 ps:资源来源网络!

数组的定义、顺序存储及特殊矩阵的存储

目录 一、数组的定义 1.1概念 1.2抽象数据类型定义 二、数组的顺序存储 2.1一维数组元素的存储位置 2.2二维数组元素的存储位置 2.3三维数组元素的存储位置 三、特殊矩阵的压缩存储 3.1相关概念 3.2对称矩阵 3.3三角矩阵 3.4对角矩阵(带状矩阵&#xff0…

【机器学习300问】102、什么是混淆矩阵?

一、混淆矩阵的定义 混淆矩阵是一种用于评估分类模型性能的评估指标。当模型对数据进行预测并将数据分配到预定义的类别时,混淆矩阵提供了一种直观的方式来总结这些预测与数据实际类别之间的对应关系。具体来说,它是一个表格。 二、分类模型性能评估一级…

私域用户画像分析

为什么做私域要分析用户画像? 1、更好地了解用户需求:通过分析用户画像,可以深入了解用户的需求、偏好、行为等特征,从而更好地满足他们的需求。 2、个性化营销:根据用户画像,可以为用户提供个性化的营销…

js setTimeout、setInterval、promise、async await执行顺序梳理

基础知识 async: 关键字用于标记一个函数为异步函数,该函数中有一个或多个promise对象,需要等待执行完成后才会继续执行。 await:关键字,用于等待一个promise对象执行完,并返回其中的值,只能在async函数内部使用。可…

云服务器平台AutoDL--基本介绍与使用感受

因为课程作业需要复现DreamBooth,找了几个教程之后,发现了AutoDL这个好东西,芜湖~ 相关概念 以下回答来自于ChatGPT。 云计算平台:云服务器平台是提供按需计算资源和服务的在线平台,通常包括存储、处理能力、数据库、…

搜维尔科技:使用Haption Virtuose 6D 力反馈通过机器人和虚拟现实完成远程操作项目

使用Haption Virtuose 6D 力反馈通过机器人和虚拟现实完成远程操作项目 搜维尔科技:使用Haption Virtuose 6D 力反馈通过机器人和虚拟现实完成远程操作项目