MySQL ClickHouse不同于SQL的語法介紹
下面只展示和MySQL或HIVE區(qū)別較大的語法
例如ClickHouse建庫語法和MySQL幾乎1卵樣的不予展示
ClickHouse的JOIN邏輯

# 創(chuàng)建左表
CREATE TABLE default.temp_left(
`a` String COMMENT '匹配鍵'
)ENGINE = MergeTree
ORDER BY (a);
INSERT INTO default.temp_left
SELECT 'A1' AS a UNION ALL
SELECT 'A1' AS a UNION ALL
SELECT 'A2' AS a UNION ALL
SELECT 'A3' AS a;
# 創(chuàng)建右表
CREATE TABLE default.temp_right(
`a` String COMMENT '匹配鍵',
`b` Nullable(UInt32),
`c` UInt32
)ENGINE = MergeTree
ORDER BY (a);
INSERT INTO default.temp_right
SELECT 'A2' AS a,9 AS b,8 AS c UNION ALL
SELECT 'A3' AS a,9 AS b,8 AS c UNION ALL
SELECT 'A4' AS a,9 AS b,8 AS c;
# 左聯(lián)
SELECT *
FROM default.temp_left le
LEFT JOIN default.temp_right ri ON le.a=ri.a
左聯(lián)測試結果

在右表中,b允許空,a和c冇允許空 左聯(lián)后,聯(lián)不上的a是空字符串,聯(lián)不上的b是NULL,聯(lián)不上的c是0
INSERT SELECT
INSERT INTO t2 WITH a AS (SELECT * FROM t1) SELECT * FROM a;
和HIVE、MySQL等不一樣,ClickHouse的INSERT寫在WITH之前
臨時表
- 當回話結束時,臨時表將隨會話一起消失
- 臨時表僅能用Memory表引擎
- 無法為臨時表指定數據庫,它是在數據庫之外創(chuàng)建的
- 當查詢沒有指定庫,且臨時表與另一個表名相同 時,會優(yōu)先使用臨時表
CREATE TEMPORARY TABLE temp_t(`a` String,`b` Int32);
INSERT INTO temp_t VALUES ('AB',3),('CC',4);
SELECT * FROM temp_t;
# 結束會話后,臨時表不存在窗口函數
CREATE TEMPORARY TABLE sales(
name String COMMENT '產品',
city String COMMENT '城市',
sale Int32 COMMENT '銷量');
INSERT INTO sales VALUES
('椰子','佛山',99),('雪梨','佛山',77),('蘋果','佛山',88),
('椰子','廣州',80),('雪梨','廣州',80),('蘋果','廣州',70);
SELECT city
,groupArray(name) OVER (PARTITION BY city)
FROM sales;

SELECT
city,
name,
sale,
rank() OVER(PARTITION BY city ORDER BY sale DESC)
FROM sales;

單引號和雙引號
多數情況使用單引號
SELECT "abc"; # 報錯 SELECT 'abc'; # 正常查詢,返回字符串
CREATE TABLE default.temp_t( `a` String COMMENT "匹配鍵" )ENGINE=Log; # 字段注釋使用雙引號報錯 CREATE TABLE default.temp_t( `a` String COMMENT '匹配鍵' )ENGINE=Log; # 正常建表
到此這篇關于MySQL ClickHouse不同于SQL的語法介紹的文章就介紹到這了,更多相關MySQL ClickHouse內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決mysql報錯:Data?source?rejected?establishment?of?connect
這篇文章主要給大家介紹了關于如何解決mysql報錯:Data?source?rejected?establishment?of?connection,?message?from?server:?\"Too?many?connectio的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-02-02
mysql通過binlog日志復制主從同步的實現(xiàn)
本文主要介紹了mysql通過binlog日志復制主從同步的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-05-05
Win10安裝mysql8.0.15 winx64及連接服務器過程中遇到的問題
這篇文章主要介紹了Win10安裝mysql8.0.15 winx64及連接服務器過程中遇到的問題,本文通過圖文并茂的形式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12
MySQL 5.7升級8.0報異常:ONLY_FULL_GROUP_BY的問題解決
本文主要介紹了MySQL 5.7升級8.0報異常的問題解決,主要是ONLY_FULL_GROUP_BY,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-11-11

