Skep van databasisse en tabelle in SQL

Die skep van die databasis

Is jy gereed om databasisse en tabelle met die gestruktureerde navraagstaal te begin ? In hierdie artikel ondersoek ons ​​die proses om tafels handmatig te maak met die opdrag CREATE DATABASE en CREATE TABLE. As jy nuut is op SQL, sal jy dalk eers ons SQL Basics- artikel wil hersien.

Besigheidsvereistes

Voordat ons by die sleutelbord gaan sit, moet ons verseker dat ons die vereistes van die kliënt goed verstaan. Wat is die beste manier om hierdie insig te verkry? Praat met die kliënt natuurlik! Nadat ons by XYZ se Menslike Hulpbronne-direkteur gesit het, het ons geleer dat hulle 'n kleinhandelverkoopsmaatskappy is. Hulle is hoofsaaklik geïnteresseerd in die opsporing van inligting oor hul verkoopspersoneel.

XYZ Corporation verdeel hul verkoopsmag in oostelike en westelike streke, waarvan elkeen verdeel word in baie gebiede wat deur individuele verkoopsgeleenthede gedek word. Die MH-afdeling wil graag die gebied dek wat deur elke werknemer gedek word, sowel as elke werknemer se salarisinligting en toesighoudende struktuur. Om aan hierdie vereistes te voldoen, het ons 'n databasis ontwerp wat bestaan ​​uit drie tabelle, wat in die Entity-Relationship-diagram op hierdie bladsy gewys word.

Kies 'n databasis platform

Ons het besluit om 'n databasisbestuurstelsel (of DBMS) te gebruik wat op die gestruktureerde navraagtaal (SQL) gebou is. Daarom moet al ons databasis- en tabelskeppingsopdragte geskryf word met standaard ANSI SQL in gedagte.

As 'n bykomende voordeel, sal die gebruik van ANSI-ooreenstemmende SQL verseker dat hierdie opdragte sal werk op enige DBMS wat die SQL-standaard ondersteun , insluitend Oracle en Microsoft SQL Server. As u nog nie 'n platform vir u databasis gekies het nie, loop die artikel Database Software Options u deur die keuringsproses.

Die skep van die databasis

Ons eerste stap is om die databasis self te skep. Baie databasisbestuurstelsels bied 'n reeks opsies om databasisparameters aan te pas by hierdie stap, maar ons databasis maak net die eenvoudige skepping van 'n databasis moontlik. Soos met al ons opdragte, kan u die dokumentasie vir u DBMS raadpleeg om te bepaal of enige gevorderde parameters wat deur u spesifieke stelsel ondersteun word, aan u behoeftes voldoen. Kom ons gebruik die opdrag CREATE DATABASE om ons databasis op te stel:

SKEP DATABASE personeel

Let veral op die kapitalisasie wat in die voorbeeld hierbo gebruik word. Dit is algemene praktyk onder SQL programmeerders om alle hoofletters vir SQL-sleutelwoorde soos "CREATE" en "DATABASE" te gebruik terwyl al die kleinletters gebruik word vir gebruikers-gedefinieerde name soos die "personeel" databasis naam. Hierdie konvensies maak voorsiening vir maklike leesbaarheid.

Hou aan om hierdie handleiding te lees aangesien ons tabelle vir ons databasis skep.

Leer meer

As jy meer wil weet oor die gestruktureerde navraagtaal , lees Inleiding tot SQL of teken aan vir ons gratis Leer SQL e-pos kursus.

Noudat ons ons databasis ontwerp en geskep het, is ons gereed om te begin met die skep van die drie tabelle wat gebruik word om XYZ Corporation se personeeldata te stoor. Ons sal die tabelle wat ons ontwerp het in die vorige gedeelte van hierdie handleiding implementeer.

Skep ons eerste tafel

Ons eerste tabel bestaan ​​uit die persoonlike data vir elke werknemer van ons maatskappy. Ons moet elke werknemer se naam, salaris, ID en bestuurder insluit. Dit is goeie ontwerppraktyk om die laaste en eerste name in aparte velde te skei om data soek en sorteer in die toekoms te vereenvoudig. Ons sal ook hou van elke werknemer se bestuurder deur 'n verwysing na die bestuurder se werknemer-ID in elke werknemerrekord in te voeg. Kom ons kyk eers na die verlangde werknemertafel.

In die Verslae word die bestuurder-ID vir elke werknemer gestoor. Uit die getoonde steekproefrekords kan ons bepaal dat Sue Scampi die bestuurder van Tom Kendall en John Smith is. Daar is egter geen inligting in die databasis op Sue se bestuurder nie, soos aangedui deur die NULL-inskrywing in haar ry.

Nou kan ons SQL gebruik om die tabel in ons personeeldatabasis te skep. Voordat ons dit doen, laat ons seker maak dat ons in die korrekte databasis is deur 'n USE-opdrag uit te reik:

USE personeel;

Alternatiewelik, die "DATABASE personeel;" opdrag sou dieselfde funksie verrig. Nou kan ons 'n blik op die SQL-opdrag gebruik om ons werknemerstafel te skep:

CREATE TABLE werknemers (medewerker INTEGER NIE NULL, achternaam VARCHAR (25) NIE NULL, vir naam VARCHAR (25) NIE NULL, Report to INTEGER NULL);

Soos met die bostaande voorbeeld, let op dat die programmeringskonvensie dikteer dat ons alle hoofletters vir SQL-sleutelwoorde en kleinletters gebruik vir kolomme en tabelle met gebruikers. Die opdrag hierbo lyk dalk eers verwarrend, maar daar is eintlik 'n eenvoudige struktuur daar agter. Hier is 'n algemene siening wat dinge effens kan opruim:

CREATE TABLE table_name (attribute_name datatype options, ..., attribute_name datatype opsies);

Eienskappe en data tipes

In die vorige voorbeeld is die tabel naam werknemers en ons het vier eienskappe: werknemer, voorname, voornaam en verslag. Die datatipe dui aan die tipe inligting wat ons in elke veld wil stoor. Die werknemer ID is 'n eenvoudige heelgetal nommer, dus ons sal die INTEGER data tipe gebruik vir beide die werknemer-veld en die veld. Die werknemer se name sal karaktersnare van veranderlike lengte wees en ons verwag nie dat enige werknemer 'n voor- of achternaam meer as 25 karakters moet hê nie. Daarom gebruik ons ​​die VARCHAR-tipe (25) vir hierdie velde.

NULL Waardes

Ons kan ook NULL of NIE NULL spesifiseer in die opsie-veld van die CREATE-stelling. Dit vertel eenvoudig die databasis of NULL (of leë) waardes vir daardie kenmerk toegelaat word wanneer rye by die databasis bygevoeg word. In ons voorbeeld vereis die MH-afdeling dat 'n werknemer ID en volledige naam vir elke werknemer gestoor moet word. Egter nie elke werknemer het 'n bestuurder nie - die hoof uitvoerende beampte rapporteer aan niemand! - dus toelaat ons NULL-inskrywings in daardie veld. Let daarop dat NULL die verstekwaarde is en om hierdie opsie uit te laat, sal NULL waardes vir 'n kenmerk toelaat.

Bou die oorblywende tafels

Kom ons kyk nou na die gebiedstabel. Uit 'n vinnige blik op hierdie data, blyk dit dat ons 'n heelgetal en twee veranderlike lengte stringe moet stoor. Soos met ons vorige voorbeeld, verwag ons nie dat die Streek ID meer as 25 karakters verbruik nie. Sommige van ons gebiede het egter langer name, so ons sal die toelaatbare lengte van daardie kenmerk uitbrei na 40 karakters. Kom ons kyk na die ooreenstemmende SQL:

SKEP TAFELGEBIEDE (grondgebied INTEGER NIE NULL, Terrein Beskrywing VARCHAR (40) NIE NULL, REGIONEER VARCHAR (25) NIE NULL NIE;

Uiteindelik gebruik ons ​​die Table of EmployerTerritories om die verhoudings tussen werknemers en gebiede te stoor. Gedetailleerde inligting oor elke werknemer en grondgebied word in ons vorige twee tabelle gestoor. Daarom moet ons net die twee integer identifikasienommers in hierdie tabel stoor. As ons hierdie inligting moet uitbrei, kan ons 'n JOIN in ons data seleksie opdragte gebruik om inligting uit verskeie tabelle te verkry. Hierdie metode om data te stoor, verminder redundansie in ons databasis en verseker optimale gebruik van spasie op ons stoor dryf. Ons sal die JOIN-bevel deeglik in 'n toekomstige handleiding dek. Hier is die SQL-kode om ons finale tabel te implementeer:

CREATE TABLE employeeterritories (employeeid INTEGER NOT NULL, territoryid INTEGER NOT NULL);

Die meganisme SQL voorsien om die struktuur van 'n databasis na skepping te verander

As jy vandag besonder slim is, het jy dalk opgemerk dat ons per ongeluk een van die ontwerpvereistes weglaat wanneer ons databasis tabelle implementeer. XYZ Korporasie se MH-direkteur het gevra dat die databasis spoor werknemer salaris inligting en ons verwaarloos om voorsiening te maak vir hierdie in die databasis tafels wat ons geskep het.

Maar alles is nie verlore nie. Ons kan die bevel ALTER TABLE gebruik om hierdie kenmerk by ons bestaande databasis te voeg. Ons wil die salaris as 'n heelgetalwaarde stoor. Die sintaksis is baie soortgelyk aan dié van die CREATE TABLE bevel, hier is dit:

ALTER TABLE werknemers ADD salaris INTEGER NULL;

Let daarop dat ons gespesifiseer het dat NULL-waardes vir hierdie kenmerk toegelaat word. In die meeste gevalle is daar geen opsie wanneer u 'n kolom by 'n bestaande tabel voeg nie. Dit is te danke aan die feit dat die tabel reeds rye bevat wat geen inskrywing vir hierdie kenmerk bevat nie. Daarom voeg die DBMS outomaties 'n NULL waarde in om die leegte te vul.

En dit vergroot ons kyk na die SQL-databasis en die skeppingsproses. Kyk gereeld terug vir nuwe paaiemente in ons SQL-tutoriaalreeks. As jy 'n e-pos herinnering wil hê wanneer nuwe artikels by die About Databases-werf gevoeg word, maak seker dat u inteken op ons nuusbrief!