Hanfodion SQL

Dysgu am DDL, DML a JOINs

Yr Iaith Gofynion Strwythuredig yw un o blociau adeiladu sylfaenol pensaernïaeth cronfa ddata modern. Mae SQL yn diffinio'r dulliau a ddefnyddir i greu a thrin cronfeydd data perthynol ar bob prif lwyfan. Ar yr olwg gyntaf, gall yr iaith ymddangos yn frawychus a chymhleth, ond nid yw hynny'n anodd.

Mae'r cyflwyniad hwn i'r hanfodion y tu ôl i SQL yn edrych yn fyr ar rai o'r prif orchmynion a ddefnyddir i greu ac addasu cronfeydd data.

Ynglŷn â SQL

Mae ymadrodd cywir SQL yn fater dadleuol o fewn cymuned y gronfa ddata. Yn ei safon SQL, datganodd Sefydliad Safonau Cenedlaethol America mai'r ymadroddiad swyddogol yw "es queue el." Fodd bynnag, mae llawer o weithwyr proffesiynol cronfa ddata wedi cymryd at yr ymadrodd slang "dilyniant." Y dewis yw chi.

Mae SQL yn dod mewn llawer o flasau. Mae cronfeydd data Oracle yn defnyddio ei PL / SQL perchnogol. Mae Microsoft SQL Server yn defnyddio Transact-SQL. Mae'r holl amrywiadau yn seiliedig ar ANSI SQL safonol y diwydiant. Mae'r cyflwyniad hwn yn defnyddio gorchmynion SQL sy'n cydymffurfio â ANSI sy'n gweithio ar unrhyw system gronfa ddata berthynas gyfoes.

DDL a DML

Gellir rhannu gorchmynion SQL yn ddwy brif is-ieithoedd. Mae'r Iaith Diffiniad Data (DDL) yn cynnwys y gorchmynion a ddefnyddir i greu a dinistrio cronfeydd data a gwrthrychau cronfa ddata. Ar ôl diffinio'r strwythur cronfa ddata gyda DDL, gweinyddwyr cronfa ddata a gall defnyddwyr ddefnyddio'r Language Manipulation Data (DML) i fewnosod, adfer ac addasu'r data a gynhwysir ynddo.

Gorchmynion Iaith Diffiniad Data

Defnyddir yr Iaith Diffiniad Data i greu a dinistrio cronfeydd data a gwrthrychau cronfa ddata. Defnyddir y gorchmynion hyn yn bennaf gan weinyddwyr cronfa ddata yn ystod cyfnodau gosod a symud prosiect cronfa ddata. Dyma olwg ar strwythur a defnydd pedwar gorchymyn DDL sylfaenol:

CREATE. Mae gosod system rheoli cronfa ddata ar gyfrifiadur yn eich galluogi i greu a rheoli llawer o gronfeydd data annibynnol. Er enghraifft, efallai y byddwch am gynnal cronfa ddata o gysylltiadau cwsmeriaid ar gyfer eich adran werthu a chronfa ddata personél ar gyfer eich adran Adnoddau Dynol. Defnyddir gorchymyn CREATE i sefydlu pob un o'r cronfeydd data hyn ar eich platfform. Er enghraifft, mae'r gorchymyn:

CREATE DATABASE gweithwyr

yn creu cronfa ddata gwag o'r enw "gweithwyr" ar eich DBMS. Ar ôl creu'r gronfa ddata, y cam nesaf yw creu tablau sy'n cynnwys data. Gellir defnyddio amrywiad arall o orchymyn CREATE at y diben hwn. Y gorchymyn:

CREATE TABLE personal_info (first_name char (20) nid null, lastname name char (20) not null, employee_id int not null)

yn sefydlu tabl o'r enw "personal_info" yn y gronfa ddata gyfredol. Yn yr enghraifft, mae'r tabl yn cynnwys tri phrif nodwedd: enw cyntaf, enw olaf a employee_id ynghyd â rhywfaint o wybodaeth ychwanegol.

DEFNYDDIO. Mae'r gorchymyn USE yn caniatáu ichi nodi'r gronfa ddata rydych chi am weithio gyda chi yn eich DBMS. Er enghraifft, os ydych chi ar hyn o bryd yn gweithio yn y gronfa ddata gwerthu ac eisiau cyhoeddi rhai gorchmynion a fydd yn effeithio ar gronfa ddata'r gweithiwr, rhowch wybod iddynt gyda'r gorchymyn SQL canlynol:

Cyflogeion DEFNYDD

Mae'n bwysig bob amser fod yn ymwybodol o'r gronfa ddata rydych chi'n gweithio ynddo cyn cyhoeddi gorchmynion SQL sy'n trin data.

ALTER. Unwaith y byddwch chi wedi creu tabl o fewn cronfa ddata, efallai y byddwch am addasu ei ddiffiniad. Mae'r gorchymyn ALTER yn caniatáu ichi wneud newidiadau i strwythur y bwrdd heb ei ddileu a'i ail-greu. Edrychwch ar y gorchymyn canlynol:

ALTER TABLE personal_info ADD arian cyflog null

Mae'r enghraifft hon yn ychwanegu priodwedd newydd i'r tabl personol_info-cyflog cyflogai. Mae'r ddadl "arian" yn nodi bod cyflog cyflogai yn cael ei storio gan ddefnyddio ddoleri a fformat cents. Yn olaf, mae'r allweddair "null" yn dweud wrth y gronfa ddata ei bod yn iawn i'r maes hwn gynnwys unrhyw werth ar gyfer unrhyw weithiwr penodol.

DROP. Mae gorchymyn olaf yr Iaith Diffiniad Data, DROP, yn ein galluogi i ddileu gwrthrychau cronfa ddata cyfan o'n DBMS. Er enghraifft, os ydym am gael gwared ar y tabl personal_info a grëwyd gennym yn barhaol, byddem yn defnyddio'r gorchymyn canlynol:

TABL DROP personal_info

Yn yr un modd, byddai'r gorchymyn isod yn cael ei ddefnyddio i gael gwared ar gronfa ddata'r gweithiwr cyfan:

Gweithwyr DROP DATABASE

Defnyddiwch y gorchymyn hwn gyda gofal. Mae gorchymyn DROP yn dileu strwythurau data cyfan o'ch cronfa ddata. Os ydych chi am gael gwared â chofnodion unigol, defnyddiwch orchymyn DELETE yr Iaith Ymarfer Data.

Gorchmynion Iaith Manwlu Data

Defnyddir yr Iaith Manipulation Data (DML) i adfer, mewnosod ac addasu gwybodaeth gronfa ddata. Defnyddir y gorchmynion hyn gan bob defnyddiwr cronfa ddata yn ystod gweithrediad rheolaidd y gronfa ddata.

INSERT. Defnyddir gorchymyn INSERT yn SQL i ychwanegu cofnodion i dabl sy'n bodoli eisoes. Gan ddychwelyd at yr enghraifft bersonol o'r adran flaenorol, dychmygwch fod angen i'n hadran Adnoddau Dynol ychwanegu gweithiwr newydd i'w gronfa ddata. Gallech ddefnyddio gorchymyn tebyg i'r un hwn:

INSERT INTO personal_info values ​​('bart', 'simpson', 12345, $ 45,000)

Sylwch fod pedair gwerthoedd a bennir ar gyfer y cofnod. Mae'r rhain yn cyfateb i nodweddion y tabl yn y drefn y cawsant eu diffinio: first_name, lastname, employee_id and salary.

SELECT. Y gorchymyn SELECT yw'r gorchymyn a ddefnyddir yn fwyaf cyffredin yn SQL. Mae'n caniatáu i ddefnyddwyr cronfa ddata adennill y wybodaeth benodol y maen nhw'n ei ddymuno o gronfa ddata weithredol. Edrychwch ar ychydig o enghreifftiau, unwaith eto gan ddefnyddio'r bwrdd personol_info o gronfa ddata'r gweithiwr.

Mae'r gorchymyn a ddangosir isod yn adennill yr holl wybodaeth sydd wedi'i chynnwys yn y tabl personal_info. Sylwch fod y seren yn cael ei ddefnyddio fel cerdyn gwyllt yn SQL. Mae hyn yn llythrennol yn golygu "Dewiswch bopeth o'r bwrdd personol_info."

SELECT * O bersonol_info

Fel arall, efallai y bydd defnyddwyr am gyfyngu ar y nodweddion sy'n cael eu hadennill o'r gronfa ddata. Er enghraifft, efallai y bydd angen rhestr o enwau olaf yr holl weithwyr yn y cwmni ar yr adran Adnoddau Dynol. Byddai'r gorchymyn SQL canlynol yn adfer yr wybodaeth honno yn unig:

SELECT enw olaf o'r person FROM personal_info

Gellir defnyddio'r cymal LLE i gyfyngu ar y cofnodion sy'n cael eu hadennill i'r rhai sy'n bodloni'r meini prawf penodedig. Gallai'r Prif Swyddog Gweithredol fod â diddordeb mewn adolygu cofnodion personél yr holl weithwyr cyflogedig iawn. Mae'r gorchymyn canlynol yn adennill yr holl ddata sydd wedi'i gynnwys o fewn personal_info ar gyfer cofnodion sydd â gwerth cyflog sy'n fwy na $ 50,000:

SELECT * FROM personal_info Ble cyflog> $ 50000

DIWEDDARIAD. Gellir defnyddio'r gorchymyn DIWEDDARIAD i addasu'r wybodaeth a gynhwysir o fewn tabl, naill ai mewn swmp neu yn unigol. Tybwch fod y cwmni yn rhoi cynnydd cost-fyw o 3 y cant i bob gweithiwr yn eu cyflog bob blwyddyn. Gellid defnyddio'r gorchymyn SQL canlynol i wneud hyn yn gyflym i'r holl weithwyr a gedwir yn y gronfa ddata:

DIWEDDARIAD personol_info cyflog SET = cyflog * 1.03

Pan fydd y gweithiwr newydd, Bart Simpson, yn dangos perfformiad y tu hwnt i'r alwad o ddyletswydd, mae rheolwyr yn dymuno cydnabod ei gyflawniadau anelchog gyda chodi $ 5,000. Gellid defnyddio'r cymal LLE i Bart sengl am y cynnydd hwn:

DIWEDDARIAD personol_info cyflog SET = cyflog + $ 5000 LLE employee_id = 12345

Dileu. Yn olaf, gadewch i ni edrych ar y gorchymyn DELETE. Fe welwch fod cystrawen y gorchymyn hwn yn debyg i un o'r gorchmynion DML eraill. Yn anffodus, nid oedd ein hadroddiad enillion corfforaethol diweddaraf yn bodloni disgwyliadau ac mae Bart gwael wedi cael ei ddileu. Gellir defnyddio'r gorchymyn DELETE gyda chymal LLE i ddileu ei gofnod o'r bwrdd personol_info:

Dileu FROM personal_info WHERE employee_id = 12345

YMUNO

Nawr eich bod chi wedi dysgu pethau sylfaenol SQL, mae'n bryd symud ymlaen at un o'r cysyniadau mwyaf pwerus y mae'n rhaid i'r iaith eu cynnig - y datganiad JOIN. Mae datganiad JOIN yn eich galluogi i gyfuno data mewn tablau lluosog i brosesu symiau mawr o ddata yn effeithlon. Y datganiadau hyn yw lle mae gwir bŵer cronfa ddata yn byw.

Er mwyn archwilio'r defnydd o weithred Ymuno sylfaenol i gyfuno data o ddau dabl, parhewch gyda'r enghraifft gan ddefnyddio'r tabl PERSONOL_INFO ac ychwanegu tabl ychwanegol i'r cymysgedd. Tybwch fod gennych bwrdd o'r enw DISCIPLINARY_ACTION a grëwyd gyda'r datganiad canlynol:

CREATE TABLE disciplinary_action (action_id int not null, employee_id int not null, comments char (500))

Mae'r tabl hwn yn cynnwys canlyniadau camau disgyblu ar weithwyr cwmni. Fe welwch nad yw'n cynnwys unrhyw wybodaeth am y gweithiwr heblaw am rif y gweithiwr. Mae'n hawdd dychmygu nifer o senarios lle efallai y byddwch am gyfuno gwybodaeth o'r tablau DISCIPLINARY_ACTION a PERSONAL_INFO.

Cymerwch eich bod wedi'ch dasg o greu adroddiad sy'n rhestru'r camau disgyblu a gymerwyd yn erbyn pob gweithiwr sydd â chyflog yn fwy na $ 40,000. Mae'r defnydd o weithrediad JOIN, yn yr achos hwn, yn syml. Gallwn adennill yr wybodaeth hon gan ddefnyddio'r gorchymyn canlynol:

SELECT personal_info.first_name, personal_info.last_name, disciplinary_action.comments FROM personal_info, disciplinary_action WHERE personal_info.employee_id = disciplinary_action.employee_id AND personal_info.salary> 40000

Mae'r cod yn nodi'r ddau dabl yr ydym am ymuno yn y cymal ODDI ac yna'n cynnwys datganiad yn y cymal LLE i gyfyngu'r canlyniadau i gofnodion a oedd yn cyfateb IDau gweithwyr ac yn bodloni meini prawf cyflog yn fwy na $ 40,000.