SAP HANA SQL: เรียนรู้คำสั่งพื้นฐานใน 10 นาที

⚡ สรุปอย่างชาญฉลาด

SAP HANA SQL เป็นภาษาฐานข้อมูลหลักของแพลตฟอร์ม ทำหน้าที่จัดการการกำหนดโครงสร้างข้อมูล การจัดการข้อมูล การควบคุมการเข้าถึง และการจัดการเซสชัน โดยปฏิบัติตามมาตรฐานที่ทำให้ SQL สามารถใช้งานได้กับฐานข้อมูลเชิงสัมพันธ์ต่างๆ

  • 🗣️ บทบาทหลัก: SQL เป็นภาษาหลักสำหรับการสื่อสารกับ SAP HANA ก็เช่นเดียวกับระบบฐานข้อมูลเชิงสัมพันธ์อื่นๆ
  • 🏗️ การทำงานกับโครงสร้างข้อมูล: คำสั่ง CREATE SCHEMA จะสร้างเนมสเปซที่เป็นเจ้าของตาราง มุมมอง และโพรซีเดอร์ต่างๆ
  • 📋 คำสั่ง DML: คำสั่ง SELECT, INSERT และ UPDATE ใช้สำหรับอ่านและแก้ไขข้อมูลในตาราง
  • 🧱 คำสั่ง DDL: สร้าง แก้ไข และวาง เพื่อกำหนดและปรับเปลี่ยนรูปร่างของวัตถุเหล่านั้น
  • 🔐 แถลงการณ์ของ DCL: คำสั่ง GRANT และ REVOKE ควบคุมว่าผู้ใช้รายใดสามารถดำเนินการใดได้บ้าง
  • 💬 รูปแบบการแสดงความคิดเห็น: Double เครื่องหมายขีด (-) ใช้สำหรับแสดงความคิดเห็นบรรทัดเดียว และเครื่องหมายทับ (/) หรือเครื่องหมายดอกจัน (*) ใช้สำหรับแสดงความคิดเห็นหลายบรรทัด
  • ⚙️ การบริหาร: การจัดการระบบ การจัดการเซสชัน และการจัดการธุรกรรม ล้วนขับเคลื่อนด้วยคำสั่ง SQL

SAP ฮาน่า SQL

ฐานข้อมูล RDBMS ส่วนใหญ่ใช้ SQL ในฐานะภาษาฐานข้อมูล เหตุผลที่ได้รับความนิยมคือ เป็นภาษาที่มีประสิทธิภาพ ผู้จำหน่ายเป็นอิสระและมีมาตรฐาน SAP HANA ยังรองรับ SQL ด้วย

In SAP HANA, SQL เป็นภาษาฐานข้อมูลหลัก

ความหมายของ SAP ฮาน่า SQL?

SQL ย่อมาจาก Structured Query Language เป็นภาษามาตรฐานสำหรับการสื่อสารกับฐานข้อมูลเชิงสัมพันธ์เช่น Oracle, MySQL เป็นต้น SQL ใช้เพื่อจัดเก็บ เรียกค้น และแก้ไขข้อมูลในฐานข้อมูล

โดยใช้ SQL ใน SAP ฮาน่า เราสามารถทำหน้าที่ดังต่อไปนี้ได้

  • คำจำกัดความของสคีมาและการใช้งาน (CREATE SCHEMA)
  • คำสั่ง DML (SELECT, UPDATE, INSERT)
  • คำสั่ง DDL (CREATE, ALTER, DROP)
  • คำแถลงของ DCL (อนุมัติ, เพิกถอน)
  • การจัดการระบบ
  • การจัดการเซสชัน
  • การจัดการการทำธุรกรรม

คำสั่งต่างๆ จะถูกดำเนินการจากคอนโซล SQL ของ SAP ฮานะ สตูดิโอไม่ว่าจะใช้งานจากไคลเอนต์แบบบรรทัดคำสั่ง หรือจากแอปพลิเคชันที่เชื่อมต่อผ่าน JDBC หรือ ODBC ภาษาที่ใช้จะเหมือนกันในทุกกรณี

หมวดหมู่คำสั่ง SQL ใน SAP HANA

ทุกข้อความล้วนเป็นของกลุ่มข้อมูลจำนวนน้อยกลุ่มหนึ่ง การทราบว่าข้อความนั้นอยู่ในกลุ่มใดจะช่วยให้คาดการณ์ได้ว่าสามารถย้อนกลับข้อความนั้นได้หรือไม่ และต้องได้รับอนุญาตอย่างไร

Category ชื่อ คำกล่าวทั่วไป จุดมุ่งหมาย
DDL ภาษานิยามข้อมูล สร้าง แก้ไข ลบ เปลี่ยนชื่อ กำหนดและเปลี่ยนแปลงอ็อบเจ็กต์ต่างๆ เช่น สคีมา ตาราง และวิว
ดราก้อน ภาษาการจัดการข้อมูล เลือก, แทรก, อัปเดต, ลบ, อัปเดตแทรก อ่านและเปลี่ยนแปลงแถวที่เก็บอยู่ภายในอ็อบเจ็กต์
DCL ภาษาควบคุมข้อมูล อนุมัติ, เพิกถอน ควบคุมว่าผู้ใช้หรือบทบาทใดสามารถดำเนินการใดได้บ้าง
ทีซีแอล ภาษาควบคุมธุรกรรม ยืนยัน, ย้อนกลับ, บันทึกจุด ยืนยันหรือปฏิเสธหน่วยงาน
เซสชั่น การจัดการเซสชัน ตั้งค่าสคีมา เชื่อมต่อ ตั้งค่าธุรกรรม กำหนดค่าการเชื่อมต่อปัจจุบัน
System ระบบการจัดการ แก้ไขระบบ ตรวจสอบมุมมอง ทำหน้าที่บริหารจัดการอินสแตนซ์ฐานข้อมูลเอง

คำสั่ง UPSERT นั้นน่าสนใจเพราะไม่ได้มีอยู่ในทุกภาษาของโปรแกรม คำสั่งนี้จะแทรกแถวใหม่เมื่อคีย์เป็นคีย์ใหม่ และจะอัปเดตแถวเมื่อคีย์นั้นมีอยู่แล้ว ซึ่งช่วยลดรูปแบบการใช้คำสั่งสองคำสั่งที่พบได้ทั่วไป

ความคิดเห็นใน SQL

เราสามารถเพิ่มความคิดเห็นเพื่อปรับปรุงความสามารถในการอ่านและการบำรุงรักษาคำสั่ง SQL ความคิดเห็นสามารถใส่ใน SQL ได้สองวิธี -

  • ความคิดเห็นบรรทัดเดียว – Double เครื่องหมายขีดกลาง “–“ นี่คือข้อความแสดงความคิดเห็นบรรทัดเดียว
  • การใส่ข้อความหลายบรรทัด – “/* */”

ข้อความแสดงความคิดเห็นทั้งหมดจะถูกละเว้นโดย SQL Parser

-- This is a single line comment
SELECT ELEMENT FROM DHK_SCHEMA.TABLE1;

/* This is a multiple line comment.
   Everything between the markers is ignored
   by the SQL parser. */
SELECT COUNT(*) FROM DHK_SCHEMA.TABLE1;

ตัวอย่างไวยากรณ์ SQL พื้นฐานใน SAP HANA

คำสั่งด้านล่างนี้ครอบคลุมขั้นตอนการทำงานประจำวัน ได้แก่ การสร้างสคีมา การกำหนดตาราง การโหลดแถว และการอ่านข้อมูลกลับมา โดยสามารถทำงานได้โดยไม่ต้องแก้ไขใดๆ ในคอนโซล SQL

1) สร้างสคีมา Schema เป็นเจ้าของอ็อบเจ็กต์ที่สร้างขึ้นภายในนั้น และเป็นสิ่งแรกที่โปรเจ็กต์ใหม่จำเป็นต้องมี

CREATE SCHEMA DHK_SCHEMA;
SET SCHEMA DHK_SCHEMA;

2) สร้างตารางแบบคอลัมน์ การจัดเก็บข้อมูลแบบคอลัมน์เป็นค่าเริ่มต้นและเป็นสาเหตุที่ทำให้ HANA มีความเร็วในการวิเคราะห์สูง การจัดเก็บข้อมูลแบบแถวจะถูกเลือกใช้เฉพาะกับตารางขนาดเล็กที่มีการเขียนข้อมูลจำนวนมากเท่านั้น

CREATE COLUMN TABLE DHK_SCHEMA.EMPLOYEE (
  EMP_ID    INTEGER NOT NULL,
  EMP_NAME  NVARCHAR(100),
  HIRE_DATE DATE,
  SALARY    DECIMAL(10,2),
  PRIMARY KEY (EMP_ID)
);

3) แทรกและอัปเดตแถว คำสั่ง INSERT จะเพิ่มแถวใหม่ ส่วนคำสั่ง UPDATE จะแก้ไขแถวที่มีอยู่แล้ว ควรใช้คำสั่ง UPDATE ร่วมกับเงื่อนไข WHERE เสมอ เว้นแต่ว่าทุกแถวจำเป็นต้องเปลี่ยนแปลงจริงๆ

INSERT INTO DHK_SCHEMA.EMPLOYEE
  VALUES (1, 'Anita Sharma', '2026-01-15', 55000.00);

UPDATE DHK_SCHEMA.EMPLOYEE
  SET SALARY = 60000.00
  WHERE EMP_ID = 1;

4) สอบถามข้อมูล คำสั่ง SELECT รองรับคำสั่ง WHERE, GROUP BY, HAVING และ ORDER BY ที่คุ้นเคยกันดี

SELECT EMP_NAME, SALARY
  FROM DHK_SCHEMA.EMPLOYEE
  WHERE SALARY > 50000
  ORDER BY SALARY DESC;

5) อนุญาตการเข้าถึงและยืนยันการใช้งาน DCL ควบคุมว่าใครบ้างที่สามารถอ่านตารางได้ และ COMMIT ทำให้การเปลี่ยนแปลงนั้นถาวร

GRANT SELECT ON DHK_SCHEMA.EMPLOYEE TO REPORT_USER;
COMMIT;

รายละเอียดระดับฟิลด์เกี่ยวกับการกำหนดคอลัมน์แต่ละคอลัมน์มีอธิบายไว้ใน SAP ประเภทข้อมูล HANAและสัญลักษณ์ที่ใช้ในส่วน WHERE ใน SAP ผู้ดำเนินการ HANA.

SAP HANA SQL เทียบกับ SQL มาตรฐาน

SAP HANA ปฏิบัติตามมาตรฐาน SQL อย่างเคร่งครัด ซึ่งเป็นเหตุผลว่าทำไมผู้พัฒนาที่มีประสบการณ์จึงสามารถทำงานได้อย่างมีประสิทธิภาพอย่างรวดเร็ว ความแตกต่างที่สำคัญคือการเพิ่มเติมมากกว่าการเปลี่ยนแปลงจากเดิม

พื้นที่ SQL มาตรฐาน SAP ฮาน่า SQL
ที่เก็บของบนโต๊ะ โดยค่าเริ่มต้นจะจัดเรียงตามแถว โดยค่าเริ่มต้นจะเป็นการจัดเก็บข้อมูลแบบคอลัมน์ ส่วนการจัดเก็บข้อมูลแบบแถวเป็นตัวเลือกเสริม
เพิ่มหรืออัปเดตข้อมูลด้วยคำสั่งเดียว ผสาน (MERGE) ในกรณีที่รองรับ UPSERT คือไวยากรณ์ที่ง่ายกว่าแต่ให้ผลลัพธ์เหมือนกัน
ขีดจำกัดชุดผลลัพธ์ เฉพาะถิ่น LIMIT พร้อม OFFSET และ TOP
การขยายขั้นตอน ผู้จำหน่ายเฉพาะ SQLScript พร้อมตัวแปรตารางและการประมวลผลแบบขนาน
ค้นหาข้อความแบบเต็ม โดยปกติจะเป็นส่วนเสริม สร้างขึ้นโดยใช้คอลัมน์ข้อความและข้อความสั้น
ความไวของตัวพิมพ์ แตกต่างกันไป ตัวระบุที่ไม่มีตัวคั่นจะใช้ตัวพิมพ์ใหญ่ ส่วนตัวระบุที่มีตัวคั่นจะคงตัวพิมพ์เล็กไว้

กฎการระบุตัวตนก่อให้เกิดความประหลาดใจมากที่สุด การเขียนชื่อตารางด้วยตัวพิมพ์เล็กโดยไม่ใช้เครื่องหมายคำพูดคู่ จะทำให้ชื่อตารางนั้นกลายเป็นตัวพิมพ์ใหญ่ และเมื่อเลือกชื่อตารางนั้นโดยใช้เครื่องหมายคำพูดคู่ที่เป็นตัวพิมพ์เล็กในภายหลัง ก็จะไม่พบตารางนั้น กฎต่างๆ ได้ถูกกำหนดไว้ใน... ประเภทข้อมูลและตัวระบุ บทช่วยสอน โดยครอบคลุมแพลตฟอร์มที่กว้างขึ้นในบทช่วยสอนนี้ SAP บทช่วยสอน HANA ชุด.

คำถามที่พบบ่อย

SQL จัดการเฉพาะคำสั่งเดียว ในขณะที่ SQLScript เพิ่มตรรกะเชิงกระบวนการ เช่น ตัวแปร ลูป และตัวแปรตาราง ทำให้สามารถทำงานหลายขั้นตอนภายในฐานข้อมูลแทนที่จะทำงานในเลเยอร์แอปพลิเคชัน

ตารางแบบคอลัมน์เหมาะสำหรับเกือบทุกอย่าง เพราะการบีบอัดและการอ่านข้อมูลเชิงวิเคราะห์ทำได้เร็วกว่ามาก ส่วนตารางแบบแถวเหมาะสำหรับตารางข้อมูลขนาดเล็กที่ต้องอ่านข้อมูลทั้งหมดทีละระเบียนทุกครั้งที่เข้าถึง

ใช่แล้ว ด้วยโครงสร้างข้อมูลดังกล่าว โมเดลภาษาจะร่างคำสั่ง SELECT ที่ถูกต้องจากคำขอที่เป็นลายลักษณ์อักษร Revตรวจสอบการเชื่อมต่อและการกรองข้อมูลอย่างระมัดระวัง เนื่องจากคำสั่งค้นหาที่ดูสมเหตุสมผลอาจยังให้คำตอบที่ผิดได้

ใช่แล้ว AI จะอ่านแผนการดำเนินการและแนะนำการเขียนใหม่ ลำดับการรวมข้อมูลที่ดีกว่า หรือตัวกรองที่ขาดหายไป ควรวัดผลลัพธ์ด้วย เพราะคำแนะนำที่ช่วยข้อมูลปริมาณหนึ่ง อาจส่งผลเสียต่อข้อมูลปริมาณอื่นได้

ไม่ ตัวแยกวิเคราะห์จะละทิ้งข้อความแสดงความคิดเห็นก่อนการประมวลผล ดังนั้นข้อความแสดงความคิดเห็นจึงไม่เสียค่าใช้จ่ายใดๆ ในระหว่างการทำงาน นอกจากนี้ยังเป็นวิธีที่ประหยัดที่สุดในการทำให้ข้อความวิเคราะห์ที่ยาวสามารถบำรุงรักษาได้ง่ายขึ้น

สรุปโพสต์นี้ด้วย: