SQL Fundamentals

לערן וועגן DDL, DML און JOINS

די סטראַקטשערד קווערי שפּראַך איז איינער פון די פונדאַמענטאַל בנין בלאַקס פון מאָדערן דייטאַבייס אַרקאַטעקטשער. סקל דיפיינד די מעטהאָדס געניצט צו שאַפֿן און מאַניפּולירן ריליישאַנאַל דאַטאַבייסיז אויף אַלע הויפּט פּלאַטפאָרמס. אין ערשטער בליק, די שפּראַך זאל ויסקומען ינטימידייטינג און קאָמפּליצירט, אָבער עס איז נישט אַלע וואָס שווער.

דעם הקדמה צו די פאַנדאַמענטאַלז הינטער סקל נעמען אַ קורץ קוק בייַ עטלעכע פון ​​די הויפּט קאַמאַנדז געניצט צו מאַכן און מאָדיפיצירן דאַטאַבייסיז.

וועגן סקל

די ריכטיק פּראָונאַנסייישאַן פון סקל איז אַ קריגעריש אַרויסגעבן אין די דאַטאַבאַסע קהל. אין זייַן סקל נאָרמאַל, די אמעריקאנער נאַשאַנאַל סטאַנדאַרדס אינסטיטוט דערקלערט אַז דער באַאַמטער פּראָונאַנסייישאַן איז "עס ריי על." אָבער, פילע דייטאַבייס פּראָפעססיאָנאַלס האָבן גענומען צו די סלאַנג פּראָונאַנסייישאַן "סיקוואַל." די ברירה איז דייַן.

סקל קומט אין פילע פלייווערז. אָראַקלע דאַטאַבייסיז נוצן זייַן פּראַפּרייאַטערי פּל / סקל. מיקראָסאָפט סקל סערווירער מאכט נוצן פון טראַנסאַקט-סקל. אַלע פון ​​די ווערייישאַנז זענען באזירט אויף די אינדוסטריע נאָרמאַל אַנסי סקל. דעם הקדמה ניצט אַנסי-קאָמפּליאַנט סקל קאַמאַנדז וואָס אַרבעט אויף קיין מאָדערן ריליישאַנאַל דייטאַבייס סיסטעם.

דדל און דמל

סקל קאַמאַנדז קענען זיין צעטיילט אין צוויי הויפּט סאַב-שפּראַכן. דער דאַטאַ דעפיניטיאָן שפּראַך (דדל) כּולל די קאַמאַנדז געניצט צו שאַפֿן און צעשטערן דאַטאַבייסיז און דייטאַבייס אַבדזשעקס. נאָך די דייטאַבייס סטרוקטור איז דיפיינד מיט דדל, דייטאַבייס אַדמיניסטראַטאָרס און ניצערס קענען נוצן די דאַטאַ מאַניפּולאַטיאָן שפּראַך (דמל) צו ינסטאַלירן, צוריקקריגן און מאָדיפיצירן די דאַטן קאַנטיינד ין.

דאַטאַ דעפיניטיאָן שפּראַך קאַמאַנדז

די דאַטאַ דעפיניטיאָן שפּראַך איז געניצט צו שאַפֿן און צעשטערן דאַטאַבייסיז און דייטאַבייס אַבדזשעקס. די קאַמאַנדז זענען בפֿרט געניצט דורך דייטאַבייס אַדמיניסטראַטאָרס בעשאַס די סעטאַפּ און באַזייַטיקונג פייזאַז פון אַ דייטאַבייס פּרויעקט. דאָ ס אַ קוק בייַ די סטרוקטור און באַניץ פון פיר דדל קאַמאַנדז:

CREATE. ינסטאָלינג אַ דייטאַבייס פאַרוואַלטונג סיסטעם אויף אַ קאָמפּיוטער אַלאַוז איר צו שאַפֿן און פירן פילע פרייַ דאַטאַבייסיז. פֿאַר בייַשפּיל, איר זאל וועלן צו טייַנען אַ דייטאַבייס פון קונה קאָנטאַקטן פֿאַר דיין פארקויפונג אָפּטיילונג און אַ פּערסאַנעל דייטאַבייס פֿאַר דיין הר דעפּאַרטמענט. די קרעאַטע באַפֿעל איז גענוצט צו פאַרלייגן יעדער פון די דאַטאַבייסיז אויף דיין פּלאַטפאָרמע. למשל, דער באַפֿעל:

CREATE DATABASE עמפּלוייז

קריייץ אַ ליידיק דאַטאַבאַסע געהייסן "עמפּלוייז" אויף דיין דבמס. נאָך שאפן די דאַטאַבאַסע, דער ווייַטער שריט איז צו שאַפֿן טישן וואָס אַנטהאַלטן דאַטן. אן אנדער וואַריאַנט פון די קרעאַטע באַפֿעל קענען זיין געניצט פֿאַר דעם צוועק. דער באַפֿעל:

CREATE TABLE personal_info (first_name char (20) ניט נאַל, last_name char (20) ניט נאַל, employee_id int not null)

שטעלן אַ טיש טייטאַלד "פּערזענלעך_פינק" אין די קראַנט דאַטאַבאַסע. אין דעם בייַשפּיל, די טיש כּולל דרייַ אַטריביוץ: ערשטער_נאַמע, לעצטע_נאַמע און אָנגעשטעלטער_יד מיט עטלעכע נאָך אינפֿאָרמאַציע.

USE. די וסע באַפֿעל אַלאַוז איר צו ספּעציפיצירן די דאַטאַבאַסע איר ווילן צו אַרבעטן מיט דיין דבמס. פֿאַר בייַשפּיל, אויב איר זענען איצט ארבעטן אין די פארקויפונג דאַטאַבאַסע און ווילן צו אַרויסגעבן עטלעכע קאַמאַנדז וואָס וועט ווירקן דער אָנגעשטעלטער דאַטאַבאַסע, preface זיי מיט די ווייַטערדיק סקל באַפֿעלן:

USE employees

עס איז וויכטיק צו שטענדיק זיין באַוווסטזיניק פון די דאַטאַבאַסע וואָס איר אַרבעטן אין אַרויסגעבן סקל קאַמאַנדז אַז מאַניפּולירן דאַטן.

ALTER. אַמאָל איר האָבן באשאפן אַ טיש ין אַ דאַטאַבאַסע, איר זאל וועלן צו מאָדיפיצירן זייַן דעפֿיניציע. דער ALTER באַפֿעל אַלאַוז איר צו מאַכן ענדערונגען צו די טיש סטרוקטור אָן דיליטינג און רעקריייטינג עס. נעמען אַ קוק בייַ די פאלגענדע באַפֿעל:

ALTER TABLE personal_info צוגעבן געצאָלט געלט נאַל

דעם בייַשפּיל מוסיף אַ נייַ אַטריביוט צו די פערזענליכע טיש-אַן אָנגעשטעלטער 'ס געצאָלט. די "געלט" אַרגומענט באשלאסן אַז אַן אָנגעשטעלטער 'ס געצאָלט איז סטאָרד מיט אַ דאָללאַרס און סענס פֿאָרמאַט. סוף, דער "נאַל" קיווערד דערציילט די דאַטאַבאַסע אַז עס איז גוט פֿאַר דעם פעלד צו טאָן קיין ווערט פֿאַר קיין געגעבן אָנגעשטעלטער.

דראָפּ. די לעצט באַפֿעל פון די דאַטאַ דעפיניטיאָן שפּראַך, דראָפּ, אַלאַוז אונדז צו באַזייַטיקן גאַנץ דייטאַבייס אַבדזשעקס פון אונדזער דבמס. פֿאַר בייַשפּיל, אויב מיר ווילן צו פּערמאַנאַנטלי באַזייַטיקן די טיש פּערזענלעך_פינק מיר באשאפן ניצן די ווייַטערדיק באַפֿעל:

DROP TABLE personal_info

סימילאַרלי, די באַפֿעל אונטן וואָלט זיין געניצט צו באַזייַטיקן די גאנצע אָנגעשטעלטער דאַטאַבאַסע:

דראָפּ דאַטאַבאַסע עמפּלוייז

ניצן דעם באַפֿעל מיט זאָרג. דער דראָפּ באַפֿעל רימוווז גאַנץ דאַטן סטראַקטשערז פון דיין דאַטאַבאַסע. אויב איר ווילן צו באַזייַטיקן יחיד רעקאָרדס, נוצן די דיליט באַפֿעל פון די דאַטאַ מאַניפּולאַטיאָן שפּראַך.

דאַטאַ מאַניפּולאַטיאָן שפּראַך קאַמאַנדז

די דאַטאַ מאַניפּולאַטיאָן שפּראַך (דמל) איז געניצט צו צוריקקריגן, אַרייַנלייגן און מאָדיפיצירן דייטאַבייס אינפֿאָרמאַציע. די קאַמאַנדז זענען געניצט דורך אַלע דייטאַבייס ניצערס בעשאַס די רוטין אָפּעראַציע פון ​​די דאַטאַבאַסע.

INSERT. די ינסערט באַפֿעלן אין סקל איז געניצט צו לייגן רעקאָרדס צו אַ יגזיסטינג טיש. אומגעקערט צו די פּערזענלעך אינפֿאָרמאַציע וועגן דעם פריערדיקן אָפּטיילונג, ימאַדזשאַן אַז אונדזער הר אָפּטיילונג דאַרף צו לייגן אַ נייַ אָנגעשטעלטער צו זייַן דאַטאַבאַסע. איר קען נוצן אַ באַפֿעל ענלעך צו דעם:

INSERT INTO personal_info וואַלועס ('באַרט', 'סימפּסאָן', 12345, $ 45,000)

באַמערקונג אַז עס זענען פיר ווארטן פֿאַר די רעקאָרד. די קאָראַספּאַנדינג צו די טיש אַטראַביוץ אין די סדר זיי זענען דיפיינד: ערשטער_נאַמע, לעצט_נאַמע, אָנגעשטעלטער_יד און געצאָלט.

SELECT. די סעלעקציע באַפֿעלן איז די מערסט קאַמאַנלי געניצט באַפֿעל אין סקל. עס אַלאַוז דייטאַבייס ניצערס צו באַקומען די ספּעציפיש אינפֿאָרמאַציע זיי פאַרלאַנגן פון אַ אַפּעריישאַנאַל דאַטאַבאַסע. נעמען אַ קוק בייַ אַ ביסל ביישפילן, ווידער ניצן די טיש פּערזענלעך_פינק פון דער אָנגעשטעלטער דאַטאַבאַסע.

דער באַפֿעל געוויזן אונטן ריטריווז אַלע די אינפֿאָרמאַציע קאַנטיינד אין די פּערזענלעך טיש. באַמערקונג אַז די אַסטעריסק איז געניצט ווי אַ ווילדקאַרד אין סקל. דעם ממש מיטל "אויסקלייַבן אַלץ פון די פערזענלעכע טיש."

אויסקלייַבן * פון personal_info

אַלטערנאַטיוועלי, ניצערס זאל וועלן צו באַגרענעצן די אַטראַביוץ וואָס זענען ריטריווד פון די דאַטאַבאַסע. פֿאַר בייַשפּיל, די מענטשלעך רעסאָורסעס אָפּטיילונג דאַרפן אַ רשימה פון די לעצטע נעמען פון אַלע עמפּלוייז אין די פירמע. די פאלגענדע סקל באַפֿעל וועט באַקומען בלויז אַז אינפֿאָרמאַציע:

סעלעקט last_name פֿון personal_info

די WHERE קלאָזונג קענען זיין געניצט צו באַגרענעצן די רעקאָרדס אַז זענען ריטריווד צו די וואָס טרעפן ספּעסאַפייד קרייטיריאַ. די סעאָ זאל זיין אינטערעסירט אין ריוויוינג די פּערסאַנעל רעקאָרדס פון אַלע העכסט באַצאָלט עמפּלוייז. די פאלגענדע באַפֿעל ריטריווז אַלע פון ​​די דאַטן כּולל ין פּערזענלעך_פינק פֿאַר רעקאָרדס וואָס האָבן אַ געצאָלט ווערט גרעסער ווי $ 50,000:

סעלעקטירן * פֿון פערזענליכע אינפֿאָרמאַציע WHERE געצאָלט> $ 50000

UPDATE. דער UPDATE באַפֿעל קענען זיין געניצט צו מאָדיפיצירן די אינפֿאָרמאַציע קאַנטיינד ין אַ טיש, אָדער אין פאַרנעם אָדער ינדיווידזשואַלי. יבערנעמען די פירמע גיט אַלע עמפּלוייז אַ 3 פּראָצענט פּרייַז-פון-לעבעדיק פאַרגרעסערן אין זייער געצאָלט אַניואַלי. דער ווייַטערדיק סקל באַפֿעל קען זיין געוויינט צו געשווינד צולייגן דעם צו אַלע עמפּלוייז סטאָרד אין די דאַטאַבאַסע:

UPDATE personal_info שטעלן געצאָלט = געצאָלט * 1.03

ווען די נייַע אָנגעשטעלטער באַרט סימפּסאָן באַווייזן פאָרשטעלונג אויבן און ווייַטער פון דער רוף פון פליכט, פאַרוואַלטונג וויל צו דערקענען זייַן סטעלער אַקאַמפּלישמאַנץ מיט אַ $ 5,000 כאַפּן. די WHERE קלאָזונג קען מען גענוצט צו איין בארט פאר דעם הייבן:

UPDATE personal_info SET salary = salary + $ 5000 WHERE employee_id = 12345

DELETE. צום סוף, לאָזן אַ קוק בייַ די באַפֿעל אַוועק. איר וועט געפֿינען אַז דער סינטאַקס פון דעם באַפֿעל איז ענלעך צו די אנדערע דלל קאַמאַנדז. צום באַדויערן, אונדזער לעצט פֿירמע פאַרדינסט מעלדונג האט נישט גאַנץ טרעפן עקספּעקטיישאַנז און נעבעך באַרט איז געלייגט אַוועק. די באַפֿעל באַזייַטיקונג מיט אַ WHERE קלאָזונג קענען זיין געניצט צו באַזייַטיקן זייַן רעקאָרד פון די פּערזענלעך טיש:

ויסמעקן פֿון personal_info WHERE employee_id = 12345

JOINS

איצט אַז איר האָט געלערנט די באַסיקס פון סקל, עס ס צייַט צו מאַך אויף צו איינער פון די מערסט שטאַרקע קאַנסעפּס די שפּראַך האט צו פאָרשלאָגן-דער פאַרבינדן דערקלערונג. א פאַרבינדן סטאַטעמענט אַלאַוז איר צו פאַרבינדן דאַטן אין קייפל טישן צו יפישאַנטלי פּראָצעס גרויס קוואַנטאַטיז פון דאַטן. די סטייטמאַנץ זענען ווו די אמת מאַכט פון אַ דאַטאַבאַסע וויל.

צו ויספאָרשן די נוצן פון אַ יקערדיק פאַרבינדן אָפּעראַציע צו פאַרבינדן דאַטן פון צוויי טישן, פאָרזעצן מיט דעם בייַשפּיל ניצן די PERSONAL_INFO טיש און לייגן אַן נאָך טיש צו די מישן. אָננעמען איר האָבן אַ טיש גערופן דיססיפּלינאַרי_אַקציע וואָס איז געווען באשאפן מיט די פאלגענדע סטאַטעמענט:

CREATE TABLE disciplinary_action (action_id int ניט null, employee_id int ניט נאַל, באַמערקונגען char (500))

דעם טיש כּולל די רעזולטאַטן פון דיסאַפּלאַנערי אַקשאַנז אויף פירמע עמפּלוייז. איר וועט באַמערקן אַז עס טוט נישט אַנטהאַלטן קיין אינפֿאָרמאַציע וועגן דער אָנגעשטעלטער אַנדערער ווי די אָנגעשטעלטער נומער. עס איז גרינג צו ימאַדזשאַן פילע סינעריאָוז ווו איר זאל וועלן צו פאַרבינדן אינפֿאָרמאַציע פון ​​די דיססיפּלינאַרי_אַקציע און PERSONAL_INFO טישן.

אָננעמען איר ווע געווארן טאַסקט מיט שאפן אַ באַריכט אַז ליסטעד די דיסאַפּלאַנערי אַקשאַנז גענומען קעגן אַלע עמפּלוייז מיט אַ געצאָלט גרעסער ווי $ 40,000. די נוצן פון אַ פאַרבינדן אָפּעראַציע, אין דעם פאַל, איז גלייַך. מיר קענען באַקומען דעם אינפֿאָרמאַציע ניצן די פאלגענדע באַפֿעל:

אויסקלייַבן personal_info.first_name, personal_info.last_name, disciplinary_action.comments פֿון personal_info, disiplinary_action WHERE personal_info.employee_id = disiplinary_action.employee_id AND personal_info.salary> 40000

די קאָד באשטימט די צוויי טישן וואָס מיר ווילן צו פאַרבינדן אין די FROM קלאָזעט און דעמאָלט כולל אַ דערקלערונג אין די WHERE קלאָזונג צו באַגרענעצן די רעזולטאַטן צו רעקאָרדס וואָס האט ריכטן אָנגעשטעלטער אָנפירונג און באגעגנט אונדזער קרייטיריאַ פון אַ געצאָלט גרעסער ווי $ 40,000.