Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer
Artiklar > Databaser & SQL

MySQL5 lagrade procedurer - introduktion

Inledning
När MySQL AB lanserade MySQL5, så var det den största uppdateringen av databasen MySQL sedan version 4.
I och med version 5 så kunde man använda Stored Procedures (Lagrade Procedurer).

För att förstå denna artikel fullt ut bör du ha i bakhuvudet att den riktar sig främst till de som redan vet vad MySQL är och har grundläggande databaskunskaper. Om du inte har en blekaste aning om vad MySQL är för något, så spelar det ingen roll om du läser artikeln eller inte. Du kommer inte att förstå särskilt mycket.

 

Vad behöver jag för program?
Det enda du behöver förutom MySQL5 är en SQL editor.
Jag använder Navicat MySQL. Man kan naturligtvis använda PhpMyAdmin om man så vill.

 

Vad är en lagrad procedur?
En lagrad procedur är en funktion som innehåller sqlkod som utför något. En lagrad procedur sparas i själva databasen. Man anroppar en lagrad procedur genom att skriva CALL. Fördelarna med en lagrad procedur är att
man inte behöver skriva samma sqlkod om och om igen. Utan man behöver bara anroppa den. Det sparar en hel del utvecklingstid.


Syntax
Så här ser själva procedurkroppen ut


    CREATE PROCEDURE <procedurnamn>(<paramenterlista>)

    BEGIN

    END



Det är viktigt att ge sina procedurer bra namn. Namn som talar om vad proceduren gör.
Börja alltid ett namn med prefixet sp_

 

Din första procedur
Nu ska vi skriva våran första procedur. Den kommer att skriva ut Hello World! Vi döper proceduren till sp_hello.
Men innan vi kan skapa våran procedur måste vi ha en Schema (Databas) först, om du inte redan har en.

Du skapar ett schema genom att skriva


    CREATE SCHEMA test;





Nu när vi har gjort det så är det bara att sätta igång med procedurskapandet.

    CREATE PROCEDURE sp_hello()

    BEGIN

       SELECT 'Hello World!';

    END





För att exekvera proceduren, skriv

    CALL sp_hello();





Resultatet ska bli

    Hello World!



Nu ska vi ändra proceduren så att den tar en IN paramenter. med en IN parameter kan du skicka in ett värde i proceduren.
Det finns även OUT paramenter som skickar tillbaka ett värde, och INOUT parameter som både kan ta emot och skicka tillbaka värden.


Denna procedurer döper vi till sp_hello2.


    CREATE PROCEDURE sp_hello2(IN name VARCHAR(30))

    BEGIN

       SELECT CONCAT('Hello ',name,'!');

    END





För att exekvera proceduren, skriv

    CALL sp_hello2('Kalle');





Resultatet blir

    Hello Kalle!




Sammanfattning
Detta var bara en kort introduktion till Lagrade procedurer i MySQL5.

Länkar
    http://www.mysql.com

    http://www.navicat.com


Böcker

    MySQL Stored Procedures Programming
      Språk:   Engelska
      ISBN:     0596100892

      En mycket bra bok. Den tar inte enbart upp Lagrade procedurer. Utan går igenom triggers och Transaktioner.
   

 

Skapades: 2007-08-07 00:15:32
Skribent: chrillemeter
Lästs 2611 gånger
Betyg: 0 (artikeln har endast 0 röster, det krävs minst 5 för ett betyg)

Kommentarer

pbf sa den 25 september 2007 kl 21:31:
Ser fram emot fler artiklar om detta ämne.
Bra grund, ice.
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy