SQL Fundamentals

Learje oer DDL, DML en JOIN's

De Struktureare Query taal is ien fan 'e basisfoarmblokken fan moderne database-arsjitektuer. SQL definiearret de metoaden dy't brûkt wurde om relaasje-databases op alle grutte platfoarms te meitsjen en te meitsjen. Op de eerste stuit kin de taal ferskriklik en komplek wêze, mar it is net alhiel dreech.

Dizze yntroduksje nei de fundamentale eftergrûn SQL nimt in koarte sjoch op guon fan 'e wichtichste kommando's dy't brûkt wurde om databases te meitsjen en te feroarjen.

Oer SQL

De goeie útspraak fan SQL is in ynhâldlik probleem yn 'e database database. Yn syn SQL-standert ferklearre it American National Standards Institute dat de offisjele útspraak is "es queue el." Dochs binne in protte database-professionals profesjonele nammen oan 'e útspraak fan' e slang 'fjirder.' De kar is jo.

SQL komt yn in protte aroma's. Oracle-databases brûke har eigen PL / SQL. Microsoft SQL Server makket gebrûk fan Transact-SQL. Alle farianten binne basearre op de industry standard ANSI SQL. Dizze ynlieding brûkt ANSI-konforme SQL-kommando's dy't wurkje op in moderne relaasje databanksysteem.

DDL en DML

SQL-kommando's kinne ferdield wurde yn twa haad sub-talen. De Data Definition Language (DDL) befettet de kommando's dy't brûkt wurde om databases en database-objekten te meitsjen en te ferneatigjen. Nei't de databankstruktuer definiearre is mei DDL, kinne databankadministrators en brûkers de Data Manipulation Language (DML) brûke om de daten yn te finen, te ûntfangen en te feroarjen.

Data Defining Language Commands

De Data Definition Language wurdt brûkt om database-objekten en database-objekten oan te meitsjen en te ferneatigjen. Dizze kommando's wurde primêr brûkt troch database-behearders yn 'e setup- en eftergrûn-fazen fan in database-projekt. Hjir is in sjogge nei de struktuer en gebrûk fan fjouwer basale DDL-kommando's:

MEITSJE. It ynstalljen fan in database-bestjoeringssysteem op in kompjûter lit jo in protte selsstannige databestannen meitsje en beheare. Jo kinne bygelyks in database fan klantkontakten bewarje foar jo ôfdieling fan ôfdieling en in personielsdatabank foar jo HR-ôfdieling. It kommando CREATE wurdt brûkt om elke fan dizze databases op jo platfoarm te fêstigjen. Bygelyks it kommando:

CREATE DATABASE meiwurkers

skeelt in lege databank mei de namme "meiwurkers" op jo DBMS. Nei it meitsjen fan de databank is de folgjende stap om tabellen te meitsjen dy't gegevens befetsje. In oare fariant fan it Kommando CREATE kin brûkt wurde foar dit doel. It kommando:

CREATE TABLE personal_info (first_name char (20) net nul, last_name char (20) net nul, employee_id int net null)

Set in tabel mei titel "personal_info" yn de aktuele databank. Yn it foarbyld befettet de tabel trije attributen: earste_name, last_name en meiwurker_id, mei in oantal ekstra ynformaasje.

BRÛKE. It kommando USE jout jo de databank op te jaan dat jo mei jo DBMS wurkje wolle. As jo ​​bygelyks wurkje yn 'e ferkeerd database en wolle jo guon kommando's útjaan dy' t ynfloed op de meiwurker databank, prefearje se mei it folgjende SQL kommando:

USE meiwurkers

It is wichtich om altyd bewust te wêzen fan 'e databank dy't jo wurkje yn it foarútútjaan fan SQL-kommando's dy't data geane.

FEROARJE. As jo ​​in tabel binnen in database hawwe, kinne jo har definysje wizigje. It kommando ALTER jout jo wizigingen oan te meitsjen fan 'e struktuer fan in tafel sûnder wiskje en werneare. Sjoch nei it folgjende kommando:

ALTER TABLE personal_info ADD salarisjild nul

Dit foarbyld tafoegje in nije attribúsje oan de persoanlike ynstelling tabel - in salaris fan 'e meiwurkers. It argumint "jild" bepaalt dat in salaris fan 'e meiwurker opsletten is mei in dollar en centsformaat. Uteinlik fertelt it keyword "null" de databank dat it is OK foar dit fjild om gjin wearde foar elke opjaan te befetsjen.

FALLE. It definitive kommando fan 'e Data Definition Language, DROP, lit ús allegear database-objekten fuortsmite fan ús DBMS. As jo ​​bygelyks de persoanlike ynfoemtabel dat wy kreëarre, wiskje wy it folgjende kommando brûke:

DROP TABLE personal_info

Hjirtroch sil it kommando hjirboppe brûkt wurde om de folsleine personielsdatabank te ferwiderjen:

DROP DATABASE meiwurkers

Brûk dit kommando mei soarch. It kommando DROP fuortsmiet allegear gegevensstrukturen fan jo database. As jo ​​persoanlike rekken ferwiderje wolle, brûk de kommando DELETE fan 'e Data Manipulation Language.

Data Manipulation Taalkommando's

De Data Manipulation Language (DML) wurdt brûkt om retrograde ynformaasje, ynfoegje en te feroarjen. Dizze kommando's wurde brûkt troch alle database-brûkers yn 'e routine operaasje fan de database.

YNFOEGJE. It kommando INSERT yn SQL wurdt brûkt om tafoegje oan in besteande tabel te taheakje. Gean werom nei it persoanlike ynformaasje fan 'e foarige paragraaf, foarkom dat ús HR-ôfdieling in nije meiwurker oan syn database oanfiere moat. Jo kinne in kommando brûke dy't dit liket:

INSERT yn persoanlike wearden ('bart', 'simpson', 12345, $ 45000)

Tink derom dat der fjouwer wearden binne foar it record. Dizze oerienkomme mei de tabelattributen yn 'e oarder dy't hja definieare: firstname, lastname, employee_id en salaris.

ÚTKIEZE. It kommando SELECT is it meast brûkte kommando yn SQL. It soarget dat database-brûkers de spesifike ynformaasje dy't se winne wolle fan in operaasje-database. Sjoch op in pear foarbylden wer, brûk it gebrûk fan 'e persoanlike tafel fan' e meiwurker databank.

It ûndersteande hjirûnder omskreaun befettje alle ynformaasje dy't binnen de persoanlike ynstelling tabele befettet. Tink derom dat it asterisk brûkt wurdt as in wildcard yn SQL. Dit literatuer betsjut "Alles selektearje út 'e persoanlike tabel tabel."

Selektearje * FROM personal_info

As alternatyf kinne brûkers wolle de attributen beheine dy't út 'e databank werjûn wurde. Bygelyks, de ôfdieling Human Resources kin in list fan de lêste nammen fan alle meiwurkers yn 't bedriuw hawwe. It kommende SQL-kommando soe allinich dizze ynformaasje ophelje:

SELEKTE last_name FROM personal_info

De WHERE-klausel kin brûkt wurde om de sketsen te beheinen dy't opnommen wurde oan dyjings dy't spesifike kritearia foldwaan. De CEO kin ynteressearje foar it besjen fan persoanlike registers fan alle heech betelle meiwurkers. It kommende kommando skriuwt allegear de gegevens dy't yn persoan_info befetsje binne foar akten dy't in salariswearde hawwe grutter as $ 50.000:

SELEKTE * FROM personal_info WHERE salaris> $ 50000

UPDATE. It kommando UPDATE kin brûkt wurde om de ynformaasje te feroarjen binnen in tafel, yn bulk of yndividu. Asjebleaft dat it bedriuw jierliks ​​alle meiwurkers in 3 persint kosten fan libbene ferheging yn har salaris jildt. It kommende SQL-kommando koe brûkt wurde om dizze applikaasje fluch oan te passen oan alle yn 'e databank bewarre meiwurkers:

UPDATE persoan_info SET salaris = salaris * 1.03

As de nije meiwurker Bart Simpson de útfiering boppe en fierder de oprop fan plicht lit, beheart it management syn stellare resultaten mei in $ 5.000 opheffing. De WHERE-klausel koe brûkt wurde om Bart foar dizze opheffing út te fieren:

UPDATE persoan_info SET salaris = salaris + $ 5000 WHERE employee_id = 12345

DELETE. Uteinlik litte wy sjen nei it kommando DELETE. Jo sille fine dat de syntaksis fan dizze kommando is te ferlykjen mei dy fan de oare DML-kommando's. Spitigernôch hawwe ús lêste korrespondinsjeferieningsrapport net fergees ferwachtingen en de minne Bart is ôflaat. It kommando DELETE mei in WHERE-klausel kin brûkt wurde om syn record te wiskjen út 'e persoanlike tabel tabel:

DELETE FROM personal_info WHERE employee_id = 12345

JOIN's

No't jo de basis fan SQL leard hawwe, is it tiid om te gean nei ien fan 'e machtichste begripen de taal hat te bieden - de JOIN-opjefte. In JOIN-deklaraasje jout jo te kombinearjen gegevens yn meardere tabellen om effektive grutte data fan gegevens te ferwurkjen. Dizze ferklearrings binne wêr't de wiere krêft fan in database is.

Om it gebrûk fan in basale JOIN-operaasje te ûndersykjen om gegevens út twa tabellen te kombinearjen, bliuwend mei it foarbyld mei de tabel PERSONAL_INFO en in oanfoljende tafel oanmeitsje oan 'e ming. Tink derom dat jo in tabel neamd DISCIPLINARY_ACTION dat makke is mei de folgjende deklaraasje:

CREATE TABLE disiplinary_action (action_id int net null, employee_id int net null, kommentaren char (500))

Dizze tabel befettet de resultaten fan disiplinêre aksjes op bedriuwen meiwurkers. Jo sille besjen dat it gjin ynformaasje hat oer de meiwurker oars as it meiwurkernûmer. It is maklik foar te stellen foar in skaaimerk wêr't jo wolle dat ynformaasje fan de DISCIPLINARY_ACTION en PERSONAL_INFO-tabellen kombinearje wolle.

Tink derom dat jo opnommen binne mei it meitsjen fan in rapport dy't de disiplinêre aksjes liede foar alle meiwurkers opnommen mei in salaris grutter as $ 40.000. It brûken fan in JOIN-operaasje, yn dit gefal, is ienfâldich. Wy kinne dizze ynformaasje brûke mei it folgjende kommando:

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

De koade bepaalt de twa tabellen dy't wy wolle yn 'e FROM-klausel te wikseljen en dêrnei in ferklearring yn' e WHERE-klausel om de resultaten te begripen oan rekken dy't befetsje meiwurker fan wurknimmers en hawwe ús kritearia fan in salaris grutter as $ 40.000.