【數據庫】數據庫學習(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.pswp.cn/bicheng/18379.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/18379.shtml
英文地址,請注明出處:http://en.pswp.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 力反饋通過機器人和虛擬現實完成遠程操作項目