Il-ħolqien ta 'Databases u Tabelli fl-SQL

Ħolqien ta 'Database

Inti lest biex tibda toħloq databases u tabelli bil- Lingwa ta 'Mistoqsija Strutturata ? F'dan l-artikolu, aħna tesplora l- proċess tal-ħolqien ta 'tabelli bl-idejn mal- KOPERTURA DATABASE CREATE TABLE u CREATE TABLE. Jekk int ġdid fl-SQL, tista 'tixtieq tirrevedi l-ewwel artikolu bażiku tagħna.

Rekwiżiti Kummerċjali

Qabel ma joqogħdu bilqegħda fuq it-tastiera, għandna niżguraw li jkollna fehim sod tal-ħtiġijiet tal-klijent. X'inhu l-aħjar mod biex tinkiseb din l-idea? Nitkellmu mal-klijent, naturalment! Wara li ltaqa 'mad-Direttur tar-Riżorsi Umani ta' XYZ, aħna tgħallimna li huma kumpanija ta 'bejgħ widget u huma primarjament interessati li jsegwu informazzjoni dwar il-persunal tal-bejgħ tagħhom.

XYZ Corporation taqsam il-forza tal-bejgħ tagħhom fir-reġjuni tal-Lvant u tal-Punent, li kull wieħed minnhom huwa maqsum f'ħafna territorji koperti minn reps individwali tal-bejgħ. Id-dipartiment tal-HR jixtieq isegwi t-territorju kopert minn kull impjegat kif ukoll l-informazzjoni tas-salarju u l-istruttura superviżorja ta 'kull impjegat. Biex tissodisfa dawn ir-rekwiżiti, iddiżajna database li tikkonsisti fi tliet tabelli, murija fid- dijagramma Entità-Relazzjoni f'din il-paġna.

L-għażla ta 'Pjattaforma ta' Database

Aħna ddeċidejna li jużaw sistema ta 'ġestjoni ta' database (jew DBMS) li hija mibnija fuq il-Lingwa ta 'Mistoqsija Strutturata (SQL). Għalhekk, il-kmandi kollha tad-database u tal-ħolqien tal-mejda għandhom jinkitbu b'Anti SQL standard f'moħħu.

Bħala benefiċċju miżjud, l-użu ta 'SQL konformi mal-ANSI se jiżgura li dawn il-kmandi jaħdmu fuq kwalunkwe DBMS li tappoġġja l -istandard SQL , inkluż Oracle u Microsoft SQL Server. Jekk għadek ma għażiltx pjattaforma għad-database tiegħek, l- Għażliet tas-Softwer tad-Database ta ' l-artikolu jgħaddih mill-proċess ta' l-għażla.

Ħolqien ta 'Database

L-ewwel pass tagħna huwa li tinħoloq id-database stess. Ħafna sistemi ta 'ġestjoni ta' database joffru serje ta 'għażliet biex jippersonalizzaw parametri tad-database f'dan il-pass, iżda d-database tagħna jippermetti biss il-ħolqien sempliċi ta' database. Bħal kull manwal tagħna, tista 'tixtieq tikkonsulta d-dokumentazzjoni għad-DBMS tiegħek biex tiddetermina jekk xi parametri avvanzati appoġġjati mis-sistema speċifika tiegħek jissodisfawx il-ħtiġijiet tiegħek. Ejjew nużaw il-kmand CREATE DATABASE biex inwaqqfu d-database tagħna:

JINħOLOQ persunal tad-DATABASE

Ħu nota speċjali tal-kapitalizzazzjoni użata fl-eżempju ta 'hawn fuq. Hija prattika komuni fost il-programmaturi SQL li jużaw l-ittri kapitali kollha għal kliem prinċipali SQL bħal "CREATE" u "DATABASE" filwaqt li jużaw l-ittri żgħar għal ismijiet definiti mill-utent bħall-isem tad-database tal-"persunal". Dawn il-konvenzjonijiet jipprovdu għal leġibbiltà faċli.

Kompli qari ta 'dan it-tutorja billi nwaqqfu tabelli għad-database tagħna.

Tagħlim Aktar

Jekk tixtieq titgħallem aktar dwar il -Lingwa ta 'Mistoqsija Strutturata , aqra l- Introduzzjoni għall-SQL jew tiffirma għall-kors tagħna b'xejn tal-e-mail ta' Tagħlim SQL.

Issa li aħna ddisinja u ħoloq id-database tagħna, aħna lesti biex jibdew il-ħolqien tat-tliet tabelli użati biex taħżen id-dejta tal-persunal ta 'XYZ Corporation. Se nkunu qed nimplimentaw it-tabelli li ddisinjaw fil-porzjon ta 'qabel ta' dan it-tutorial.

Ħolqien ta 'l-Ewwel Tabella tagħna

L-ewwel tabella tagħna tikkonsisti fid-dejta personali għal kull impjegat tal-kumpanija tagħna. Għandna bżonn ninkludu l-isem, is-salarju, l-ID u l-maniġer ta 'kull impjegat. Hija prattika tajba tad-disinn biex tissepara l-aħħar u l-ewwel ismijiet f'oqsma separati biex tissimplifika t-tfittxija u l-issortjar tad-dejta fil-futur. Barra minn hekk, aħna nżommu rekord tal-maniġer ta 'kull impjegat billi niddaħħal referenza għall-ID tal-impjegat tal-maniġer f'kull rekord tal-impjegat. Ejja nagħtu ħarsa lejn it-tabella tal-impjegat mixtieqa.

L-attribut ReportsTo jaħżen id-ID tal-maniġer għal kull impjegat. Mir-rekords tal-kampjuni murija, nistgħu niddeterminaw li Sue Scampi huwa l-maniġer tat-tnejn Tom Kendall u John Smith. Madankollu, m'hemm l-ebda informazzjoni fid-database dwar l-amministratur ta 'Sue, kif indikat mill-entrata NULL fir-ringiela tagħha.

Issa nistgħu nużaw SQL biex toħloq it-tabella fid-database tal-persunal tagħna. Qabel ma nagħmlu dan, ejja niżguraw li ninsabu fid-database korretta billi nibgħatu kmand tal-UŻU:

Persunal tal-UŻU;

Alternattivament, il- "persunal tad-DATABASE"; kmand iwettaq l-istess funzjoni. Issa nistgħu nħarsu lejn il-kmand SQL użat biex tinħoloq il-mejda ta 'l-impjegati tagħna:

ĦOLQIEN TABELLA impjegati (impjegat INTEGER NOT NULL, isem VARCHAR (25) MHUX NULL, isem VARCHAR (25) MHUX NULL, rapportsto INTEGER NULL);

Bħal fl-eżempju ta 'hawn fuq, innota li l-konvenzjoni ta' programmazzjoni tiddetta li nużaw l-ittri kapitali kollha għal kliem prinċipali SQL u ittri żgħar għal kolonni u tabelli bl-utent. Il-kmand ta 'hawn fuq jista' jidher konfuż għall-ewwel, imma fil-fatt hemm struttura sempliċi warajha. Hawn ħarsa ġeneralizzata li tista 'tfakkar affarijiet ftit:

CREATE TABLE table_name (attribute_name għażliet tat-tip tad-data, ..., attribute_name għażliet tad-dejta tat-tipa);

Attributi u Tipi ta 'Dejta

Fl-eżempju preċedenti, l-isem tal-mejda huwa impjegat u aħna ninkludu erba 'attributi: employeeid, lastname, firstname, u reportsto. Id-datatype jindika t-tip ta 'informazzjoni li nixtiequ naħżnu f'kull qasam. L-ID tal-impjegat huwa numru sħiħ sempliċi, għalhekk aħna ser nużaw id-datier tal-INTEGER kemm għall-qasam impjegid kif ukoll għall-qasam tar-rapport. L-ismijiet tal-impjegat se jkunu kordi ta 'karattri ta' tul varjabbli u ma nistennewx li xi impjegat ikollu l-ewwel jew l-aħħar isem aktar minn 25 karattru. Għalhekk, aħna ser nużaw it-tip VARCHAR (25) għal dawn l-oqsma.

Valuri NULL

Nistgħu nispeċifikaw ukoll NULL jew MHUX NULL fil-qasam tal-għażliet tad-dikjarazzjoni CREATE. Dan sempliċement jgħidlek lid-database jekk il-valuri NULL (jew vojta) humiex permessi għal dak l-attribut meta żżid ringieli mad-database. Fl-eżempju tagħna, id-dipartiment tar-RGħ jeħtieġ li l-ID tal-impjegat u l-isem komplet jiġu maħżuna għal kull impjegat. Madankollu, mhux kull impjegat għandu maniġer - l-CEO jirrapporta lil ħadd! - hekk aħna jippermettu daħliet NULL f'dak il-qasam. Innota li NULL hija l-valur awtomatiku u tħalli barra din l-għażla tippermetti b'mod impliċitu valuri NULL għal attribut.

Bini tat-Tabelli li Fadal

Issa ejja nħarsu lejn it-tabella tat-territorji. Minn ħarsa lejn din id-data, jidher li għandna bżonn inħażnu numru sħiħ u żewġ kordi ta 'tul varjabbli. Bħal fl-eżempju preċedenti tagħna, ma nistgħux nistennew li l-ID Reġjonali jikkunsmaw aktar minn 25 karattru. Madankollu, xi wħud mit-territorji tagħna għandhom ismijiet itwal, hekk aħna ser tespandi t-tul permess ta 'dak l-attribut għal 40 karattru. Ejja nħarsu lejn is-SQL korrispondenti:

Territorji CREATE TABLE (territoryid INTEGER NOT NULL, territorju Deskrizzjoni VARCHAR (40) MHUX NULL, regionid VARCHAR (25) MHUX NULL);

Fl-aħħarnett, aħna se nużaw it-Tabella tat-Territorji tal-Impjegati biex taħżen ir-relazzjonijiet bejn l-impjegati u t-territorji. Informazzjoni dettaljata dwar kull impjegat u territorju hija maħżuna f'żewġ tabelli preċedenti tagħna. Għalhekk, għandna bżonn biss li nħażnu n-numri ta 'identifikazzjoni ta' żewġ numri f'din it-tabella. Jekk irridu nwessgħu din l-informazzjoni nistgħu nużaw JOIN fil-kmandi tagħna ta 'l-għażla tad-data biex jiksbu informazzjoni minn tabelli multipli. Dan il-metodu ta 'ħażna tad-data jnaqqas is-sensja fid-database tagħna u jiżgura l-aħjar użu tal-ispazju fuq id-drives tal-ħażna tagħna. Aħna ser ikopru l-kmand JOIN fil-fond fi tutorja futura. Hawn il-kodiċi SQL biex jimplimenta t-tabella finali tagħna:

JINħOLOQ IT-TABELLA ta 'employeeterritories (employee INTEGER NOT NULL, territoryid INTEGER MHUX NULL);

Il-Mekkaniżmu SQL Jipprovdi biex Tibdil l-Istruttura ta 'Database Wara l-Ħolqien

Jekk int partikolarment astut illum, jista 'jkollok innutat li aħna "aċċidentalment" naqsu wieħed mir-rekwiżiti tad-disinn meta nimplimentaw it-tabelli tad-database tagħna. Ir-Rappreżentant tal-HR ta 'XYZ Corporation talab li d-database issegwi l-informazzjoni dwar is-salarju tal-impjegat u aħna naqsu milli nipprovdu dan fit- tabelli tad - database li ħloqna.

Madankollu, kollox ma jintilifx. Nistgħu nużaw il-kmand ALTER TABLE biex iżid dan l-attribut fid-database eżistenti tagħna. Irridu naħżnu s-salarju bħala valur sħiħ. Is-sintassi hija pjuttost simili għal dik tal-kmand CREATE TABLE, hawnhekk hija:

ALTER TABLE impjegati ADD salarju INTEGER NULL;

Avviż li aħna speċifikat li l-valuri NULL huma permessi għal dan l-attribut. Fil-biċċa l-kbira tal-każijiet, m'hemm l-ebda għażla meta żżid kolonna ma 'tabella eżistenti. Dan huwa dovut għall-fatt li t-tabella diġà fiha ringieli mingħajr dħul għal dan l-attribut. Għalhekk, id-DBMS daħħal awtomatikament valur NULL biex jimla n-null.

U dan jaqa 'fuq il-ħarsa tagħna lejn id-database SQL u l-proċess tal-ħolqien tal-mejda. Iċċekkja lura ħafna drabi għal pagamenti ġodda fis-serje tutorja SQL tagħna. Jekk tixtieq tfakkira ta 'le-mail meta oġġetti ġodda jiġu miżjuda mas-sit tad-Databases, kun żgur li tabbona għan-newsletter tagħna!