Creu Cronfeydd Data a Thablau Yn SQL

Creu'r Gronfa Ddata

Ydych chi'n barod i ddechrau creu cronfeydd data a thablau gyda'r Iaith Ymholiad Strwythuredig ? Yn yr erthygl hon, rydym yn archwilio'r broses o greu tablau yn llaw â gorchmynion CREATE DATABASE a CREATE TABLE. Os ydych chi'n newydd i SQL, efallai yr hoffech adolygu ein herthygl Basics SQL yn gyntaf.

Gofynion Busnes

Cyn i ni eistedd yn y bysellfwrdd, mae angen inni sicrhau bod gennym ddealltwriaeth gadarn o ofynion y cwsmer. Beth yw'r ffordd orau o gael y mewnwelediad hwn? Siarad â'r cwsmer, wrth gwrs! Ar ôl eistedd i lawr gyda Chyfarwyddwr Adnoddau Dynol XYZ, rydym wedi dysgu eu bod yn gwmni gwerthu teclynnau ac sydd â diddordeb yn bennaf mewn olrhain gwybodaeth am eu personél gwerthiant.

Mae XYZ Corporation yn rhannu eu lluoedd gwerthu yn rhanbarthau dwyreiniol a gorllewinol, ac mae pob un ohonynt wedi'i rannu'n lawer o diriogaethau a gynhwysir gan gynrychiolwyr gwerthu unigol. Hoffai'r adran Adnoddau Dynol olrhain y diriogaeth a gwmpesir gan bob gweithiwr yn ogystal â gwybodaeth cyflog cyflogaeth a strwythur goruchwylio pob gweithiwr. Er mwyn bodloni'r gofynion hyn, rydym wedi llunio cronfa ddata sy'n cynnwys tair tabl, a ddangosir yn y diagram Entity-Perthynas ar y dudalen hon.

Dewis Llwyfan Cronfa Ddata

Rydym wedi penderfynu defnyddio system rheoli cronfa ddata (neu DBMS) sydd wedi'i adeiladu ar yr Iaith Ymholiad Strwythuredig (SQL). Felly, dylai ein holl orchmynion cronfa ddata a chreu tabl gael eu hysgrifennu gyda'r ANSI SQL safonol mewn golwg.

Fel budd ychwanegol, bydd defnyddio SQL sy'n cydymffurfio â ANSI yn sicrhau y bydd y gorchmynion hyn yn gweithio ar unrhyw DBMS sy'n cefnogi'r safon SQL , gan gynnwys Oracle a Microsoft SQL Server. Os nad ydych wedi dewis llwyfan ar gyfer eich cronfa ddata eto, mae'r erthygl Dewisiadau Meddalwedd Cronfa Ddata yn eich cerdded trwy'r broses ddethol.

Creu'r Gronfa Ddata

Ein cam cyntaf yw creu cronfa ddata ei hun. Mae llawer o systemau rheoli cronfa ddata yn cynnig cyfres o opsiynau i addasu paramedrau cronfa ddata ar y cam hwn, ond mae ein cronfa ddata yn caniatáu creu cronfa ddata yn syml yn unig. Fel gyda'n holl orchmynion, efallai yr hoffech chi ymgynghori â'r ddogfennaeth ar gyfer eich DBMS i benderfynu a yw unrhyw baramedrau uwch a gefnogir gan eich system benodol yn cwrdd â'ch anghenion. Gadewch i ni ddefnyddio gorchymyn CREATE DATABASE i sefydlu ein cronfa ddata:

Personél CREATE DATABASE

Cymerwch nodyn arbennig o'r cyfalafu a ddefnyddir yn yr enghraifft uchod. Mae'n arfer cyffredin ymysg rhaglenwyr SQL i ddefnyddio pob prif lythrennau ar gyfer keywords SQL megis "CREATE" a "DATABASE" tra'n defnyddio pob llythyr isaf ar gyfer enwau a ddiffinnir gan ddefnyddwyr fel yr enw cronfa ddata "personél". Mae'r confensiynau hyn yn darparu ar gyfer darllenadwyedd hawdd.

Parhewch i ddarllen y tiwtorial hwn wrth i ni greu tablau ar gyfer ein cronfa ddata.

Dysgu Mwy

Os hoffech chi ddysgu mwy am yr Iaith Ymholiadau Strwythuredig , darllenwch Cyflwyniad i SQL neu gofrestru ar gyfer ein cwrs e-bost Dysgu SQL am ddim.

Nawr ein bod ni wedi dylunio a chreu ein cronfa ddata, rydym yn barod i ddechrau creu'r tri tabl a ddefnyddir i storio data personél XYZ Corporation. Byddwn yn gweithredu'r tablau a gynlluniwyd gennym yn y rhan flaenorol o'r tiwtorial hwn.

Creu Ein Tabl Cyntaf

Mae ein tabl cyntaf yn cynnwys y data personol ar gyfer pob gweithiwr o'n cwmni. Mae angen inni gynnwys enw, cyflog, ID, a rheolwr pob gweithiwr. Mae'n arfer dylunio da i wahanu'r enwau olaf a cyntaf i feysydd ar wahân i symleiddio chwilio a didoli data yn y dyfodol. Hefyd, byddwn yn cadw golwg ar reolwr pob gweithiwr trwy fewnosod cyfeiriad at ID gweithwyr y rheolwr ym mhob cofnod cyflogai. Gadewch i ni edrych yn gyntaf ar y tabl cyflogedig a ddymunir.

Mae'r priodwedd ReportsTo yn storio'r ID rheolwr ar gyfer pob gweithiwr. O'r cofnodion sampl a ddangosir, gallwn benderfynu mai Sue Scampi yw rheolwr Tom Kendall a John Smith. Fodd bynnag, nid oes unrhyw wybodaeth yn y gronfa ddata ar reolwr Sue, fel y nodir gan y cofnod NULL yn ei rhes.

Nawr gallwn ddefnyddio SQL i greu'r tabl yn ein cronfa ddata personél. Cyn i ni wneud hynny, gadewch i ni sicrhau ein bod ni yn y gronfa ddata gywir trwy gyhoeddi gorchymyn USE:

Personél DEFNYDD;

Fel arall, mae'r "personél DATABASE"; byddai'r gorchymyn yn cyflawni'r un swyddogaeth. Nawr, gallwn edrych ar y gorchymyn SQL a ddefnyddir i greu tabl ein gweithwyr:

CREATE TABLE gweithwyr (cyflogai INTEGER NOT NULL, enw olaf VARCHAR (25) NOT NULL, enw cyntaf VARCHAR (25) NOT NULL, reportsto INTEGER NULL);

Fel gyda'r enghraifft uchod, nodwch fod confensiwn rhaglennu yn pennu ein bod yn defnyddio pob prif lythrennau ar gyfer allweddeiriau SQL a llythyrau isaf ar gyfer colofnau a thablau a enwir gan ddefnyddwyr. Gallai'r gorchymyn uchod ymddangos yn ddryslyd ar y dechrau, ond mewn gwirionedd mae strwythur syml y tu ôl iddo. Dyma farn gyffredinol a allai egluro pethau ychydig:

CREATE TABLE table_name (dewisiadau data data priodas_name, ..., attribute_name datatype options);

Nodweddion a Mathau o Ddata

Yn yr enghraifft flaenorol, enw'r bwrdd yw gweithwyr ac rydym yn cynnwys pedwar priodoledd: cyflogai, enw olaf, enw cyntaf, ac adroddiad. Mae'r dataty yn nodi'r math o wybodaeth yr ydym am ei storio ym mhob maes. Mae'r ID gweithiwr yn rif cyfan syml, felly byddwn ni'n defnyddio'r gronfa ddata INTEGER ar gyfer maes y gweithiwr a'r maes adroddiad. Bydd enwau'r gweithiwr yn llinynnau cymeriad o hyd amrywiol ac nid ydym yn disgwyl i unrhyw weithiwr gael enw cyntaf neu enw olaf dros 25 o gymeriadau. Felly, byddwn yn defnyddio'r math VARCHAR (25) ar gyfer y meysydd hyn.

Gwerthoedd NULL

Gallwn hefyd nodi naill ai NULL neu NEU NULL yn y maes opsiynau o ddatganiad CREATE. Mae hyn yn syml yn dweud wrth y gronfa ddata a yw gwerthoedd NULL (neu wag) yn cael eu caniatáu ar gyfer y priodoldeb hwnnw wrth ychwanegu rhesi i'r gronfa ddata. Yn ein hesiampl, mae'r adran Adnoddau Dynol yn ei gwneud yn ofynnol i ID gweithiwr ac enw cyflawn gael ei storio ar gyfer pob gweithiwr. Fodd bynnag, nid oes gan bob gweithiwr reolwr - mae'r Prif Swyddog Gweithredol yn adrodd i neb! - felly rydym yn caniatáu rhifiadau NULL yn y maes hwnnw. Noder mai NULL yw'r gwerth diofyn a bydd hepgor yr opsiwn hwn yn caniatáu mewnbwn ganiatáu gwerthoedd NULL ar gyfer priodoldeb.

Adeiladu'r Tablau sy'n Weddill

Nawr gadewch i ni edrych ar y tabl tiriogaethau. O edrych yn gyflym ar y data hwn, ymddengys bod angen i ni storio llwyth cyfan a dau gyfaint hyd amrywiol. Fel yn ein enghraifft flaenorol, nid ydym yn disgwyl i'r ID Rhanbarth fwyta 25 o gymeriadau. Fodd bynnag, mae gan rai o'n tiriogaethau enwau hirach, felly byddwn yn ehangu hyd y priodoldeb hwnnw i 40 o gymeriadau. Edrychwn ar y SQL cyfatebol:

CREATE TERLADAU tiriogaethau (territoryid INTEGER NOT NULL, territorial Disgrifiad VARCHAR (40) NOT NULL, VARCHAR rhanbarth (25) NID NULL);

Yn olaf, byddwn ni'n defnyddio'r tabl Teithwyr Gweithwyr i storio'r berthynas rhwng gweithwyr a thiriogaethau. Mae gwybodaeth fanwl am bob gweithiwr a thiriogaeth yn cael ei storio yn ein dau dabl blaenorol. Felly, dim ond i ni storio'r ddau rif adnabod cyfanrif yn y tabl hwn. Os bydd angen i ni ehangu'r wybodaeth hon, gallwn ddefnyddio YMUNI yn ein gorchmynion dethol data i gael gwybodaeth o dablau lluosog. Mae'r dull hwn o storio data yn lleihau diswyddo yn ein cronfa ddata ac yn sicrhau y defnydd gorau posibl o le ar ein gyriannau storio. Byddwn yn ymdrin â'r gorchymyn JOIN yn fanwl mewn tiwtorial yn y dyfodol. Dyma'r cod SQL i weithredu ein tabl terfynol:

CREATEU GWEITHDREFNYDDIAETHAU (gweithiwr cyflogedig NID YW NODOL, INTEGYDD TERFYNOL NID, NULL);

Mae'r Mecanwaith SQL yn Darparu Newid Strwythur Cronfa Ddata Ar ôl Creu

Os ydych chi'n arbennig o anhygoel heddiw, efallai eich bod wedi sylwi ein bod ni wedi "hepgor" yn ddamweiniol yn un o'r gofynion dylunio wrth weithredu ein tablau cronfa ddata. Gofynnodd Cyfarwyddwr Adnoddau Dynol XYZ Corporation fod y wybodaeth gronfa ddata ar gyflog cyflogai yn ôl y gronfa ddata ac fe wnaethom esgeuluso darparu ar gyfer hyn yn y tablau cronfa ddata a grëwyd gennym.

Fodd bynnag, nid yw popeth wedi'i golli. Gallwn ddefnyddio gorchymyn ALTER TABLE i ychwanegu'r nodwedd hon i'n cronfa ddata bresennol. Rydym am storio'r cyflog fel gwerth cyfanrif. Mae'r cystrawen yn eithaf tebyg i orchymyn CREATE TABLE, dyma yw:

Cyflogeion ALTER TABLE ADD cyflog INTEGER NULL;

Sylwch ein bod wedi nodi bod gwerthoedd NULL yn cael eu caniatáu ar gyfer y priodoldeb hwn. Yn y rhan fwyaf o achosion, nid oes opsiwn wrth ychwanegu colofn i dabl sy'n bodoli eisoes. Mae hyn oherwydd y ffaith bod y tabl eisoes yn cynnwys rhesi heb unrhyw gofnod ar gyfer y priodoldeb hwn. Felly, mae'r DBMS yn rhoi gwerth NULL yn awtomatig i lenwi'r gwag.

Ac mae hynny'n edrych yn ôl ar y gronfa ddata SQL a'r broses creu tablau. Edrychwch yn ôl yn aml am randaliadau newydd yn ein cyfres diwtorial SQL. Os hoffech atgoffa e-bost pan fydd erthyglau newydd yn cael eu hychwanegu at wefan Amdanom ni Cronfeydd Data, sicrhewch eich bod yn tanysgrifio i'n cylchlythyr!