成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL 實用函數詳解:提升數據操作效率

開發
本文介紹了一些常用的 SQL 函數,這些函數可以極大地提高 SQL 查詢的效率和靈活性。

一、概述

SQL 是一種功能強大的查詢語言,在處理數據時,SQL 提供了許多內置函數,這些函數極大地提高了數據操作的效率和靈活性。本文將介紹一些常用且實用的 SQL 函數,并提供相應的示例代碼來展示這些函數的使用方法。

二、常用SQL函數分類

SQL 函數可以大致分為以下幾類:

  • 字符串函數
  • 數值函數
  • 日期時間函數
  • 聚合函數

三、字符串函數

1. CONCAT()

CONCAT() 用于將多個字符串連接在一起。

SELECT CONCAT('Hello', ' ', 'World') AS Greeting;

輸出:

Greeting
---------
Hello World

說明: 以上示例中,CONCAT() 函數將 Hello、空格和 World 拼接成一個字符串。

2. SUBSTRING()

SUBSTRING() 用于從字符串中提取子字符串。

SELECT SUBSTRING('Hello World', 1, 5) AS Substring;

輸出:

Substring
---------
Hello

說明: SUBSTRING() 從字符串 "Hello World" 的第 1 個字符開始,提取長度為 5 的子字符串。

3. LENGTH()

LENGTH() 用于計算字符串的長度。

SELECT LENGTH('Hello World') AS Length;

輸出:

Length
------
11

說明: LENGTH() 函數返回字符串 Hello World 的長度。

4. UPPER() 和 LOWER()

UPPER() 函數將字符串中的所有字母字符轉換為大寫。非字母字符保持不變。

SELECT UPPER(name) AS upper_name FROM user;

輸出:

upper
------
ZHY
UYII
ADMIN

說明: UPPER() 函數返回name字段的大寫形式。

LOWER() 函數則相反,將字符串中的所有字母字符轉換為小寫。非字母字符保持不變。

5. REPLACE()

REPLACE() 函數用于在字符串中替換所有指定的子字符串為一個新字符串。

UPDATE employees
SET department = REPLACE(department, 'Sales', 'Marketing');

說明: 假設我們有一個名為 employees 的表,其中有一個名為 department 的列,我們想要將所有部門的名稱中的Sales替換為Marketing。

四、數值函數

1. ROUND()

ROUND() 用于將數字四舍五入到指定的小數位數。

SELECT ROUND(123.4567, 2) AS RoundedValue;

輸出:

RoundedValue
------------
123.46

說明: ROUND() 函數將 123.4567 四舍五入到 2 位小數,結果為 123.46。

2. CEIL() 和 FLOOR()

CEIL() 函數返回大于或等于指定數字的最小整數,而 FLOOR() 函數返回小于或等于指定數字的最大整數。

SELECT CEIL(123.4567) AS CeilValue, FLOOR(123.4567) AS FloorValue;

輸出:

CeilValue | FloorValue
----------------------
124       | 123

說明: CEIL() 函數將 123.4567 向上取整,而 FLOOR() 函數將其向下取整。

五、日期時間函數

1. NOW()

NOW() 函數返回當前的日期和時間。

SELECT NOW() AS CurrentDateTime;

輸出:

CurrentDateTime
-----------------------
2024-08-09 10:35:29

說明: NOW() 函數返回當前的日期和時間,格式為 YYYY-MM-DD HH:MM:SS。

2. DATE_FORMAT()

DATE_FORMAT() 函數用于以特定格式顯示日期和時間。

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') AS FormattedDate;

輸出:

FormattedDate
-------------
2024-08-09

說明: DATE_FORMAT() 函數將當前日期格式化為 YYYY-MM-DD 的格式。

3. DATEDIFF()

DATEDIFF() 函數用于計算兩個日期之間的天數差。

SELECT DATEDIFF('2024-12-31', '2024-01-01') AS DaysDifference;

輸出:

DaysDifference
---------------
365

說明: DATEDIFF() 函數計算兩個日期之間的天數差。

4. CURDATE()

CURDATE() 函數用于返回當前的日期,格式為 YYYY-MM-DD。

SELECT CURDATE() AS CurrentDate;

輸出:

CurrentDate
------------
2024-08-09

說明: CURDATE() 函數返回當前日期,不包含時間部分。

5. CURTIME()

CURTIME() 函數用于返回當前的時間,格式為 HH:MM:SS。

SELECT CURTIME() AS CurrentTime;

輸出:

CurrentTime
------------
10:35:29

說明: CURTIME() 函數返回當前時間,不包含日期部分。

6. DATE_ADD() 和 DATE_SUB()

DATE_ADD() 函數用于在指定的日期上添加一個時間間隔(如天、月、年等),并返回新的日期。

DATE_SUB() 函數用于從指定的日期上減去一個時間間隔(如天、月、年等),并返回新的日期。

SELECT DATE_ADD(date, INTERVAL expr unit) AS NewDate;
SELECT DATE_SUB(date, INTERVAL expr unit) AS NewDate;

說明:

  • date: 基準日期。
  • expr: 需要減去的時間間隔。
  • unit: 時間單位(如 DAY、MONTH、YEAR 等)。

7. EXTRACT()

EXTRACT() 函數用于從日期或時間中提取指定的部分,如年份、月份、天、小時等。

SELECT EXTRACT(YEAR FROM '2024-08-09') AS YearPart;
# 需要提取的部分(如 YEAR、MONTH、DAY、HOUR、MINUTE 等)。

輸出:

YearPart
---------
2024

說明: EXTRACT(YEAR FROM '2024-08-09') 提取日期中的年份部分,結果為 2024。

六、聚合函數

1. COUNT()

COUNT() 函數用于返回滿足條件的行數。

SELECT COUNT(*) AS TotalRows FROM employees;

輸出:

TotalRows
---------
100

說明: COUNT(*) 函數計算 employees 表中的總行數。

2. SUM()

SUM() 函數用于返回指定列的數值總和。

SELECT SUM(salary) AS TotalSalary FROM employees;

輸出:

TotalSalary
-----------
500000

說明: SUM() 函數計算 employees 表中所有員工的工資總和。

3. AVG()

AVG() 函數用于返回指定列的平均值。

SELECT AVG(salary) AS AverageSalary FROM employees;

輸出:

AverageSalary
-------------
5000

說明: AVG() 函數計算 employees 表中員工工資的平均值。

七、條件表達式函數

1. IF()

IF() 函數用于在 SQL 查詢中實現簡單的條件判斷。根據條件的真假,返回不同的結果。

SELECT IF(condition, true_value, false_value);

# 示例
SELECT name, salary, IF(salary > 10000, '高薪', '普通薪資') AS SalaryLevel
FROM employees;

說明:

  • condition: 需要判斷的條件表達式。
  • true_value: 如果條件為真 (TRUE),返回的值。
  • false_value: 如果條件為假 (FALSE),返回的值。

示例: 判斷某員工工資是否大于 10000,如果大于返回"高薪",否則返回"普通薪資"。

name      | salary | SalaryLevel
---------------------------------
John Doe  | 12000   | 高薪
Jane Smith| 5000   | 普通薪資

2. CASE WHEN

CASE WHEN 函數用于在 SQL 查詢中實現更復雜的條件判斷邏輯。它類似于編程語言中的 switch-case 語句,可以根據多個條件返回不同的結果。

SELECT 
  CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE default_result
  END AS result_alias;

#示例:
SELECT name, salary, 
  CASE
    WHEN salary > 10000 THEN '高薪'
    WHEN salary BETWEEN 4000 AND 10000 THEN '中等薪資'
    ELSE '低薪'
  END AS SalaryLevel
FROM employees;

說明:

  • condition1, condition2, ...: 需要判斷的條件表達式。
  • result1, result2, ...: 當條件為真時返回的結果。
  • default_result: 當所有條件都不滿足時,返回的默認結果。
  • result_alias: 結果的別名。

示例: 根據員工的工資水平,劃分為 高薪、中等薪資 和 低薪 三個等級。

name | salary | SalaryLevel
---------------------------------
張三  | 12000  | 高薪
李四  | 7000   | 中等薪資
王五  | 2500   | 低薪

結語

本文介紹了一些常用的 SQL 函數,這些函數可以極大地提高 SQL 查詢的效率和靈活性。通過結合實際應用中的場景,我們可以更好地理解并運用這些函數來處理數據。

責任編輯:趙寧寧 來源: 源話編程
相關推薦

2010-10-27 13:55:01

memoization遞歸JavaScript

2024-08-27 12:18:23

函數Python

2022-04-29 08:15:40

Python技巧Max

2025-03-03 00:15:00

JavaScript開發效率

2016-02-15 09:25:00

R語言運算效率大數據

2024-08-19 00:40:00

SQL數據庫

2024-07-10 09:07:09

2009-02-23 13:41:42

XML操作函數SQL Server

2024-10-23 09:00:00

數據分析Pandas

2024-09-26 06:21:59

Python代碼

2010-04-29 12:46:42

Oracle SQL

2022-07-13 14:40:50

Chrome前端日常開發

2009-09-18 14:51:19

LINQ TO SQL

2010-07-16 17:03:35

SQL Server

2020-12-24 09:18:51

SQL數據庫函數

2010-07-21 11:26:07

SQL Server

2025-01-07 13:58:08

SQL數據處理函數數據庫

2010-07-01 11:49:13

SQL Server

2024-03-06 09:05:02

KubernetesReadyNode
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄色一级片aaa | 99精品免费视频 | 天天弄天天操 | 久久久久成人精品 | 免费久久99精品国产婷婷六月 | 成人精品久久 | 欧美一级免费看 | 日日夜夜天天 | 理论片午午伦夜理片影院 | 草草视频在线免费观看 | 亚洲高清久久 | 亚洲在线视频 | 日本福利视频 | 亚洲女优在线播放 | 成人精品一区亚洲午夜久久久 | 国产成人精品高清久久 | 精品亚洲一区二区三区 | 免费中文字幕日韩欧美 | 亚洲色欧美另类 | 亚洲视频免费在线观看 | 国产成人精品区一区二区不卡 | 中文字幕91av | 成人久久 | 亚洲色综合| 日韩第一区 | 97福利在线 | 盗摄精品av一区二区三区 | 天天草视频| 亚洲综合视频 | 日韩精品成人一区二区三区视频 | 久艹网站| 看av电影 | 精品一区二区在线观看 | 日韩激情视频一区 | 国内精品久久精品 | 羞羞的视频在线 | 成人动漫视频网站 | 国产激情一区二区三区 | 国产久| 国产成人免费 | 亚洲人成一区二区三区性色 |