共計 3916 個字符,預計需要花費 10 分鐘才能閱讀完成。
HANA 常用語法有哪些,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
SQL
--1. 查看當前日期
SELECT CURRENT_DATE DATE FROM DUMMY;
-- 查看當前日期零時零分
SELECT TO_TIMESTAMP(TO_CHAR(CURRENT_TIMESTAMP, YYYY-MM-DD)) FROM DUMMY;
SELECT CURRENT_DATE FROM DUMMY;
--2. 查找雇員的姓名及雇員的年薪。P1526659201 為 SCHEMA
SELECT ENAME,SAL*12 FROM P1526659201.EMP;
--3. 像 ORACLE 一樣任何含空值的數學表達式是空值:SELECT ENAME,SAL*12+COMM FROM P1526659201.EMP;
--4. 其中 || 相當于把 SAL 全部轉換成字符串
SELECT ENAME||SAL FROM EMP;
--5. 表示字符串的方法
SELECT ENAME|| ENAME FROM EMP;
--6. 如果字符串中包含有 用 替換它
SELECT ENAME|| ENAME FROM EMP;
--7. 取出 EMP 表的前 5 條記錄
SELECT TOP 5 * FROM EMP;
--8. 取出 EMP 表的全部記錄
SELECT ALL * FROM EMP;
--9. 去除兩個字段重復的數據
SELECT DISTINCT DEPTNO,JOB FROM EMP;
--10. 取 ASCII 碼
SELECT ASCII(ANT) ASCII FROM DUMMY;
SCHEMA
-- 創建 SCHEMA.
-- 語法:CREATE SCHEMA SCHEMA_NAME [OWNED BY USER_NAME]
/*OWNED BY:指定 SCHEMA 的擁有者,如果省略。當前用戶將是這個 SHEMA 的擁有者 */
CREATE SCHEMA MY_SCHEMA;
CREATE SCHEMA MY_SCHEMA OWNED BY SYSTEM.
-- 刪除 SCHEMA:
-- 語法:DROP SCHEMA SCHEMA_NAME [DROP_OPTION]
DROP_OPTION: CASCADE | RESTRICT
/* 默認的 DROP_OPTION 為:RESTRICT(限制約束)
RESTRICT:直接刪除沒有依賴的對象, 如果對象有依賴關系,會拋出錯誤信息。CASCADE:直接刪除所有對象。*/
CREATE SCHEMA MY_SCHEMA;
CREATE TABLE MY_SCHEMA.T (A INT);
DROP SCHEMA MY_SCHEMA CASCADE;
SELECT * FROM TABLES WHERE SCHEMA_NAME= P1526659201 -- 查詢 SCHEMA:P1526659201 下的所有表
TABLE
/* 行表適用于如下一些場景: * 一次處理一條記錄的情況
* 應用需要訪問完整記錄或記錄的大部分(即一條記錄中的所有字段或大多數字段) * 不需要壓縮率
* 沒有或很少的聚集、分組等復雜操作
* 表中的記錄行數不是很多
-- 下面是創建行表的一些列子:CREATE TABLE ACCOUNTS
( ACT_NO CHAR(18),
ACT_NAME NVARCHAR(100),
BALANCE DECIMAL(15,2),
PRIMARY KEY (ACT_NO)
);
CREATE TABLE R
(A INT PRIMARY KEY,
B NVARCHAR(10)
);
CREATE TABLE F
(FK INT, B NVARCHAR(10),
UNIQUE (FK, B),
FOREIGN KEY(FK) REFERENCES R ON UPDATE CASCADE
) NO LOGGING;
/* 依據某個已經存在的表創建另外的新表。HANA SQL 提供了兩類方法 */:-- 方法一:創建的表與源表數據類型、約束完全相同。例如:CREATE TABLE T_ACCOUNTS LIKE ACCOUNTS WITH NO DATA
-- 方法二:創建的表字段類型和 NULL/NOT NULL 屬性相同
CREATE TABLE T_ACCOUNTS1 AS (SELECT * FROM ACCOUNTS) WITH DATA
/* 列表適用于如下一些場景: * 通常只是在一個或少量列上執行計算操作
* 表在進行搜索時通常基于少量列上的值
* 表有很多列
* 表有很多行,并且通常進行的是列式操作(比如:聚集計算和 WHERE 中字段值查找) * 需要很高的壓縮率。CREATE COLUMN TABLE TPCH.NATION
(N_NATIONKEY INT NOT NULL,
N_NAME CHAR(25),
N_REGIONKEY INT,
N_COMMENT VARCHAR(152),
PRIMARY KEY(N_NATIONKEY)
);
-- 例 2(分區,只適用于列表,分區鍵必須是主鍵的一部分)
CREATE COLUMN TABLE TPCH.LINEITEM
(L_ORDERKEY INT NOT NULL,L_PARTKEY INT,
L_SUPPKEY INT,L_LINENUMBER INT NOT NULL,
L_QUANTITY DECIMAL(10,2),L_EXTENDEDPRICE DECIMAL(10,2),
L_DISCOUNT DECIMAL(10,2),L_TAX DECIMAL(10,2),
L_RETURNFLAG CHAR(1),L_LINESTATUS CHAR(1),
L_SHIPDATE DATE,L_COMMITDATE DATE,L_RECEIPTDATE DATE,
L_SHIPINSTRUCT CHAR(25),L_SHIPMODE CHAR(10),
L_COMMENT VARCHAR(44),
PRIMARY KEY INVERTED VALUE (L_ORDERKEY,L_LINENUMBER)
)
PARTITION BY HASH (L_ORDERKEY,L_LINENUMBER) PARTITIONS 4,
RANGE (L_SHIPDATE) (
PARTITION 2011/01/01 = VALUES 2011/04/01 ,
PARTITION 2011/04/01 = VALUES 2011/07/01 ,
PARTITION 2011/07/01 = VALUES 2011/10/01 ,
PARTITION OTHERS);
--HANA 查看特定表的分區情況
SELECT * FROM SYS.M_CS_PARTITIONS WHERE TABLE_NAME = TABLE_NAME
--HANA 支持行表轉換為列表,或者列表轉換為行表。示例如下:ALTER TABLE ACCOUNTS COLUMN THREADS 10 BATCH 10000 -- 行轉列
ALTER TABLE ACCOUNTS ROW THREADS 10 -- 列表轉為行表
INDEX
--SAP HANA 的索引都是保存在內存中。-- 創建索引:-- 語法:CREATE [UNIQUE] [BTREE | CPBTREE] INDEX INDEX_NAME ON TABLE_NAME (COLUMN_NAME_ORDER , ...) [ASC | DESC]
-- 創建測試表:CREATE ROW TABLE TEST_INDEX (ID INT,NAME NVARCHAR(10), REMARK NVARCHAR(10));
CREATE INDEX INDEXTEST1 ON TEST_INDEX(NAME);
CREATE CPBTREE INDEX INDEXTEST2 ON TEST_INDEX(ID, NAME DESC);
-- 創建唯一鍵索引:CREATE UNIQUE INDEX INDEXTEST4 ON TEST_INDEX(ID);
CREATE UNIQUE INDEX INDEXTEST3 ON TEST_INDEX(NAME,REMARK);
-- 刪除索引:DROP INDEX INDEX_NAME
DROP INDEX INDEXTEST2;刪除索引 INDEXTEST2
-- 查詢索引:SELECT * FROM INDEXES WHERE TABLE_NAME = EMP -- 查詢員工表中使用的索引
SELECT * FROM INDEX_COLUMNS WHERE TABLE_NAME = EMP; -- 查詢索引列
SELECT * FROM M_RS_INDEXES WHERE TABLE_NAME = EMP ;-- 查詢索引的統計信息 (B-TREE AND CPB-TREE)
SELECT * FROM FULLTEXT_INDEXES WHERE TABLE_NAME = EMP -- 查詢 FULLTEXT 索引
SELECT * FROM M_FULLTEXT_QUEUES; -- 查看 FULLTEXT 索引隊列的狀態
關于 HANA 常用語法有哪些問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注丸趣 TV 行業資訊頻道了解更多相關知識。
正文完