Paglikha ng Mga Database at Mga Table Sa SQL

Paglikha ng Database

Handa ka na bang magsimulang lumikha ng mga database at mga talahanayan gamit ang Nakabalangkas na Wika ng Query ? Sa artikulong ito, sinisiyasat namin ang proseso ng paglikha ng mga talahanayan nang manu-mano sa LILIKHA NG DATABASE at LILIKHA MGA TALAAN na mga utos. Kung bago ka sa SQL, maaari mong suriin ang aming artikulo sa Pangunahing SQL .

Mga pangangailangan sa negosyo

Bago kami umupo sa keyboard, kailangan naming tiyakin na mayroon kaming matatag na pag-unawa sa mga kinakailangan ng customer. Ano ang pinakamahusay na paraan upang makuha ang pananaw na ito? Pakikipag-usap sa customer, siyempre! Pagkatapos ng pag-upo sa Direktor ng Human Resources ng XYZ, natutunan namin na sila ay isang kumpanya ng sales widget at lalo na interesado sa pagsubaybay ng impormasyon sa kanilang mga tauhan ng pagbebenta.

Hinati ng XYZ Corporation ang kanilang lakas sa pagbebenta sa mga rehiyon sa silangang at kanluran, ang bawat isa ay nahahati sa maraming teritoryo na sakop ng mga indibidwal na mga reporter ng benta. Ang kagawaran ng HR ay nais subaybayan ang teritoryo na sakop ng bawat empleyado pati na rin ang impormasyon sa sahod ng bawat empleyado at istraktura ng superbisor. Upang matugunan ang mga iniaatas na ito, dinisenyo namin ang isang database na binubuo ng tatlong talahanayan, na ipinapakita sa Entity-Relationship diagram sa pahinang ito.

Pagpili ng Database Platform

Nagpasya kaming gumamit ng isang sistema ng pamamahala ng database (o DBMS) na binuo sa Structured Query Language (SQL). Samakatuwid, ang lahat ng aming mga database at mga talahanayan ng paglikha ng mga command ay dapat na nakasulat sa standard ANSI SQL sa isip.

Bilang dagdag na benepisyo, ang paggamit ng ANSI-compliant SQL ay titiyak na ang mga utos na ito ay gagana sa anumang DBMS na sumusuporta sa pamantayan ng SQL , kabilang ang Oracle at Microsoft SQL Server. Kung hindi ka pa napili ang isang platform para sa iyong database, ang artikulo ng Mga Pagpipilian sa Database Software ay papalakarin ka sa proseso ng pagpili.

Paglikha ng Database

Ang aming unang hakbang ay upang lumikha ng database mismo. Maraming mga sistema ng pamamahala ng database ay nag-aalok ng isang serye ng mga pagpipilian upang i-customize ang mga parameter ng database sa hakbang na ito, ngunit pinahihintulutan lamang ng aming database ang simpleng paglikha ng isang database. Tulad ng lahat ng aming mga utos, maaari mong hilingin na kumonsulta sa dokumentasyon para sa iyong DBMS upang matukoy kung ang anumang mga advanced na parameter na sinusuportahan ng iyong partikular na sistema ay nakakatugon sa iyong mga pangangailangan. Gamitin natin ang BUONG DATABASE command upang i-set up ang aming database:

Gumawa ng mga tauhan ng DATABASE

Dalhin ang espesyal na tala sa capitalization na ginamit sa halimbawa sa itaas. Karaniwang kasanayan sa mga programmer ng SQL ang gumamit ng lahat ng malalaking titik para sa mga SQL na keyword tulad ng "LUMIKHA" at "DATABASE" habang ginagamit ang lahat ng maliliit na titik para sa mga tinukoy ng user na mga pangalan tulad ng pangalan ng "tauhan" ng database. Ang mga kombensyong ito ay nagbibigay ng madaling mabasa.

Patuloy na basahin ang tutorial na ito habang lumilikha kami ng mga talahanayan para sa aming database.

Pag-aaral ng Higit Pa

Kung nais mong matuto nang higit pa tungkol sa Nakabalangkas na Wika ng Query , basahin ang Panimula sa SQL o mag-sign up para sa aming libreng pag-aaral ng kurso sa SQL e-mail.

Ngayon na aming dinisenyo at nilikha ang aming database, handa na kaming simulan ang paglikha ng tatlong talahanayan na ginamit upang mag-imbak ng data ng tauhan ng XYZ Corporation. Ipapatupad namin ang mga talahanayan na aming dinisenyo sa nakaraang bahagi ng tutorial na ito.

Paglikha ng aming Unang Talaan

Ang aming unang talahanayan ay binubuo ng personal na data para sa bawat empleyado ng aming kumpanya. Kailangan nating isama ang pangalan, suweldo, ID, at tagapamahala ng bawat empleyado. Mahusay na kasanayan sa disenyo upang paghiwalayin ang mga huling at unang pangalan sa magkahiwalay na mga patlang upang gawing simple ang paghahanap ng data at pag-uuri sa hinaharap. Gayundin, susubaybayan natin ang tagapamahala ng bawat empleyado sa pamamagitan ng pagpasok ng sanggunian sa ID ng empleyado ng tagapamahala sa bawat rekord ng empleyado. Unang tingnan natin ang nais na talahanayan ng empleyado.

Ang Mga Ulat sa katangian ay nag-iimbak ng manager ID para sa bawat empleyado. Mula sa mga talaan ng sample na ipinapakita, maaari naming matukoy na si Sue Scampi ay ang tagapamahala ng parehong Tom Kendall at John Smith. Gayunpaman, walang impormasyon sa database sa manager ni Sue, tulad ng ipinahiwatig ng NULL na entry sa kanyang hilera.

Ngayon ay maaari naming gamitin ang SQL upang lumikha ng talahanayan sa aming mga tauhan ng database. Bago natin ito gawin, tiyakin na nasa tamang database tayo sa pamamagitan ng pag-isyu ng command ng USE:

PAGGAMIT ng mga tauhan;

Bilang kahalili, ang "tauhan ng DATABASE;" Ang utos ay gumanap ng parehong function. Ngayon ay maaari naming tingnan ang SQL command na ginagamit upang lumikha ng talahanayan ng aming mga empleyado:

Gumawa ng mga empleyado ng TALAAN (empleyado INTEGER HINDI null, huling pangalan VARCHAR (25) HINDI null, firstname VARCHAR (25) HINDI null, reportsto INTEGER null);

Tulad ng sa itaas na halimbawa, tandaan na ang programming convention ay nagpapahiwatig na ginagamit namin ang lahat ng malalaking titik para sa mga SQL na mga keyword at mga maliliit na titik para sa mga haligi at talahanayan na pinangalanan ng gumagamit. Ang utos sa itaas ay maaaring mukhang nakalilito sa simula, ngunit may talagang isang simpleng istraktura sa likod nito. Narito ang isang pangkalahatang view na maaaring maging malinaw ang mga bagay nang kaunti:

LUMIKHA NG table_name (attribute_name datatype option, ..., attribute_name datatype option);

Mga Katangian at Mga Uri ng Data

Sa nakaraang halimbawa, ang pangalan ng talahanayan ay mga empleyado at isinasama namin ang apat na katangian: empleyado, huling pangalan, unang pangalan, at ulat. Ang datatype ay nagpapahiwatig ng uri ng impormasyong nais naming itabi sa bawat larangan. Ang empleyado ID ay isang simpleng numero ng integer, kaya gagamitin namin ang datatype ng INTEGER para sa parehong field ng empleyado at sa field ng ulat. Ang mga pangalan ng empleyado ay mga character na string ng haba ng variable at hindi namin inaasahan ang anumang empleyado na magkaroon ng una o huling pangalan na mas mahaba kaysa sa 25 na mga character. Samakatuwid, gagamitin namin ang uri ng VARCHAR (25) para sa mga patlang na ito.

Mga Halaga ng NULL

Maaari din naming tukuyin ang alinman sa null o HINDI null sa mga patlang ng mga pagpipilian ng LILIKHA pahayag. Ito ay nagsasabi lamang sa database kung ang NULL (o walang laman) mga halaga ay pinapayagan para sa attribute na iyon kapag nagdadagdag ng mga hilera sa database. Sa aming halimbawa, hinihiling ng departamento ng HR na ang isang empleyado ID at kumpletong pangalan ay itatabi para sa bawat empleyado. Gayunpaman, hindi lahat ng empleyado ay may tagapamahala - ang ulat ng CEO ay walang sinuman! - kaya pinapayagan namin ang mga NULL na entry sa field na iyon. Tandaan na ang NULL ay ang default na halaga at ang pag-omitting sa opsyong ito ay pahalagahan lamang ang mga NULL na halaga para sa isang katangian.

Pagbuo Ang Mga Natitirang Tabla

Ngayon tingnan natin ang mga talahanayan ng mga teritoryo. Mula sa isang mabilis na pagtingin sa data na ito, lumilitaw na kailangan naming mag-imbak ng isang integer at dalawang variable length string. Tulad ng sa aming nakaraang halimbawa, hindi namin inaasahan na ang Rehiyon ID ay gumamit ng higit sa 25 mga character. Gayunpaman, ang ilan sa aming mga teritoryo ay may mga pangalan, kaya lalawak namin ang pinapahintulutang haba ng katangiang iyon sa 40 na mga character. Tingnan natin ang kaukulang SQL:

LUMIKHA ang mga teritoryo sa lugar (teritoryo INTEGER NOT NULL, teritoryo Paglalarawan VARCHAR (40) HINDI null, regionid VARCHAR (25) HINDI null);

Panghuli, gagamitin namin ang talahanayan ng EmployeeTerritories upang iimbak ang mga relasyon sa pagitan ng mga empleyado at teritoryo. Ang detalyadong impormasyon sa bawat empleyado at teritoryo ay naka-imbak sa aming nakaraang dalawang talahanayan. Samakatuwid, kailangan lamang nating iimbak ang dalawang numero ng pagkakakilanlan ng integer sa talahanayan na ito. Kung kailangan namin upang mapalawak ang impormasyong ito maaari naming gamitin ang isang JOIN sa aming mga utos ng pagpili ng data upang makakuha ng impormasyon mula sa maraming mga talahanayan. Ang paraan ng pagtatago ng data ay binabawasan ang kalabisan sa aming database at sinisiguro ang pinakamainam na paggamit ng espasyo sa aming mga storage drive. Susubukan naming masakop ang command ng JOIN malalim sa isang tutorial sa hinaharap. Narito ang SQL code upang ipatupad ang aming huling talahanayan:

LUMIKHA NG TALAAN employeeterritories (empleyado INTEGER HINDI null, territoryID INTEGER HINDI null);

Ang Mekanismo SQL Nagbibigay ng Pagbabago sa Istraktura ng isang Database Pagkatapos ng Paglikha

Kung ikaw ay napaka-astute ngayon, maaaring napansin mo na "sinasadyang" tinanggal ang isa sa mga kinakailangan sa disenyo kapag nagpapatupad ng aming mga talahanayan ng database. Hiniling ng Direktor ng Direktor ng XYZ Corporation na ang database ng track ng empleyado sa suweldo ng impormasyon at pinabayaan naming bigyan ito sa mga talahanayan ng database na nilikha namin.

Gayunpaman, ang lahat ay hindi nawala. Maaari naming gamitin ang command ng ALTER TABLE upang idagdag ang katangiang ito sa aming umiiral na database. Gusto naming iimbak ang suweldo bilang isang halaga ng integer. Ang syntax ay medyo katulad sa na ng CREATE TABLE command, dito ito ay:

ALTER TABLE empleyado Magdagdag ng suweldo INTEGER null;

Pansinin na tinukoy namin na ang NULL na mga halaga ay pinahihintulutan para sa katangiang ito. Sa karamihan ng mga kaso, walang pagpipilian kapag nagdadagdag ng haligi sa isang umiiral na talahanayan. Ito ay dahil sa ang katunayan na ang talahanayan ay naglalaman ng mga hilera na walang entry para sa katangiang ito. Samakatuwid, ang awtomatikong pagsingit ng DBMS ay isang NULL na halaga upang punan ang walang bisa.

At pinalitan nito ang aming pagtingin sa SQL database at proseso ng paglikha ng talahanayan. Balikan madalas para sa mga bagong installment sa aming serye ng tutorial sa SQL. Kung gusto mo ng paalala ng e-mail kapag idinagdag ang mga bagong artikulo sa site ng Tungkol sa Mga Database, tiyaking mag-subscribe sa aming newsletter!