免费在线a视频-免费在线观看a视频-免费在线观看大片影视大全-免费在线观看的视频-色播丁香-色播基地

SQL中常用的內(nèi)置函數(shù)

:2024年06月20日 架構(gòu)師必備
分享到:

在SQL(結(jié)構(gòu)化查詢語言)中,有許多內(nèi)置函數(shù)可用于各種數(shù)據(jù)操作和計(jì)算。以下是SQL中常用的函數(shù)。

在SQL(結(jié)構(gòu)化查詢語言)中,有許多內(nèi)置函數(shù)可用于各種數(shù)據(jù)操作和計(jì)算。以下是SQL中常用的函數(shù)。

一.字符串操作、數(shù)值計(jì)算、日期處理

COUNT(): 統(tǒng)計(jì)行數(shù)。

SELECT COUNT(*) FROM employees;

SUM(): 計(jì)算數(shù)值列的總和。

SELECT SUM(salary) FROM employees;

AVG(): 計(jì)算數(shù)值列的平均值。

SELECT AVG(salary) FROM employees;

MIN(): 返回列中的最小值。

SELECT MIN(salary) FROM employees;

MAX(): 返回列中的最大值。

SELECT MAX(salary) FROM employees;

LENGTH(): 返回字符串的長度。

SELECT LENGTH(name) FROM employees;

SUBSTRING(): 提取字符串的一部分。

SELECT SUBSTRING(name, 1, 3) FROM employees;

REPLACE(): 替換字符串中的子串。

SELECT REPLACE(name, 'John', 'Jonathan') FROM employees;

UPPER(): 將字符串轉(zhuǎn)換為大寫。

SELECT UPPER(name) FROM employees;

LOWER(): 將字符串轉(zhuǎn)換為小寫。

SELECT LOWER(name) FROM employees;

二.數(shù)據(jù)操作和計(jì)算

CONCAT(): 連接兩個(gè)或多個(gè)字符串。

SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees;

TRIM(): 去除字符串兩端的空格或其他字符。

SELECT TRIM('   Hello World!   ') AS trimmed_string;

ROUND(): 對(duì)數(shù)值進(jìn)行四舍五入。

SELECT ROUND(salary, 2) FROM employees;

CEIL(): 返回大于等于指定數(shù)值的最小整數(shù)。

SELECT CEIL(123.45) AS ceiling_value;

FLOOR(): 返回小于等于指定數(shù)值的最大整數(shù)。

SELECT FLOOR(123.45) AS floor_value;

NOW(): 返回當(dāng)前的日期和時(shí)間。

SELECT NOW() AS current_date_time;

DATE(): 從日期時(shí)間中提取日期部分。

SELECT DATE(NOW()) AS current_date;

DATEDIFF(): 返回兩個(gè)日期之間的天數(shù)差。

SELECT DATEDIFF(NOW(), '2024-01-01') AS days_difference;

IFNULL(): 如果表達(dá)式的結(jié)果為NULL,則返回指定的值。

SELECT IFNULL(middle_name, 'N/A') FROM employees;

COALESCE(): 返回第一個(gè)非NULL的表達(dá)式。

SELECT COALESCE(middle_name, first_name, 'N/A') FROM employees;

三.數(shù)據(jù)類型轉(zhuǎn)換、條件判斷和其他常用操作

CAST(): 將一個(gè)表達(dá)式轉(zhuǎn)換為另一種數(shù)據(jù)類型。

SELECT CAST(salary AS DECIMAL(10, 2)) FROM employees;

CONVERT(): 另一種用于數(shù)據(jù)類型轉(zhuǎn)換的函數(shù)。

SELECT CONVERT(VARCHAR, hire_date, 101) FROM employees;

ABS(): 返回?cái)?shù)值的絕對(duì)值。

SELECT ABS(-123.45) AS absolute_value;

POWER(): 返回一個(gè)數(shù)的指定次方。

SELECT POWER(salary, 2) FROM employees;

SQRT(): 返回一個(gè)數(shù)的平方根。

SELECT SQRT(salary) FROM employees;

MOD(): 返回兩個(gè)數(shù)相除的余數(shù)。

SELECT MOD(salary, 1000) FROM employees;

SIGN(): 返回?cái)?shù)值的符號(hào),負(fù)數(shù)返回-1,零返回0,正數(shù)返回1。

SELECT SIGN(salary) FROM employees;

RAND(): 返回一個(gè)0到1之間的隨機(jī)數(shù)。

SELECT RAND() AS random_number;

CASE: 基于條件返回不同的值。

SELECT 

    name,

    CASE 

        WHEN salary < 50000 THEN 'Low'

        WHEN salary BETWEEN 50000 AND 100000 THEN 'Medium'

        ELSE 'High'

    END AS salary_level

FROM employees;

DECODE(): 另一種實(shí)現(xiàn)條件判斷的函數(shù),類似于CASE。

SELECT 

    name,

    DECODE(salary, 

           50000, 'Low', 

           100000, 'Medium', 

           'High') AS salary_level

FROM employees;

GREATEST(): 返回多個(gè)數(shù)值中的最大值。

SELECT GREATEST(salary, bonus, commission) FROM employees;

LEAST(): 返回多個(gè)數(shù)值中的最小值。

SELECT LEAST(salary, bonus, commission) FROM employees;

IF(): 實(shí)現(xiàn)條件判斷,如果條件為真則返回一個(gè)值,否則返回另一個(gè)值。

SELECT 

    name,

    IF(salary > 50000, 'Above Average', 'Below Average') AS salary_status

FROM employees;

LEFT(): 從字符串的左邊開始提取指定數(shù)量的字符。

SELECT LEFT(name, 3) FROM employees;

RIGHT(): 從字符串的右邊開始提取指定數(shù)量的字符。

SELECT RIGHT(name, 3) FROM employees;

REVERSE(): 反轉(zhuǎn)字符串。

SELECT REVERSE(name) FROM employees;

CHAR_LENGTH(): 返回字符串中的字符數(shù)。

SELECT CHAR_LENGTH(name) FROM employees;

POSITION(): 查找子串在字符串中的位置。

SELECT POSITION('Smith' IN name) FROM employees;

LOCATE(): 查找子串在字符串中的位置,返回子串的位置。

SELECT LOCATE('Smith', name) FROM employees;

GROUP_CONCAT(): 將一個(gè)組中的值連接成一個(gè)字符串。

SELECT GROUP_CONCAT(name) FROM employees;

四.窗口函數(shù)、日期時(shí)間操作

ROW_NUMBER(): 窗口函數(shù),用于為結(jié)果集中的每一行分配唯一的行號(hào)。

SELECT 

    name, 

    salary,

    ROW_NUMBER() OVER (ORDER BY salary DESC) AS row_num

FROM employees;

RANK(): 窗口函數(shù),用于為結(jié)果集中的每一行分配排名,允許并列。

SELECT 

    name, 

    salary,

    RANK() OVER (ORDER BY salary DESC) AS rank

FROM employees;

DENSE_RANK(): 窗口函數(shù),類似于RANK(),但排名連續(xù),沒有間斷。

SELECT 

    name, 

    salary,

    DENSE_RANK() OVER (ORDER BY salary DESC) AS dense_rank

FROM employees;

NTILE(): 窗口函數(shù),將結(jié)果集劃分為指定數(shù)量的桶,并為每一行分配桶號(hào)。

SELECT 

    name, 

    salary,

    NTILE(4) OVER (ORDER BY salary DESC) AS quartile

FROM employees;

LAG(): 窗口函數(shù),用于訪問前一行的值。

SELECT 

    name, 

    salary,

    LAG(salary, 1) OVER (ORDER BY salary DESC) AS previous_salary

FROM employees;

LEAD(): 窗口函數(shù),用于訪問后一行的值。

SELECT 

    name, 

    salary,

    LEAD(salary, 1) OVER (ORDER BY salary DESC) AS next_salary

FROM employees;

FIRST_VALUE(): 窗口函數(shù),返回分區(qū)中的第一個(gè)值。

SELECT 

    name, 

    salary,

    FIRST_VALUE(salary) OVER (ORDER BY salary DESC) AS first_salary

FROM employees;

LAST_VALUE(): 窗口函數(shù),返回分區(qū)中的最后一個(gè)值。

SELECT 

    name, 

    salary,

    LAST_VALUE(salary) OVER (ORDER BY salary DESC) AS last_salary

FROM employees;

DATE_ADD(): 向日期添加指定的時(shí)間間隔。

SELECT DATE_ADD(NOW(), INTERVAL 7 DAY) AS next_week;

DATE_SUB(): 從日期減去指定的時(shí)間間隔。

SELECT DATE_SUB(NOW(), INTERVAL 7 DAY) AS last_week;

YEAR(): 從日期中提取年份部分。

SELECT YEAR(hire_date) AS hire_year FROM employees;

MONTH(): 從日期中提取月份部分。

SELECT MONTH(hire_date) AS hire_month FROM employees;

DAY(): 從日期中提取天部分。

SELECT DAY(hire_date) AS hire_day FROM employees;

HOUR(): 從日期時(shí)間中提取小時(shí)部分。

SELECT HOUR(NOW()) AS current_hour;

MINUTE(): 從日期時(shí)間中提取分鐘部分。

SELECT MINUTE(NOW()) AS current_minute;

SECOND(): 從日期時(shí)間中提取秒部分。

SELECT SECOND(NOW()) AS current_second;

EXTRACT(): 從日期時(shí)間中提取指定的部分(年份、月份、天、小時(shí)、分鐘、秒)。

SELECT EXTRACT(YEAR FROM hire_date) AS hire_year FROM employees;

FORMAT(): 按照指定格式格式化日期或數(shù)值。

SELECT FORMAT(salary, 2) AS formatted_salary FROM employees;

UNIX_TIMESTAMP(): 返回當(dāng)前時(shí)間的Unix時(shí)間戳。

SELECT UNIX_TIMESTAMP() AS current_timestamp;

FROM_UNIXTIME(): 將Unix時(shí)間戳轉(zhuǎn)換為日期時(shí)間。

SELECT FROM_UNIXTIME(UNIX_TIMESTAMP()) AS current_datetime;

本文來源:https://mp.weixin.qq.com/s/ciALSneN_V2PnNRXjq99nQ

[我要糾錯(cuò)]
[編輯:宋聰喬 &發(fā)表于江蘇]
關(guān)鍵詞: 結(jié)構(gòu)化 查詢 語言 許多 內(nèi)置

來源:本文內(nèi)容搜集或轉(zhuǎn)自各大網(wǎng)絡(luò)平臺(tái),并已注明來源、出處,如果轉(zhuǎn)載侵犯您的版權(quán)或非授權(quán)發(fā)布,請(qǐng)聯(lián)系小編,我們會(huì)及時(shí)審核處理。
聲明:江蘇教育黃頁對(duì)文中觀點(diǎn)保持中立,對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或者完整性不提供任何明示或暗示的保證,不對(duì)文章觀點(diǎn)負(fù)責(zé),僅作分享之用,文章版權(quán)及插圖屬于原作者。

點(diǎn)個(gè)贊
0
踩一腳
0

您在閱讀:SQL中常用的內(nèi)置函數(shù)

Copyright©2013-2025 ?JSedu114 All Rights Reserved. 江蘇教育信息綜合發(fā)布查詢平臺(tái)保留所有權(quán)利

蘇公網(wǎng)安備32010402000125 蘇ICP備14051488號(hào)-3技術(shù)支持:南京博盛藍(lán)睿網(wǎng)絡(luò)科技有限公司

南京思必達(dá)教育科技有限公司版權(quán)所有   百度統(tǒng)計(jì)

主站蜘蛛池模板: 黄色片视频免费观看 | www.男插女b免费视频 | 国产精品自在欧美一区 | 怡红院美国十次成人影院 | 日韩在线1 | 亚洲一区二区三区精品影院 | 青青草国产精品人人爱99 | 欧美一区二区视频高清转区 | 国产在线永久视频 | 亚洲国产成人精品一区91 | 色婷婷色综合激情国产日韩 | 天天操女人 | 国产卡1卡2卡三卡网站免费 | 中国特级黄一级真人毛片 | 日韩在线欧美在线 | 成 人网站免费 | 曰曰啪天天拍视频在线 | 91视频一区二区 | 最新日韩欧美不卡一二三区 | 欧洲成人免费视频 | 午夜理伦| 天堂成人精品视频在线观 | 久久99网站| 操人的网站 | 日本欧美一区二区三区高清 | 亚洲日韩在线视频 | 欧美激情网址 | 亚洲妇熟xxxxx妇色黄 | 本田岬最猛喷一地在线播放 | 国产精自产拍久久久久久 | 欧美成人看片 | 国产精品久久天天影视 | avhd101av高清迷片在线 | 欧美肥老妇 | 亚洲a在线观看 | 成年男女免费视频观看性 | 国内精品一区二区在线观看 | 毛片网站有哪些 | 狠狠大日本亚洲香蕉亚洲 | 成年男女免费视频 | 小明台湾成人永久免费看看 |
最熱文章
最新文章
  • 阿里云上云鉅惠,云產(chǎn)品享最低成本,有需要聯(lián)系,
  • 卡爾蔡司鏡片優(yōu)惠店,鏡片價(jià)格低
  • 蘋果原裝手機(jī)殼