Alt du trenger for å komme i gang med MySQL

Utvikling av webapplikasjoner ved hjelp av en statisk datalager hvor data må oppdateres, lagres og manipuleres ofte, kan være en tung oppgave. Men denne artikkelen vil introdusere deg til verden av relationsdatabaser, slik at du kan maksimere dataens potensial.

Introduksjon

Med den konstante utvidelsen av webapplikasjoner og brukerdrevne nettsteder blir det en nødvendighet å få en måte å lagre data på i
organisert mote som kan hentes og manipuleres på fluen; noe som er umulig med statisk innhold.
For å oppnå dette må en database benyttes!
En database i sin enkleste form er innsamling av data på en organisert måte om det bruker et arkivskap eller en datastyrt database.
Ved å integrere en database i ditt nettsted eller webapplikasjon kan du lagre og hente data ved hjelp av bestemte kommandoer.
For denne artikkelen vil vi bruke en relasjonsdatabaseadministrasjonspakke kalt MySQL.
Dette er åpen kildekode programvare tilgjengelig under GNU generell lisens som selvfølgelig gjør det gratis!
MySQL-nettstedet finner du på http://www.mysql.com/ et hvilket som helst ord som du ser understreket i denne artikkelen, indikerer en MySQL-funksjon, du finner full dokumentasjon på disse funksjonene på MySQL-websiden.

TIPS: For å søke på MySQL-nettsiden for en funksjon, må du bare legge til funksjonsnavnet på MySQL-nettadressen. EKSEMPEL: http://www.mysql.com/SELECT dette eksemplet vil søke etter velg.

Jeg har laget en modifisert versjon av Jesse Rudermans Google Search Bookmarklet for å søke i MySQL 5.1 dokumentasjonen. For å bruke dette bare uthev det understrukte ordet, og trykk deretter på bokmerket som skal tas til søkeresultatene. Alternativt kan du lansere bokmerket med ingenting uthevet for å få en ledig boks og be deg om å skrive inn det du ønsker å søke.
bookmarklet: > MySQL SØK

Forstå en database

For å lagre data i en database må det først opprettes en database. Denne databasen kan da lagre mange tabeller (forestille et arkivskap som lagrer mange filer); hvert bord må ha definerte kolonner, og disse kolonnene er opprettet for å lagre spesifikke data (forestille et dataregistreringsskjema). Det er mulig å begrense hva som kan skrives inn i disse, for eksempel numeriske data eller tegngrenser.
Når dataene er lagt inn i databasen, vil det bli lagret i et passende tabell. Tabellen består da av rader og kolonner omtrent som et regneark da data lagres og vises i en tabellform. MySQL kan håndtere flere databaser som kan inneholde flere tabeller. Tilgangsnivåer kan gis til ulike brukere for å gi eller tilbakekalle bestemte rettigheter.
MySQL bruker kommandoer / funksjoner basert på SQL (strukturert spørrespråk). Dette tillater oss å bruke søkeord for å spesifisere hvilke data vi ønsker å returnere. MySQL implementerer deretter noen ekstra funksjoner for å forbedre funksjonaliteten som er tilgjengelig. Nøkkelord er generelt lett å forstå og ofte relaterer seg til et engelsk ord eller uttrykk (E.G.. Å VELGE, OPPDATER, HVOR).

Starter

I denne delen vil vi dekke:

  • Installere MySQL på din lokale maskin (Windows)
  • Konfigurere din lokale MySQL-installasjon (Windows)
  • Kobler til din lokale database
  • Koble til en ekstern database
  • Skriv inn og formater forespørsler
  • Formatering og logging resultater
  • Sikkerhetskopiere en database
  • Gjenoppretter en database

For å kunne bruke MySQL er det nødvendig for oss å få det installert, enten det er på vårt lokale system eller på en ekstern webverten. Men for å koble til enten må vi først ha et grensesnitt å bruke.

I dag skal vi bruke Essentials-pakken som er tilgjengelig på MySQLs nettsted på http://dev.mysql.com/downloads/.
På tidspunktet for skriving er den nåværende stabile versjonen 5.1, og jeg skal diskutere hvordan jeg installerer den på Windows-operativsystemet. Først finner du programvaren du trenger, jeg skal bruke 64-biters Windows-versjonen, men du kan velge ellers avhengig av systemarkitekturen. For denne artikkelen har jeg valgt å bruke Essentials-pakken, da den inneholder alle funksjonene som trengs. Du kan sammenligne forskjellene mellom Windows-versjonene på http://dev.mysql.com/doc/refman/5.1/en/windows-choosing-package.html.

Installere MySQL på din lokale maskin

Når du har lastet ned den riktige installasjonen kjørbar, start den og du vil bli bedt om det ovenstående vinduet. Som du kan se, installerer jeg versjon 5.1.30. Trykk Neste for å gå videre til neste skjermbilde.

Jeg har valgt å beholde den typiske installasjonen, men vær så snill å velge hvilke komponenter du vil installere. Du trenger MySQL-serveren og datafiler hvis du jobber på din lokale maskin; men hvis du har en ekstern database tilgjengelig for deg som du vil bruke, kan du velge å ikke installere disse funksjonene. Du vil trenge MySQL kommandolinjeskallet, da dette er programmet vi skal bruke. Igjen hvis du ikke bruker en lokal database, kan du hoppe over kommandolinjeverktøyene og konfigurasjonen av server-forekomster. Denne artikkelen vil ikke dekke ved å bruke C med MySQL, men hvis du utvikler med C, kan du velge å installere dette. Trykk Neste for å gå videre til neste skjermbilde.

Du blir da bedt om å bekrefte valgene dine, trykk på Installer hvis du er glad ellers trykk Tilbake for å foreta endringer.

Din installasjon vil starte, på dette tidspunktet kan du få avbrudd fra et antivirusprogram eller Windows Vista-brukerkontokontroll, det vil angi at et program ber om å installeres eller få tilgang til bestemte filer. Dette vil bli signert av MySQL AB; Dette er selskapet som driver og vedlikeholder MySQL som du kan lese om på http://www.mysql.com/about/.

Når du er installert, må du kontrollere at konfigurer MySQL Server nå (hvis installert), og trykk på ferdig. Gratulerer med at du har installert MySQL Server / komponenter. Deretter skal MySQL-serverens instanskonfigurasjonsveiviser laste. Men hvis den ikke starter, ikke bekymre deg, kan du få tilgang til den i mappen MySQL-programmer (hvis den er installert).

Konfigurere din lokale MySQL-installasjon

Vi skal nå konfigurere installasjonen din (hvis du installerte serveren), trykk Neste for å gå videre til neste skjermbilde.

Du har nå muligheten til å bruke en standardkonfigurasjon; men jeg vil bruke en detaljert konfigurasjon som vil tillate meg å tilpasse ulike aspekter av min installasjon.

Jeg har valgt dette som en utvikler maskin; men du kan velge hvilket alternativ du foretrekker. Utviklermaskinen tillater full bruk, men det vil forhindre at mange ressurser blir brukt. Trykk Neste for å gå videre til neste skjermbilde.

Siden denne installasjonen er beregnet for utviklingsformål og ikke for et bestemt prosjekt, valgte jeg en multifunksjonell database som tillater bruk av InnoDB og MyISAM lagringsmotor. Du kan lese mer om lagringsmotorer på http://dev.mysql.com/doc/refman/5.1/en/storage-engines.html. Trykk Neste for å gå videre til neste skjermbilde.

Du må nå velge hvor du vil lagre InnoDB datafilen, avhengig av lagringsplassen du har tilgjengelig, kan det hende du vil endre dette hvis du har en større kapasitet eller raskere stasjon tilgjengelig. Trykk Neste for å gå videre til neste skjermbilde.

Du må nå sette opp mengden samtidige tilkoblinger som du skal koble til databasen din på en gang. Valg av DSS tillater opptil 100 tilkoblinger, men utgjør i gjennomsnitt 20 samtidige tilkoblinger. OLTP tillater opptil 500 samtidige tilkoblinger. Men for vår utvikler maskin vil vi ofte bare lage en enkelt forbindelse; derfor stiller jeg den manuelle innstillingen til 5. Trykk Neste for å gå videre til neste skjermbilde.

Du får nå valget om å tilpasse TCP / IP-innstillingene. Jeg har merket av i avkrysningsruten for å deaktivere dette. Ved å deaktivere dette forhindrer det eksterne forbindelser til databasen. Du kan da angi servermodusen, jeg forlot denne boksen krysset (du kan lese mer om servermodi i detalj på http://dev.mysql.com/doc/refman/5.1/en/server-sql-mode.html) . Trykk Neste for å gå videre til neste skjermbilde.

Vi må nå velge hvilket tegnsett / koding vi skal bruke. Jeg valgte UTF8 da det tillates at forskjellige språk blir innlevert (internasjonale lesere). Trykk Neste for å gå videre til neste skjermbilde.

Du må nå avgjøre om du vil kjøre serveren som en tjeneste, du kan tilpasse servicenavnet med rullegardinlisten. Ved å installere MySQL som en tjeneste som standard, blir serveren startet automatisk og vil starte på nytt i tilfelle feil. Jeg anbefaler å bruke innstillingen ovenfor. Du får også muligheten til å inkludere MySQL Bin-filene i Windows-banen. Dette gjør at vi kan ringe MySQL direkte fra kommandolinjen, jeg anbefaler også å gjøre dette. Trykk Neste for å gå videre til neste skjermbilde.

Du må nå oppgi et passord for rotkontoen. Dette er "master" -kontoen med full privilegier (kontoen brukernavnet vil være "root"); Jeg anbefaler ikke å forlate dette tomt! Valget for å aktivere tilgang fra rotmaskiner er ikke krysset som standard; Jeg holdt det på denne måten da jeg hadde deaktivert TCP / IP-innstillinger, men det viser også et høyere sikkerhetsrisikopotensial hvis detaljer faller i feil hender. Jeg har også deaktivert valget for å aktivere en anonym konto da denne databasen er beregnet til personlig bruk. Trykk Neste for å gå videre til neste skjermbilde.

Din installasjonskonfigurasjon er nå klar til å brukes, trykk utfør for å starte prosessen.
Du bør da motta en vellykket konfigurasjonsmelding. Når du er ferdig, trykker du ferdig for å avslutte denne veiviseren. Nå har du fullført konfigurasjonen.
Hvis du installerer MySQL på et annet operativsystem, eller hvis du ønsker å referere tilbake til den offisielle dokumentasjonen, kan du finne den på http://dev.mysql.com/doc/refman/5.1/en/installing.html.

Kobler til din lokale database

Nå som du har installert serveren, kan vi nå koble til den!

Jeg skal bruke Windows CLI (kommandolinjegrensesnitt) for å initialisere tilkoblingen, men du kan bruke MySQL CLI funnet i MySQL-programmappen.
Først åpner du en kommandoprompt ved å åpne løpedialogboksen som er funnet på startmenyen, og deretter skriver du inn CMD og trykker på [ENTER]. hvor du vil bli vist et vindu som ligner på det nedenfor.

Den første kommandoen som vi skal skrive, kommer til å koble til serveren med brukernavnet og passordet.
Det er flere måter å koble til serveren, som alle har samme oppgave.
MySQL-tilkoblingskommandoen bruker følgende syntaks:

mysql [vert] [port] [brukernavn] [passord] [database]

Hver av disse argumentene kan sendes til kommandoen mysql som følger:

  • --vert = vert eller -host
  • --port = port eller -P
  • --brukernavn = brukernavn eller -brukernavn
  • --passord = passord eller -passord
  • databasen er gitt bare som en streng (E.G. db_name)

Merk: Ved å levere hele passordstrengen som dette, vil den være synlig på skjermen, hvis du foretrekker at du bare kan levere kommandoen -p eller -passord uten passord for å bli presentert med en skjult passordmeldingsprompt. Vi trenger heller ikke en kommandoterminator når vi skriver inn i Windows CLI for øyeblikket ikke MySQL.

Så som vi ønsker å koble til vår lokale datamaskin, kan vi eliminere vertsargumentet (se kobling til en ekstern vert senere i denne artikkelen). Vi ønsker å logge inn som vår rotkonto for å gi oss full privilegier, så vi skal bruke vårt brukernavn og passord; Som vi for øyeblikket ikke har noen databaser satt opp, vil vi ikke levere databasargumentet heller.
Jeg vil koble til brukerkontoen "root" på min lokale maskin med passordet "hemmelig" ved å bruke følgende kommando:

mysql -uroot -psecret

Dette kobles til MySQL ved hjelp av roten brukeren med et hemmelig passord. Følgende kommandoer vil oppnå det samme resultatet.

mysql - brukernavn = rot - passord = hemmelig
mysql -uroot --password = hemmelig
mysql - brukernavn = root -psecret

Brukerkontoen "root" er Masters MySQL-konto som ble opprettet under installasjonen; Dette er den samme brukeren du burde koble til som. Vær imidlertid oppmerksom på at det ikke anbefales å la en rotkonto slå på en webinstallasjon, vennligst se brukerkontoer og privilegier på MySQLs nettsted for ytterligere informasjon.(Http://dev.mysql.com/doc/refman/5.1/en/adding-users.html)

Koble til en ekstern database

(hopp over dette hvis du kobler til en lokal database) For å koble til din eksterne database, ofte levert av en hostingleverandør, må du kjenne IP-adressen eller vertsnavnet til databasen din (og muligens portnummeret hvis det har vært endret standard er 3306). Du vil koble til dette som du ville en lokal database bare erstatte verten og port argumenter avhengig av din hosting konfigurasjon.

frakobling

For å koble fra MySQL-økten, send kommandoen QUIT (eller \ q).

SLUTTE

Formatering av spørringer og resultater

Nå som vi er koblet til (etter å ha mottatt "Velkommen til MySQL-skjermen." -Meldingen) er vi klare til å sende kommandoene våre, men det er noen andre punkter å merke seg.

MySQL tillater bruk av hvitt plass uten å påvirke kommandoene som er angitt. Dette kommer til nytte for å gjøre spørsmålene våre så lesbare som mulig (se bildet under). Begge disse spørsmålene gir det samme resultatet, men den andre er betydelig lettere å lese.

Merk: Denne spørringen virker ikke som vi ikke har en databaseoppsett, dette er kun for demo-formål!
Du kan se koden jeg brukte nedenfor, begge de oppgitte spørringene er identiske, men ved å trykke på [ENTER] kan CLI fortsette kommandoen på en egen linje. MySQL har implementert en funksjon for å avbryte et innspill hvis kommandoen din spenner over flere linjer, bare utstede klare kommandoen "\ c".

VELG fld_1longlonglong, fld_2longlonglong, fld_3longlonglong, fld_4longlonglong, fld_5longlonglong, fld_6longlonglong, fld_7longlonglong FRA tbl_name WHERE fld_1longlonglong = 'datavalue';

Dette betyr imidlertid også at en spesiell kommando må sendes for å indikere at det er slutt på kommandoen. Vi kan bruke ett av følgende:

  • ;
  • \ g
  • \ G

De to første terminatorene er identiske, men den tredje når de brukes i en spørring som returnerer data, viser resultatet i et vertikalt bord i stedet for horisontalt. Dette er flott å huske på hvis vi returnerer informasjon fra et bord som har mange kolonner, da det kan bli ulæselig.

Gjenopprette en database

Neste vil vi importere en SQL-fil, dette er den samme prosessen som du ville gjøre hvis du ble gjenopprettet en database-sikkerhetskopiering. Denne filen har rett og slett alle kommandoene som er nødvendige for å lage en duplikat av databasen på den oppgitte backuptiden.
Ideelt sett ville vi lage vår egen database, men å lage en database kan være et komplekst emne, inkludert relasjoner, navngivningskonvensjoner, lagringsmotorer og feltinnstillinger som ligger utenfor rammen av denne artikkelen.

Vi skal bruke en forhåndsbehandlet database tilgjengelig på http://dev.mysql.com/doc/#sampledb bla ned til du ser eksempeldatabasene, og du vil fortsette å laste ned verden database

(World.sql).

Når du er koblet til MySQL, skal vi gjenopprette verdensdatabasen, da det er en sikkerhetskopi av en tidligere database. Denne filen er bare en liste over MySQL-kommandoer som vil bli kjørt for å lage den nye databasen. Denne SQL-filen inneholder bare tabelldata og lagrer ikke databaseinformasjon, derfor må vi først opprette en database for å lagre tabellene (se analogien i starten av artikkelen).
Merk: For å lagre lengden på denne artikkelen vil jeg plassere flere kommandoer i kodestykket, du kan skille disse kommandoene eller gi dem sammen utkikk etter kommandoterminatene som tidligere ble vist i denne artikkelen. Vær også oppmerksom på at MySQL-funksjonene er ikke saksfølsomme så SELECT er det samme som velg og SeLEcT. Personlig kapitaliserer jeg MySQL-funksjoner for å gjøre spørsmålene mine så enkle å lese som mulig, da spørringer blir lengre og mer komplekse, blir dette en verdifull funksjon ved siden av hvite rom.

For å lage databasen skal vi utstede CREATE DATABASE kommando, en gang opprettet, skal vi da BRUK databasen.

CREATE DATABASE db_world; BRUK db_world;

Tid for å importere sikkerhetskopieringen, er det mange måter å gjøre dette på, kjent som batchbehandling (http://dev.mysql.com/doc/refman/5.0/en/batch-commands.html). Siden vi er koblet til MySQL, skal vi allerede bruke KILDE kommando etterfulgt av vårt filnavn. Jeg har hentet "world.sql" -filen fra zip-mappen og plassert den på min C: drive root, du må kjenne den absolutte banen til kildefilen din. Hvis du bare oppgir filnavnet ditt, vil MySQL se etter kilde i mappen du lanserte kommandoprompt fra (C: \ USERS \ USERNAME på vista C: \ Documents and Settings \ Brukernavn
på XP). Du kan ikke bla til en annen katalog mens du bruker MySQL-grensesnittet, så sørg for at du gir den riktige absolutte banen. Etter å ha utstedt denne kommandoen, vil CLI-vinduet utstede hver av kommandoene i SQL-filen, når du er ferdig vil du bli returnert til mysql> -prompten.

KILDE C: \ world.sql;

Nei, du har en fullt fungerende database til din disposisjon. Men vi vet ennå ikke hva det inneholder! La oss gjøre litt dykking rundt; vi skal bruke følgende kommandoer:

  • VIS TABELLER; - Dette viser tabellene i gjeldende database.
  • BESKRIV tbl_name; - dette viser hvilke felt som finnes i den angitte tabellen.
VIS TABELLER;

Etter å ha utstedt kommandoen, vet vi nå at databasen inneholder tre tabeller: "by", "land" og "landsspråk". Deretter skal vi finne ut hvilke felt disse tabellene lagrer. Du vil utstede DESCRIBE tbl_name for hver av tabellene.

Etter at du har utstedt DESCRIBE-kommandoen for landtabellen, vil du se under at den returnerte et ulæselig rot, for å løse dette, bruk bare \ G-terminatoren i stedet for;.

BESKRIV by; BESKRIV land BESKRIV land \ G BESKRIV landjord;

Nå har vi all den informasjonen vi trenger for å manipulere tabellene som vi ønsker, vi har databasen brukernavn, passord, databasenavn, tabellnavn og feltnavn hvis du utvikler seg på et annet språk som PHP, dette er informasjonen du vil kreve å returnere data til systemet ditt (se http://php.net/mysql).

Logging resultater

Vi kan velge å logge utdata fra MySQL-grensesnittet. Vi gjør dette ved å sende kommandoen \ T filename.txt. For å slutte å logge ut, utstedes kommandoen \ t. Nedenfor eksempel lagres en fil som heter log.txt til rotkatalogen på E: harddisken. På min maskin er dette en ekstra harddisk, vær oppmerksom på at du må ha tillatelse til å få tilgang til denne stasjonen; Du vil ikke kunne skrive til Windows-installasjonsdriveren din i Windows Vista uten å starte MySQL fra en forhøyet kommandoprompt.

\ T E: \ log.txt VIS TABELLER; \ t
 E: \ log.txt innhold: mysql> VIS TABELLER; + -------------------- + | Tables_in_db_world | + -------------------- + | by | | land | | countrylanguage | + -------------------- + 3 rader i settet (0.00 sek) mysql> \ t

Sikkerhetskopiere en database

MySQL-skjermen kommer med en utvidelse kalt mysqldump; som du kanskje forventer dumper den nødvendige informasjonen fra databasen for å kunne lage en nøyaktig kopi. Kommandoen mysqldump bruker følgende syntaks:

 mysqldump [brukernavn] [passord] [database navn]> [dump file]

For å starte dette bør du kobles fra MySQL-økten.
Følgende kode logger inn i MySQL-sesjonen med root-brukerkontoen med hemmelig passord, og dumper deretter tabellen db_world til filen db_worldbak.sql.

 mysqldump -uroot -psecret db_world> db_worldbak.sql

Konklusjon

Etter å ha lest denne artikkelen, håper jeg at du har fått en fast forståelse av hvordan du kan grensesnitt med mysql på kommandolinjenivå. Noe som kan vise seg å være nyttig som kommandoer, kan sendes direkte til MySQL-databasen i stedet for via et annet skriptspråk. Vennligst ikke stopp her, http://dev.mysql.com/doc/ virkelig er en stor ressurs, og på ingen tid vil du lage din egen database. Nedenfor har jeg skrevet noen grunnleggende spørsmål for å søke i verdensdatabasen og noen eksempler for deg å prøve. Lar se om du kan forstå dem, om ikke igjen vet du hvor dokumentasjonen er plassert.

VELG Navn, Befolkning FRA By WHERE CountryCode = "GBR" ORDER AV Befolkning ASC GRENSE 0,5 \ G

På engelsk denne spørringen velger og returnerer navn og befolkning FRA bordet byen HVOR Landskoden er GBR, resultatene filtreres deretter med REKKEFØLGE ETTER Befolkning ASC (stigende befolkning) og er da GRENSEed for å returnere de første 5 resultatene. Denne spørringen viser navnet og befolkningen til de minst 5 befolket byene i Storbritannia.

Og en til veien...

 Velg land = 'Engelsk' BESTILL BY by.Population ASC LIMIT 5,5 \ G

På engelsk denne spørringen Å VELGEs data, det CONCATEnater Navn fra bybordet og Språk fra countrytabellen og viser resultatene SOM Beskriv spørsmålet også Å VELGEs Befolkning fra bybordet. Igjen dette spørsmålet Å VELGEs sine data FRA bytabellen og countrytabellen, returnerer dette data der landets landskode er den samme som landskoden til landsspråket. Dataene filtreres for å vise land HVOR der landskoden er GBR OG Språket er engelsk, dette er da REKKEFØLGEed AV økende befolkning, og resultatene er GRENSEed for å vise resultatene fra 6 til 10. Denne spørringen er kjent som en INNER JOIN, som to tabeller er koblet sammen i spørringen. Denne spørringen vil vise den 6. til den 10. minste befolkede citerer med GBR landskoden som snakker engelsk.

Hvordan visste jeg hvilke data for å skrive disse spørsmålene for deg spør! Ved å kjøre følgende SELECT-spørring bruker den wild card-tegnet til å velge alle feltene og returnere alle dataene i den angitte tabellen. Fra resultatet av spørringen fikk jeg en forståelse av hva som var inkludert, og jeg laget noen scenarier som jeg ønsket å spørre.

VELG * FRA tbl_navn;

Her er noen funksjoner som du kanskje vil se nærmere på for å komme i gang:

  • Å VELGE
  • FRA
  • HVOR
  • GRENSE
  • REKKEFØLGE ETTER
  • OG
  • ELLER
  • CONCAT
  • VIS DATABASER
  • BRUK
  • SKAPE
  • VIS TABELLER
  • BESKRIVE
  • OPPDATER

Utkikk etter en oppfølgingstutorial om henting og manipulering av data. Ta gjerne spørsmål i kommentarene, og jeg vil gjøre mitt beste for å svare på dem. Pass på at du starter et spørsmål med #Q så jeg kan finne dem!

  • Abonner på NETTUTS RSS-feed for flere daglige webutviklinger og artikler.