ייצוא SQL (.sql)
ISO/IEC תקןStructured Query Language Script (SQL) הוא פורמט מסד הנתונים היחסי האוניברסלי המכיל הצהרות DDL הצהרתיות לבניית טבלאות מסד נתונים והצהרות DML INSERT לאכלוס נתונים.
המר SQLITE ל-SQL
ממיר חינמי מ-SQLITE ל-SQL פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.
בדיקה ומטא-נתונים
מערכות הפעלה ומנתחי קבצים מזהים קבצי SQL על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת כותרת ברמת הבייט (Magic Bytes)
מערכות הפעלה ומנתחי קבצים מזהים קבצי SQL על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת HEX (היסט 0):
אין חתימה קבועהייצוג ASCII: אין חתימה קבועה
תקינה: ISO/IEC 9075:2023 / ANSI SQL Standard
מפרט טכני
| מבנה המכולה | סקריפט טקסט פשוט ביוניקוד, המכיל פקודות בשפות DDL להגדרת נתונים ו-DML לשינוי נתונים |
| דחיסה | טקסט פשוט לא דחוס (נדחס לעיתים קרובות כקובץ .sql.gz או .sql.zst) |
| סדר בתים (Endianness) | זרם טקסט UTF-8 / Unicode |
| מרחבי צבע | לא רלוונטי (סקריפט מסד נתונים) |
| ערוצים ומבנה | הגדרות של סכמות יחסיות (טבלאות, תצוגות, אינדקסים ומפתחות זרים) ושורות נתונים מסוג INSERT |
| ממדים מרביים | אורך טקסט ללא מגבלה קבועה (תומך בייצואי מסדי נתונים בגודל כמה טרה-בתים) |
| שקיפות | אין |
| הזרמה ופרוגרסיביות | ביצוע טרנזקציות בהזרמה, פקודה אחר פקודה |
מטריצת השוואה טכנית: SQL מול מתחרים
| תכונה טכנית | SQL (נוכחי) | CSV | JSON | SQLITE |
|---|---|---|---|---|
| שימור סכימה | סכימה מלאה (טבלאות, טיפוסים, מפתחות זרים) | שמות עמודות כותרת בלבד | מבנה מסמך מזהה את עצמו | קובץ מסד נתונים בינארי שלם |
| מודל ביצוע | סקריפט DDL/DML בר ביצוע | נתוני שורה-עמודה פסיביים | עץ מסמכים פסיבי | שאילתת עץ B בינארית ישירה |
| תקינה | תקן ISO/IEC 9075 | RFC 4180 | RFC 8259 | פורמט קובץ פתוח של SQLite |
| קשרי נתונים | אילוצי מפתח זר מלאים | טבלאי שטוח (ללא קשרים) | אובייקטי אב-בן מקוננים | אילוצים יחסיים מלאים |
מצבי השחתה נפוצים ומדריך שחזור הקסדצימלי (Hex)
ייבוא מסד הנתונים נכשל עם 'ERROR: syntax error at or near...'.
גורם שורש: אי-התאמה של ניב SQL (למשל ייבוא של dump מ-MySQL המשתמש בגרשיים הפוכים לתוך PostgreSQL) או מרכאות בודדות שלא עברו בריחה.
שחזור: המר וטהר את תחביר הניב באמצעות File2File.app Database Transpiler.
ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)
הפעלת סקריפטים של SQL שאינם מהימנים עלולה לגרום להזרקת SQL קטסטרופלית, כתיבת קבצים שרירותית, או הסלמת הרשאות ניהוליות.
ווקטורי תקיפה ידועים
- הזרקת SQL (SQLi) המפעילה פקודות ניהוליות לא מכוונות (למשל DROP TABLE, GRANT ALL).
- קריאה/כתיבה שרירותית של קובצי שרת באמצעות 'COPY ... FROM PROGRAM' או 'LOAD DATA INFILE'.
- מניעת שירות באמצעות ביטויי טבלה נפוצים רקורסיביים שאינם באינדקס (CTEs).
שיטות מומלצות להגנה: לעולם אל תריץ סקריפטי SQL לא מהימנים ישירות בשרתי מסדי נתונים בסביבת ייצור; בדוק וטהר שאילתות בארגזי חול מבודדים.
היסטוריה ואבני דרך
יתרונות מרכזיים
- התקן העולמי הבלתי מעורער לאחסון נתונים ארגוניים: תואם ל-PostgreSQL, MySQL, SQLite, Oracle ו-SQL Server.
- שחזור מלא של המבנה היחסי: טבלאות, מפתחות ראשיים, מפתחות זרים, אילוצים ואינדקסים לצד הנתונים.
- ביצוע עסקאות (טראנזקציות): ניתן להריץ הצהרות בתוך עסקאות (BEGIN...COMMIT) כדי להבטיח שחזור מסד נתונים אטומי.
מגבלות טכניות וחסרונות
- חוסר תאימות בין ניבים: הבדלי תחביר עדינים (למשל AUTO_INCREMENT לעומת SERIAL לעומת AUTOINCREMENT) דורשים המרה בין מנועי מסדי נתונים.
- עומס טקסט עצום: הצהרות SQL INSERT פשוטות לוקחות נפח גדול משמעותית מאחסון מסד נתונים בינארי.
- זמני ייבוא איטיים על גיבובי מסדי נתונים ענקיים מרובי גיגה-בייט כאשר בנייה מחדש של אינדקסים אינה מושבתת.
עובדות טכניות מעניינות
- SQL נקראה במקור 'SEQUEL' (Structured English Query Language), אך שמה קוצר ל-SQL עקב סכסוך סימנים מסחריים עם חברת המטוסים Hawker Siddeley.
- התקן הרשמי של ISO מבטא זאת כאותיות נפרדות 'S-Q-L', אך מיליוני מפתחים מבטאים זאת באופן לא רשמי כ-'sequel'.
- SQLite, הפועל על תחבירת SQL, מוערך להיות מותקן על למעלה מטריליון מכשירים ברחבי העולם.
שאלות טכניות נפוצות
מה זה קובץ .sql?
קובץ .sql הוא סקריפט טקסט פשוט המכיל פקודות SQL היוצרות טבלאות, קובעות קשרים ומכניסות שורות נתונים למסד נתונים רלציוני.
האם אני יכול להמיר קובצי גיבוי (dump) של SQL ל-CSV או JSON?
כן. File2File.app יכול לנתח קובצי גיבוי של מסד נתונים מסוג .sql ולייצא את הטבלאות ישירות לגיליונות אלקטרוניים נקיים מסוג CSV או למסמכי JSON מובנים.
למה קובץ ה-.sql של MySQL שלי לא עובד ב-PostgreSQL?
למערכות מסדי נתונים שונות יש הבדלי ניב קנייניים (כגון סוגי נתונים ובריחת מרכאות). עליך להמיר תחביר ייחודי לניב בעת מעבר בין מנועי מסדי נתונים.
זוגות המרה קשורים ל-SQL
המרת קובץ מסד נתונים מסוג SQLite לסקריפט טקסט של SQL Dump מתמירה מסד נתונים בינארי לפקודות טקסט קריאות לצורך הגירה קלה של מסדי נתונים וייבוא לשרתים.
המרת סקריפט טקסטואלי של גיבוי SQL לפורמט JSON הופכת טבלאות מסד נתונים יחסי נוקשות לאובייקטים גמישים ומקוננים עבור יישומי אינטרנט מודרניים.
המרת סקריפטים של גיבוי מסדי נתונים רלציוניים לגיליונות נתונים שטוחים לצורך ניתוח נתונים והפקת דוחות בקלות.
המר גיבוי .bak נתמך של SQL Server לסקריפט SQL טקסטואלי לצורכי בדיקה או לתהליכי עבודה של העברה.
המרת סקריפט SQL לא מכווץ בטקסט פשוט לקובץ גיבוי מותאם לפורמט המקורי של מסד הנתונים מקטינה את נפח האחסון ומאיצה את זמני השחזור בשרת.