Crearea de baze de date și tabele în SQL

Crearea bazei de date

Sunteți gata să începeți să creați baze de date și tabele cu limba de interogare structurată ? În acest articol, analizăm procesul de creare manuală a tabelelor cu comenzile CREATE DATABASE și CREATE TABLE. Dacă sunteți nou la SQL, vă recomandăm să citiți mai întâi articolul nostru despre Bazele SQL .

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ă înțelegere? Vorbind cu clientul, desigur! După ce ne-am ocupat de directorul pentru Resurse Umane al companiei XYZ, am aflat că acestea sunt o companie de vânzări widget și sunt în primul rând interesate să urmărească informațiile despre personalul lor de vânzări.

Compania XYZ își împarte forța de vânzări în regiunile din est și vest, fiecare dintre ele fiind împărțită în mai multe teritorii acoperite de reprezentanții individuali de vânzări. Departamentul resurse umane dorește să urmărească teritoriul acoperit de fiecare angajat, precum și informațiile și structura de supraveghere a salariilor fiecărui angajat. Pentru a îndeplini aceste cerințe, am creat o bază de date compusă din trei tabele, prezentate în diagrama entitate-relație de pe această pagină.

Alegerea unei platforme de baze de date

Am decis să folosim un sistem de gestionare a bazelor de date (sau DBMS) care este construit pe baza limbii structurate de interogare (SQL). Prin urmare, toate comenzile noastre de creare de baze de date și tabele ar trebui să fie scrise cu standardul ANSI SQL în minte.

Ca un avantaj suplimentar, utilizarea SQL compatibilă cu ANSI va asigura că aceste comenzi vor funcționa pe orice DBMS care suportă standardul SQL , inclusiv Oracle și Microsoft SQL Server. Dacă nu ați selectat încă o platformă pentru baza de date, articolul Baza de date pentru opțiunile de software vă va îndreaptă spre procesul de selecție.

Crearea bazei de date

Primul nostru pas este crearea bazei de date. Multe sisteme de gestionare a bazelor de date oferă o serie de opțiuni pentru personalizarea parametrilor bazei de date la acest pas, însă baza noastră de date permite crearea unei baze de date simple. Ca și în cazul tuturor comenzilor noastre, vă recomandăm să consultați documentația pentru DBMS-ul dvs. pentru a determina dacă parametrii avansați susținuți de sistemul dvs. specific corespund necesităților dvs. Să folosim comanda CREATE DATABASE pentru a configura baza noastră de date:

CREEAZI personalul DATABASE

Luați notă de capitalizarea utilizată în exemplul de mai sus. Este o practică obișnuită printre programatorii SQL să utilizeze toate literele majuscule pentru cuvinte cheie SQL, cum ar fi "CREATE" și "DATABASE", în timp ce folosesc toate literele minuscule pentru nume definite de utilizator, cum ar fi numele bazei de date "personal". Aceste convenții asigură o lizibilitate ușoară.

Continuați să citiți acest tutorial în timp ce creați tabele pentru baza noastră de date.

Aflați mai multe

Dacă doriți să aflați mai multe despre limbajul structurat de interogări , citiți Introducere în SQL sau înscrieți-vă pentru cursul nostru gratuit de învățare prin e-mail SQL.

Acum că am proiectat și creat baza noastră de date, suntem gata să începem să creăm cele trei tabele utilizate pentru stocarea datelor personale ale XYZ Corporation. Vom implementa tabelele pe care le-am proiectat în partea anterioară a acestui tutorial.

Crearea primului nostru tabel

Primul nostru tabel cuprinde datele personale pentru fiecare angajat al companiei noastre. Trebuie să includeți numele, salariul, ID-ul și managerul fiecărui angajat. Este o practică bună de design pentru a separa numele de ultim și numele de câmpuri separate pentru a simplifica în viitor căutarea și sortarea datelor. De asemenea, vom urmări managerul fiecărui angajat, introducând o referință la ID-ul angajatului managerului în fiecare înregistrare a angajatului. Să aruncăm o privire la tabelul de angajați dorit.

Atributul ReportsTo stochează ID-ul managerului pentru fiecare angajat. Din eșantioanele înregistrate, putem determina că Sue Scampi este managerul lui Tom Kendall și John Smith. Cu toate acestea, nu există informații în baza de date despre managerul Sue, așa cum este indicat de intrarea NULL în rândul său.

Acum putem folosi SQL pentru a crea masa în baza de date a personalului nostru. Î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 DATABASE"; comanda ar efectua aceeași funcție. Acum, putem să aruncăm o privire la comanda SQL folosită pentru a crea masa angajaților noștri:

CREATE TABLE angajați (employeeid INTEGER NOT NULL, nume VARCHAR (25) NOT NULL, prenume VARCHAR (25) NOT NULL, reportsto INTEGER NULL);

Ca și în exemplul de mai sus, rețineți că convenția de programare dictează că folosim toate literele majuscule pentru cuvintele cheie SQL și literele minuscule pentru coloanele și tabelele denumite de utilizator. Comanda de mai sus poate părea la început confuză, dar de fapt există o structură simplă în spatele ei. Iată o vedere generalizată care ar putea clarifica lucrurile:

CREATE TABLE nume_tabel (optiuni de tip de nume de atribut, optiuni de tip de date atribut_name);

Atribute și tipuri de date

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

Valorile NULL

De asemenea, putem specifica fie NULL, fie NOT NULL în câmpul de opțiuni al instrucțiunii CREATE. Acest lucru spune pur și simplu bazei de date dacă valorile NULL (sau goale) sunt permise pentru acel atribut atunci când se adaugă rânduri la baza de date. În exemplul nostru, departamentul resurse umane solicită să fie stocate pentru fiecare angajat un cod de angajare și un nume complet. Cu toate acestea, nu fiecare angajat are un manager - CEO raportează nimănui! - deci permitem intrări NULL în acel câmp. Rețineți că valoarea 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 masa de teritorii. Din analiza rapidă a acestor date, se pare că trebuie să stocăm un întreg și două șiruri de lungime variabilă. Ca și în exemplul nostru precedent, 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, deci vom extinde lungimea admisă a atributului la 40 de caractere. Să ne uităm la SQL corespunzător:

CREATE TABLE territories (teritoriuID INTEGER NOT NULL, territory Descrierea VARCHAR (40) NOT NULL, regionid VARCHAR (25) NOT NULL);

În cele din urmă, vom folosi tabelul Employee Territories 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 doar 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 de stocare. Vom acoperi în detaliu comanda JOIN într-un tutorial viitor. Iată codul SQL pentru a implementa masa finală:

CREATE TABLE employeesterritories (angajat INTEGER NOT NULL, territoryid INTEGER NOT NULL);

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

Dacă sunteți deosebit de azi astăzi, ați fi observat că am "omorât" omis una dintre cerințele de proiectare atunci când implementăm tabelele bazei noastre de date. Directorul de resurse umane al XYZ Corporation a solicitat ca baza de date să urmărească informațiile despre salariile angajaților și am neglijat să oferim acest lucru în tabelele de baze de date pe care le-am creat.

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

Salariul ALTER TABLE salariul ADD INTEGER NULL;

Observați că am specificat că valorile NULL sunt permise pentru acest atribut. În majoritatea cazurilor, nu există opțiune atunci când se adaugă o coloană într-un tabel existent. Acest lucru se datorează faptului că tabela conține deja rânduri fără intrare pentru acest atribut. Prin urmare, DBMS introduce automat o valoare NULL pentru a umple vidul.

Și asta ne întărește privirea la baza de date SQL și procesul de creare a tabelului. Reveniți frecvent pentru noi rate în seria noastră de instrucțiuni SQL. Dacă doriți un memento prin e-mail atunci când articole noi sunt adăugate pe site-ul About Databases, asigurați-vă că vă abonați la newsletter-ul nostru!