פקודות Shell של SQL

במאמר הזה מפורטות פקודות SQL shell שנתמכות ב-Spanner Omni. ‫Spanner Omni ו-Spanner תומכים באותן פקודות של מעטפת SQL.

תחביר הפקודה תיאור
SHOW DATABASES; הצגת רשימה של מסדי נתונים.
USE database_name [ROLE role_name]; החלפת מסד נתונים. התפקיד שאתם מגדירים משמש לבקרת גישה פרטנית.
CREATE DATABASE database_name; יצירת מסד נתונים.
DROP DATABASE database_name; מחיקה של מסד נתונים.
SHOW TABLES [schema]; הצגת רשימת הטבלאות. אם לא מספקים סכימה, Spanner משתמש בסכימת ברירת המחדל.
SHOW CREATE TABLE table_name; הצגת סכימת הטבלה.
SHOW COLUMNS FROM table_name; הצגת העמודות.
SHOW INDEX FROM table_name; הצגת אינדקסים.
CREATE TABLE ...; יצירת טבלה.
ALTER TABLE ...; שינוי סכימת הטבלה.
DROP TABLE ...; מחיקת הטבלה.
TRUNCATE TABLE table_name; חיתוך הטבלה. מחיקת שורות בלבד. הפקודה הזו לא אטומיות כי היא מבוצעת כפקודת DML מחולקת.
CREATE INDEX ...; יצירת אינדקס.
DROP INDEX ...; מחיקת האינדקס.
CREATE ROLE ...; יצירת תפקיד. מידע נוסף מופיע במאמר סקירה כללית על IAM ב-Spanner.
DROP ROLE ...; מחיקת התפקיד.
GRANT ...; נותנים הרשאה לתפקיד.
REVOKE ...; ביטול הרשאה מתפקיד.
SELECT ...; מריצים שאילתה.
{ INSERT|UPDATE|DELETE } ...; להריץ פקודת DML.
PARTITIONED { UPDATE|DELETE } ...; מריצים פקודת DML מחולקת למחיצות. הפקודה הזו לא אטומית.
EXPLAIN SELECT ...; הצגת תוכנית ביצוע של שאילתה. מידע נוסף זמין במאמר בנושא תוכניות להפעלת שאילתות.
EXPLAIN {INSERT|UPDATE|DELETE} ...; הצגת תוכנית הביצוע של DML.
EXPLAIN ANALYZE SELECT ...; הצגת תוכנית להפעלת שאילתות עם נתונים סטטיסטיים של הכלי לאופטימיזציה. מידע נוסף זמין במאמר בנושא חבילות נתונים סטטיסטיים של כלי האופטימיזציה.
EXPLAIN ANALYZE {INSERT|UPDATE|DELETE} ...; הצגת תוכנית הביצוע של DML עם נתונים סטטיסטיים של הכלי לאופטימיזציה. מידע נוסף זמין במאמר בנושא חבילות נתונים סטטיסטיים של כלי האופטימיזציה.
DESCRIBE SELECT ...; הצגת הצורה של תוצאת השאילתה.
DESCRIBE {INSERT|UPDATE|DELETE} ... THEN RETURN ...; הצגת צורת התוצאה של DML.
ANALYZE; התחלת בנייה של חבילת נתונים סטטיסטיים חדשה של אופטימיזטור השאילתות.
START BATCH DDL; מתחילים קבוצת DDL.
RUN BATCH; מריצים פקודות באצווה.
ABORT BATCH; ביטול פקודות להעלאה בכמות גדולה.
BEGIN [RW] [ISOLATION LEVEL {SERIALIZABLE|REPEATABLE READ}] [PRIORITY {HIGH|MEDIUM|LOW}] [TAG tag_name]; מתחילים טרנזקציה עם הרשאת קריאה וכתיבה. מידע נוסף זמין במאמר פקודות של עסקאות.
COMMIT; שמירת עסקה עם הרשאות קריאה וכתיבה.
ROLLBACK; ביטול (undo) של עסקת קריאה-כתיבה.
BEGIN RO [{seconds|RFC 3339-formatted_time}] [PRIORITY {HIGH|MEDIUM|LOW}] [TAG tag_name]; מתחילים טרנזקציה עם הרשאת קריאה בלבד. ‫seconds ו-RFC 3339-formatted_time משמשים לקריאות לא עדכניות. מידע נוסף זמין במאמר פקודות של עסקאות.
CLOSE; סיום של עסקה עם הרשאת קריאה בלבד.
EXIT; יוצאים מ-Spanner Omni.

פקודות BATCH

‫Spanner Omni מאפשר לבצע פעולות DDL במצב אצווה, שבו כמה הצהרות DDL מקובצות לפעולה אחת, וכך שינויים בסכימה מתבצעים מהר יותר. ‫Spanner Omni תומך בפקודות BATCH הבאות:

START BATCH DDL;

הפקודה הזו מפעילה קבוצת DDL. כל הצהרות ה-DDL הבאות (לדוגמה, CREATE TABLE, ‏ ALTER TABLE, ‏ DROP INDEX) שמופעלות בסשן הזה נשארות במצב 'בהמתנה' ולא מוחלות על מסד הנתונים באופן מיידי.

RUN BATCH;

אחרי שמריצים את הפקודה START BATCH DDL ואת הצהרות ה-DDL הבאות, משתמשים בפקודה RUN BATCH כדי לשלוח את כל פעולות ה-DDL שממתינות כבקשה אחת ל-Spanner. הפקודה הזו מצמצמת את התקורה שמשויכת להצהרות DDL נפרדות, וכך מובילה לשינויים מהירים יותר בסכימה.

ABORT BATCH;

אם תחליטו לא להחיל את שינויי ה-DDL שממתינים לאישור, תצטרכו להשתמש בפקודה ABORT BATCH. הפקודה הזו מבטלת את כל הצהרות ה-DDL שנאספו מאז שהוצאה הפקודה START BATCH DDL, ומבצעת למעשה ביטול של הפעולות שבוצעו באצווה, כך שסכימת מסד הנתונים לא משתנה.

פקודות של עסקאות

‫Spanner Omni תומך בפקודות SQL הבאות של טרנזקציות:

BEGIN [TRANSACTION] [RO] [seconds|RFC 3339-formatted_time ] [ISOLATION LEVEL {SERIALIZABLE|REPEATABLE READ}] [PRIORITY {HIGH|MEDIUM|LOW}] [TAG tag_name];

מתחילים עסקה. אפשר להגדיר את האפשרויות הבאות:

  • סוג העסקה: התחלת עסקה לקריאה ולכתיבה (לא נדרש פרמטר) או לקריאה בלבד (RO).
  • זמן קריאה בעבר: הגדרת הזמן, בשניות או בפורמט RFC 3339, לקריאת נתונים מחותמת זמן ספציפית.
  • רמת בידוד: הגדרה של רמת הבידוד של טרנזקציות קריאה-כתיבה. כברירת מחדל, נעשה שימוש בבידוד שניתן לסדר. מידע נוסף זמין במאמר סקירה כללית של רמות הבידוד.
  • עדיפות: הגדרת העדיפות של הבקשה לעסקה. העדיפות הבינונית מוגדרת כברירת מחדל.
  • תג: מגדירים תגי עסקאות באמצעות הפקודה BEGIN.

    • בעסקה עם הרשאת קריאה וכתיבה, מוסיפים תג עם BEGIN TAG tag. התג Spanner Omni מוסיף את התג כתג טרנזקציה. התג משמש גם כתג בקשה בתוך העסקה.
    • בעסקה לקריאה בלבד, מוסיפים תג עם BEGIN RO TAG tag. מכיוון שעסקאות לקריאה בלבד לא תומכות בתגי עסקאות, Spanner מוסיף את התג כתג בקשה.

COMMIT;

לסיים את העסקה ולבצע את כל השינויים באופן קבוע בעסקה עם הרשאת קריאה וכתיבה.

CLOSE;

סגירת טרנזקציה לקריאה בלבד.

ROLLBACK;

ביטול (undo) של עסקת קריאה-כתיבה.