日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Sql 中的变量使用

發(fā)布時(shí)間:2023/12/19 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Sql 中的变量使用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

總第162篇/張俊紅

我們?cè)趯W(xué) Python 或者其他編程語(yǔ)言的時(shí)候都應(yīng)該有學(xué)過(guò)變量這么一個(gè)東西,可是 Sql 這種查詢語(yǔ)言中怎么也有變量呢?具體有什么用呢?

我們來(lái)看一下實(shí)際應(yīng)用場(chǎng)景。

現(xiàn)在有這么一個(gè)表 t ,表結(jié)構(gòu)如下:

order_idtime1time2time3time4




















time1 表示瀏覽日期,
time2 表示加購(gòu)物車(chē)日期,
time3 表示下訂單日期,
time4 表示收貨日期。

這四個(gè)日期有什么關(guān)系呢?就是都有可能不相等,也有可能都相等,還有可能部分相等。如果我們想要看這四個(gè)日期都發(fā)生在20190801這一天的訂單應(yīng)該怎么看呢?

Sql代碼可以這么寫(xiě):

selectorder_id fromt where?time1?=?"2019-08-01"and?time2?=?"2019-08-01"and?time3?=?"2019-08-01"and?time4?=?"2019-08-01"

那如果現(xiàn)在老板又想要看一下這四個(gè)日期都發(fā)生在20190808這一天的訂單,該怎么看呢?很簡(jiǎn)單,直接把上面代碼中的日期改一下就可以了。如果老板還想別的,也直接改代碼中的日期就可以,這樣是可以達(dá)到目的,但是大家有沒(méi)有想過(guò),如果一段代碼中這種需要改的地方過(guò)多,而且代碼與代碼不是挨在一塊的時(shí)候,這個(gè)時(shí)候如果手動(dòng)去查找并修改的話,很有可能漏掉或改錯(cuò)。

這個(gè)時(shí)候變量就該出場(chǎng)了,之前講過(guò),所謂的變量就是一個(gè)變化的量,是一個(gè)容器,在你可能要更改的地方放一個(gè)變量,而不是固定的值,這樣每次你要更改的時(shí)候,只需要更改變量的值就可以,其他地方的變量也會(huì)跟著一起變,省時(shí)又省力,美滋滋。

那我們先來(lái)看一下 Mysql 數(shù)據(jù)庫(kù)中怎么設(shè)置變量,以下是在 Mysql 中設(shè)置變量day的幾種寫(xiě)法:

set?@day?=?"2019-08-01"; set?@day?:=?"2019-08-01"; select?@day?:=?"2019-08-01";

注意,如果使用 select 關(guān)鍵詞進(jìn)行變量賦值時(shí),不可以使用 = 號(hào),因?yàn)闀?huì)默認(rèn)把它當(dāng)作比較運(yùn)算符,而不是賦值,但是用關(guān)鍵詞 set 進(jìn)行變量賦值時(shí)是可以直接用 = 號(hào)的?,F(xiàn)在變量定義并且賦值好了,對(duì)于上面的代碼我們就可以這么寫(xiě)了。

set?@day?=?"2019-08-01"; selectorder_id fromt where?time1?=?@dayand?time2?=?@dayand?time3?=?@dayand?time4?=?@day

這樣每次要什么日期的數(shù)據(jù),只需要改變變量day的值就可以了。

我們?cè)賮?lái)看看Hql(Hive-sql)中的變量賦值怎么設(shè)置,變量賦值的時(shí)候也是用的關(guān)鍵詞 set,在變量引用那里和 Mysql 稍有不同,需要多加一個(gè)參數(shù) hiveconf。

set?day?=?"2019-08-01"; selectorder_id fromt where?time1?=?${hiveconf:day}and?time2?=?${hiveconf:day}and?time3?=?${hiveconf:day}and?time4?=?${hiveconf:day}

以上就是關(guān)于 Mysql 和 Hql 這兩種數(shù)據(jù)庫(kù)中變量的使用方法,變量的用法很常見(jiàn),也確實(shí)很有用,大家一定要熟練掌握。

你還可以看:

Sql 的執(zhí)行順序是怎樣的?

Sql 實(shí)現(xiàn)數(shù)據(jù)透視表功能

講講你不知道的窗口函數(shù)

講講 group by 的plus版

介紹一下 information_schema 庫(kù)

關(guān)于 Group 的另一個(gè)函數(shù)

內(nèi)連接的兩種方式

總結(jié)

以上是生活随笔為你收集整理的Sql 中的变量使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。