Crearea bazelor de date și a tabelelor în SQL

click fraud protection

Sunteți gata să începeți crearea de baze de date și tabele cu Limbaj de interogare structurat? În acest articol, explorăm procesul de creare manuală a tabelelor cu comenzile CREATE DATABASE și CREATE TABLE. Dacă sunteți nou în SQL, vă recomandăm să examinați câteva Noțiuni de bază SQL primul.

Cerințe de afaceri

Înainte de a ne așeza la tastatură, trebuie să ne asigurăm că avem o înțelegere solidă a cerințelor clientului. Care este cel mai bun mod de a obține această perspectivă? Vorbind cu clientul, desigur! După ce am stat cu directorul de resurse umane al XYZ, am aflat că sunt o companie de vânzări de widget-uri și sunt interesați în primul rând de urmărirea informațiilor despre personalul lor de vânzări.

XYZ Corporation își împarte forța de vânzare în regiunile estice și occidentale, fiecare dintre acestea fiind împărțit în multe teritorii acoperite de reprezentanți de vânzări individuali. Departamentul de resurse umane ar dori să urmărească teritoriul acoperit de fiecare angajat, precum și informațiile salariale și structura de supraveghere a fiecărui angajat. Pentru a îndeplini aceste cerințe, am proiectat o bază de date formată din trei tabele, prezentate în

instagram viewer
Diagrama entitate-relație Pe aceasta pagina.

Alegerea unei platforme de baze de date

Am decis să folosim un Sistemul de gestionare a bazelor de date (sau SGBD) care este construit pe limbajul structurat de interogare (SQL). Prin urmare, toate comenzile noastre pentru crearea bazei de date și a tabelelor ar trebui să fie scrise având în vedere standardul ANSI SQL.

Ca un avantaj suplimentar, utilizarea SQL conform ANSI va asigura că aceste comenzi vor funcționa pe orice SGBD care acceptă standardul SQL, inclusiv Oracle și Microsoft SQL Server. Dacă nu ați selectat încă o platformă pentru baza de date, Opțiunile software pentru baze de date vă ghidează prin procesul de selecție.

Crearea bazei de date

Primul nostru pas este crearea bazei de date în sine. Multe sisteme de gestionare a bazelor de date oferă o serie de opțiuni pentru personalizarea parametrilor bazei de date la acest pas, dar baza noastră de date permite doar crearea simplă a unei baze de date. Ca și în cazul tuturor comenzilor noastre, este posibil să doriți să consultați documentația pentru SGBD pentru a determina dacă parametrii avansați suportați de sistemul dvs. specific satisfac nevoile dumneavoastră. Să folosim comanda CREATE DATABASE pentru a configura baza noastră de date:

CREAȚI personal BAZA DE DATE

Luați o notă specială cu majusculele utilizate în exemplul de mai sus. Este o practică obișnuită în rândul programatorilor SQL să folosească toate literele majuscule pentru cuvintele cheie SQL, cum ar fi „CREARE” și „DATABASE” în ​​timp ce utilizați toate literele mici pentru nume definite de utilizator, cum ar fi baza de date „personal” Nume. Aceste convenții asigură o lizibilitate ușoară.

Acum, după ce am proiectat și creat baza noastră de date, suntem gata să începem să creăm cele trei tabele utilizate pentru stocarea datelor de personal ale XYZ Corporation.

Crearea primului nostru tabel

Primul nostru tabel constă în date cu caracter personal pentru fiecare angajat al companiei noastre. Trebuie să includem numele, salariul, buletinul de identitate și managerul fiecărui angajat. Este o bună practică de proiectare să separați numele și prenumele în câmpuri separate pentru a simplifica căutarea și sortarea datelor în viitor. De asemenea, vom ține evidența managerului fiecărui angajat prin inserarea unei referințe la ID-ul angajatului managerului în fișa fiecărui angajat. Să aruncăm mai întâi o privire la masa dorită a angajaților.

Atributul ReportsTo stochează ID-ul managerului pentru fiecare angajat. Din exemplele de înregistrări prezentate, putem stabili că Sue Scampi este managerul atât al lui Tom Kendall, cât și al lui John Smith. Cu toate acestea, nu există informații în baza de date despre managerul Sue, așa cum indică intrarea NULL din rândul ei.

Acum putem folosi SQL pentru a crea tabelul în baza noastră de date de personal. Înainte de a face acest lucru, să ne asigurăm că suntem în baza de date corectă prin emiterea unei comenzi USE:

Personalul USE;

Alternativ, „personalul BAZEI DE DATE”; comanda ar îndeplini aceeași funcție. Acum putem arunca o privire asupra comenzii SQL folosite pentru a crea tabela angajaților noștri:

CREAȚI angajați de masă
(Employid INTEGER NOT NULL,
prenumele VARCHAR (25) NOT NULL,
prenume VARCHAR (25) NU NUL,
raport la INTEGER NULL);

La fel ca în exemplul de mai sus, rețineți că convenția de programare dictează utilizarea tuturor literelor majuscule pentru cuvintele cheie SQL și a literelor mici pentru coloanele și tabelele numite de utilizator. Comanda de mai sus poate părea confuză la început, dar există de fapt o structură simplă în spatele ei. Iată o viziune generalizată care ar putea clarifica puțin lucrurile:

CREARE TABEL nume_tabel
(opțiuni atribut_name nume de date,
...,
opțiuni atribut_name nume de date);

Atribute și tipuri de date

În exemplul anterior, numele tabelului este angajați și includem patru atribute: angajat, prenume, prenume și raport. Tipul de date indică tipul de informații pe care dorim să le stocăm în fiecare câmp. ID-ul de angajat este un număr întreg simplu, așa că vom folosi tipul de date INTEGER atât pentru câmpul de identificare a angajatului, cât și pentru câmpul de raportare. Numele angajaților vor fi șiruri de caractere de lungime variabilă și nu ne așteptăm ca niciun angajat să aibă un prenume sau un nume mai lung de 25 de caractere. Prin urmare, vom folosi tipul VARCHAR (25) pentru aceste câmpuri.

Valori NULL

Putem specifica, de asemenea, fie NUL sau NU NUL în câmpul de opțiuni al instrucțiunii CREATE. Aceasta spune pur și simplu bazei de date dacă valorile NULL (sau goale) sunt permise pentru acel atribut atunci când adăugați rânduri la baza de date. În exemplul nostru, departamentul de resurse umane necesită stocarea unui ID de angajat și a unui nume complet pentru fiecare angajat. Cu toate acestea, nu toți angajații au un manager (CEO-ul nu raportează nimănui!) Așa că permitem intrări NULL în acel câmp. Rețineți că NULL este valoarea implicită și omiterea acestei opțiuni va permite implicit valorile NULL pentru un atribut.

Construirea tabelelor rămase

Acum să aruncăm o privire la tabelul teritoriilor. Dintr-o privire rapidă asupra acestor date, se pare că trebuie să stocăm un întreg și două șiruri de lungime variabilă. Ca și în exemplul nostru anterior, nu ne așteptăm ca ID-ul regiunii să consume mai mult de 25 de caractere. Cu toate acestea, unele dintre teritoriile noastre au nume mai lungi, așa că vom extinde lungimea admisibilă a atributului respectiv la 40 de caractere.

Să ne uităm la SQL-ul corespunzător:

CREAȚI teritorii de masă
(territoriid INTEGER NOT NULL,
teritoriu Descriere VARCHAR (40) NOT NULL,
regionid VARCHAR (25) NOT NULL);

În cele din urmă, vom folosi tabelul EmployeeTerritories pentru a stoca relațiile dintre angajați și teritorii. Informații detaliate despre fiecare angajat și teritoriu sunt stocate în cele două tabele anterioare. Prin urmare, trebuie să stocăm cele două numere de identificare întregi în acest tabel. Dacă trebuie să extindem aceste informații, putem folosi un JOIN în comenzile noastre de selectare a datelor pentru a obține informații din mai multe tabele.

Această metodă de stocare a datelor reduce redundanța în baza noastră de date și asigură utilizarea optimă a spațiului pe unitățile noastre de stocare. Vom acoperi comanda JOIN în detaliu într-un viitor tutorial. Iată codul SQL pentru implementarea tabelului nostru final:

CREAȚI TABELUL folosind teritoriile
(Employid INTEGER NOT NULL,
territoriid INTEGER NOT NULL);

Mecanismul SQL oferă modificarea structurii unei baze de date după creare

Dacă sunteți deosebit de înțelept astăzi, este posibil să fi observat că am omis „din greșeală” una dintre cerințele de proiectare la implementarea tabelelor noastre de baze de date. Directorul de resurse umane al XYZ Corporation a solicitat ca baza de date să urmărească informațiile salariale ale angajaților și am neglijat să oferim acest lucru în tabelele de baze de date pe care le-am creat.

Cu toate acestea, nu toate sunt pierdute. Putem folosi comanda ALTER TABLE pentru a adăuga acest atribut la baza noastră de date existentă. Vrem să stocăm salariul ca valoare întreagă. Sintaxa este destul de similară cu cea a comenzii CREATE TABLE, aici este:

Angajații ALTER TABLE
ADAUGĂ salariu INTEGER NULL;

Observați că am specificat că valorile NULL sunt permise pentru acest atribut. În majoritatea cazurilor, nu există nicio opțiune la adăugarea unei coloane într-un tabel existent. Acest lucru se datorează faptului că tabelul conține deja rânduri fără nicio intrare pentru acest atribut. Prin urmare, SGBD introduce automat o valoare NULL pentru a umple golul.

instagram story viewer