{"id":10150,"date":"2024-04-13T22:38:29","date_gmt":"2024-04-13T19:38:29","guid":{"rendered":"https:\/\/sunucun.com.tr\/bilgi\/?post_type=dt_articles&#038;p=10150"},"modified":"2026-02-07T08:41:23","modified_gmt":"2026-02-07T05:41:23","slug":"mysqlde-stored-procedures-tekrar-kullanilabilir-sql-kodlari-yazma","status":"publish","type":"post","link":"https:\/\/sunucun.com.tr\/blog\/mysqlde-stored-procedures-tekrar-kullanilabilir-sql-kodlari-yazma\/","title":{"rendered":"5 Ad\u0131mda MySQL&#8217;de Sakl\u0131 Prosed\u00fcrler: Tekrar Kullan\u0131labilir SQL Kodlar\u0131 Yazma"},"content":{"rendered":"\r\n<p class=\"wp-block-paragraph\"><strong>Giri\u015f:<\/strong><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">MySQL&#8217;de sakl\u0131 prosed\u00fcrler, tekrar kullan\u0131labilir ve mod\u00fcler SQL kodlar\u0131n\u0131 yazmak i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Sakl\u0131 prosed\u00fcrler, veritaban\u0131 i\u015flemlerini ger\u00e7ekle\u015ftirmek i\u00e7in bir dizi SQL ifadesini i\u00e7eren bir bloktur. Veritaban\u0131 y\u00f6netiminde, \u00f6zellikle b\u00fcy\u00fck \u00f6l\u00e7ekli projelerde, tekrar eden i\u015flemler ve kompleks sorgular s\u0131k\u00e7a kar\u015f\u0131m\u0131za \u00e7\u0131kar. Bu t\u00fcr i\u015flemler i\u00e7in sakl\u0131 prosed\u00fcrler, kod tekrar\u0131n\u0131 azaltmak, y\u00f6netimi kolayla\u015ft\u0131rmak ve performans\u0131 art\u0131rmak i\u00e7in idealdir. Bu makalede, <a href=\"https:\/\/www.sunucun.com.tr\/blog\/dt-articles\/mysqlde-stored-procedures-tekrar-kullanilabilir-sql-kodlari-yazma\/\">MySQL&#8217;de sakl\u0131 prosed\u00fcrlerin ne oldu\u011funu, nas\u0131l olu\u015fturuldu\u011funu ve kullan\u0131ld\u0131\u011f\u0131n\u0131<\/a> detayl\u0131 bir \u015fekilde ele alaca\u011f\u0131z.<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li><strong>Sakl\u0131 Prosed\u00fcr Nedir?<\/strong><\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Sakl\u0131 bir prosed\u00fcr, veritaban\u0131 \u00fczerinde belirli g\u00f6revleri yerine getirmek i\u00e7in kullan\u0131lan, ad\u0131yla \u00e7a\u011fr\u0131labilen ve bir dizi SQL ifadesinden olu\u015fan bir yap\u0131land\u0131rmad\u0131r. Bu prosed\u00fcrler, belirli bir i\u015flevi yerine getirmek i\u00e7in tekrar kullan\u0131labilir kod bloklar\u0131 olarak d\u00fc\u015f\u00fcn\u00fclebilir. \u00d6rne\u011fin, m\u00fc\u015fteri verilerini g\u00fcncellemek, belirli raporlar\u0131 olu\u015fturmak veya karma\u015f\u0131k sorgular\u0131 bir araya getirmek gibi i\u015flemler i\u00e7in sakl\u0131 prosed\u00fcrler kullan\u0131labilir. Sakl\u0131 prosed\u00fcrler, sadece kod tekrar\u0131n\u0131 azaltmakla kalmaz, ayn\u0131 zamanda veritaban\u0131 performans\u0131n\u0131 da art\u0131r\u0131r ve veri g\u00fcvenli\u011fini sa\u011flar.<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"2\">\r\n<li><strong>Sakl\u0131 Prosed\u00fcr\u00fcn Avantajlar\u0131:<\/strong><\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>Tekrar Kullan\u0131labilirlik:<\/strong> Prosed\u00fcrler, belirli g\u00f6revleri ger\u00e7ekle\u015ftirmek i\u00e7in tekrar kullan\u0131labilir kod bloklar\u0131 sa\u011flar. Bu, ayn\u0131 i\u015flemi birden fazla yerde kullanmak gerekti\u011finde zaman kazand\u0131r\u0131r.<\/li>\r\n\r\n\r\n\r\n<li><strong>Performans:<\/strong> Prosed\u00fcrler, s\u0131k\u00e7a kullan\u0131lan i\u015flemleri bir kere tan\u0131mlayarak performans\u0131 art\u0131r\u0131r. Bu, veritaban\u0131 sunucusunun y\u00fck\u00fcn\u00fc hafifletebilir ve genel sistem performans\u0131n\u0131 iyile\u015ftirebilir.<\/li>\r\n\r\n\r\n\r\n<li><strong>G\u00fcvenlik:<\/strong> Veritaban\u0131 eri\u015fimini kontrol etmek ve g\u00fcvenlik \u00f6nlemlerini uygulamak i\u00e7in sakl\u0131 prosed\u00fcrler kullan\u0131labilir. Bu, \u00f6zellikle hassas verilerin korunmas\u0131 ve eri\u015fimlerin s\u0131n\u0131rland\u0131r\u0131lmas\u0131 gerekti\u011finde \u00f6nemlidir.<\/li>\r\n\r\n<li><strong>Bak\u0131m Kolayl\u0131\u011f\u0131:<\/strong> Sakl\u0131 prosed\u00fcrlerin kullan\u0131m\u0131, kodun tek bir yerde toplanmas\u0131n\u0131 sa\u011flar. Bu da bak\u0131m s\u00fcrecini kolayla\u015ft\u0131r\u0131r ve gelecekte yap\u0131lacak g\u00fcncellemelerde zaman kazand\u0131r\u0131r.<\/li>\r\n<li><strong>Mod\u00fcler Yap\u0131:<\/strong> Sakl\u0131 prosed\u00fcrler, kodun mod\u00fcler bir \u015fekilde yap\u0131land\u0131r\u0131lmas\u0131na olanak tan\u0131r. Bu, karma\u015f\u0131k i\u015flemlerin daha y\u00f6netilebilir hale gelmesini sa\u011flar.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-full is-resized\"><img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"450\" class=\"wp-image-10085\" style=\"width: 743px; height: auto;\" title=\"MySQL'de Sakl\u0131 Prosed\u00fcr Olu\u015fturma\" src=\"https:\/\/www.sunucun.com.tr\/blog\/\/wp-content\/uploads\/2024\/04\/indir.webp\" alt=\"MySQL Sakl\u0131 Prosed\u00fcr Olu\u015fturma\" srcset=\"https:\/\/sunucun.com.tr\/blog\/wp-content\/uploads\/2024\/04\/indir.webp 800w, https:\/\/sunucun.com.tr\/blog\/wp-content\/uploads\/2024\/04\/indir-300x169.webp 300w, https:\/\/sunucun.com.tr\/blog\/wp-content\/uploads\/2024\/04\/indir-768x432.webp 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"3\">\r\n<li><strong>Bir Sakl\u0131 Prosed\u00fcr Nas\u0131l Olu\u015fturulur?<\/strong><\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">MySQL&#8217;de bir sakl\u0131 prosed\u00fcr olu\u015fturmak i\u00e7in <code>CREATE PROCEDURE<\/code> ifadesi kullan\u0131l\u0131r. Sakl\u0131 prosed\u00fcrler, bir defa tan\u0131mland\u0131ktan sonra defalarca kullan\u0131labilir. \u0130\u015fte bir \u00f6rnek:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>DELIMITER \/\/\r\nCREATE PROCEDURE sp_example(IN param1 INT, OUT result INT)\r\nBEGIN\r\n    -- Belirli bir g\u00f6revi ger\u00e7ekle\u015ftirecek SQL ifadeleri\r\n    SELECT param1 * 2 INTO result;\r\nEND \/\/\r\nDELIMITER ;\r\n<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Bu \u00f6rnekte, <code>sp_example<\/code> ad\u0131nda bir sakl\u0131 prosed\u00fcr olu\u015fturulmu\u015ftur. \u0130\u00e7indeki SQL ifadeleri belirli bir g\u00f6revi ger\u00e7ekle\u015ftirmek i\u00e7in tan\u0131mlan\u0131r. <code>IN<\/code> ve <code>OUT<\/code> parametreleri, prosed\u00fcr\u00fcn giri\u015f ve \u00e7\u0131k\u0131\u015f parametrelerini tan\u0131mlar. Bu sayede, prosed\u00fcre bir de\u011fer g\u00f6nderip sonucunu alabiliriz.<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"4\">\r\n<li><strong>Bir Sakl\u0131 Prosed\u00fcr Nas\u0131l Kullan\u0131l\u0131r?<\/strong><\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Olu\u015fturulan bir sakl\u0131 prosed\u00fcr, <code>CALL<\/code> komutuyla \u00e7a\u011fr\u0131larak kullan\u0131labilir. \u00d6rne\u011fin:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>CALL sp_example(123, @result);\r\nSELECT @result;\r\n<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Bu \u00f6rnek, <code>sp_example<\/code> prosed\u00fcr\u00fcn\u00fc \u00e7a\u011f\u0131r\u0131r ve sonucunu <code>@result<\/code> de\u011fi\u015fkenine atar. Bu prosed\u00fcr\u00fc farkl\u0131 giri\u015f parametreleriyle defalarca kullanabilir ve her seferinde farkl\u0131 sonu\u00e7lar elde edebilirsiniz. Bu, tekrar eden i\u015flemleri otomatikle\u015ftirmenin ve kodu daha temiz hale getirmenin harika bir yoludur.<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"5\">\r\n<li><strong>Bir Sakl\u0131 Prosed\u00fcr Nas\u0131l G\u00fcncellenir veya Silinir?<\/strong><\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Varolan bir sakl\u0131 prosed\u00fcr g\u00fcncellenebilir veya silinebilir. G\u00fcncelleme i\u00e7in <code>CREATE OR REPLACE PROCEDURE<\/code> komutu kullan\u0131l\u0131r. Bu komut, mevcut bir prosed\u00fcr\u00fc yeni bir tan\u0131mla de\u011fi\u015ftirmeye olanak tan\u0131r. Silme i\u015flemi ise <code>DROP PROCEDURE<\/code> komutuyla ger\u00e7ekle\u015ftirilir. \u00d6rne\u011fin:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>DROP PROCEDURE IF EXISTS sp_example;\r\nCREATE PROCEDURE sp_example(IN param1 INT, OUT result INT)\r\nBEGIN\r\n    -- G\u00fcncellenmi\u015f SQL ifadeleri\r\n    SELECT param1 + 100 INTO result;\r\nEND;\r\n<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Bu komutlarla, varolan bir prosed\u00fcr\u00fc g\u00fcncelleyebilir veya tamamen silebilirsiniz. Sakl\u0131 prosed\u00fcrlerin y\u00f6netimi bu a\u00e7\u0131dan olduk\u00e7a esnektir ve ihtiya\u00e7lar\u0131n\u0131za g\u00f6re kolayca d\u00fczenlenebilir.<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"6\">\r\n<li><strong>Sakl\u0131 Prosed\u00fcr \u00d6rnek Kullan\u0131m Senaryolar\u0131:<\/strong><\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>Kullan\u0131c\u0131 bilgilerini g\u00fcncelleyen bir sakl\u0131 prosed\u00fcr:<\/strong> \u00d6rne\u011fin, bir kullan\u0131c\u0131n\u0131n adres bilgilerini g\u00fcncellemek i\u00e7in bir prosed\u00fcr olu\u015fturabilirsiniz.<\/li>\r\n\r\n\r\n\r\n<li><strong>Belirli bir m\u00fc\u015fterinin sipari\u015flerini getiren bir prosed\u00fcr:<\/strong> Bu t\u00fcr bir prosed\u00fcr, m\u00fc\u015fteri sipari\u015flerini h\u0131zl\u0131 ve verimli bir \u015fekilde \u00e7ekmek i\u00e7in kullan\u0131labilir.<\/li>\r\n\r\n\r\n\r\n<li><strong>Veritaban\u0131 tablolar\u0131n\u0131 birle\u015ftiren ve rapor olu\u015fturan bir prosed\u00fcr:<\/strong> \u00d6rne\u011fin, sat\u0131\u015f verilerini ve m\u00fc\u015fteri bilgilerini birle\u015ftirerek ayl\u0131k raporlar olu\u015fturmak i\u00e7in bir sakl\u0131 prosed\u00fcr geli\u015ftirebilirsiniz.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Sonu\u00e7:<\/strong><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">MySQL&#8217;de sakl\u0131 prosed\u00fcrler, tekrar kullan\u0131labilir ve mod\u00fcler SQL kodlar\u0131n\u0131 yazmak i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Bu makalede, sakl\u0131 prosed\u00fcrlerin ne oldu\u011funu, nas\u0131l olu\u015fturuldu\u011funu ve nas\u0131l kullan\u0131labilece\u011fini \u00f6\u011frendiniz. Sakl\u0131 prosed\u00fcrlerin avantajlar\u0131 aras\u0131nda tekrar kullan\u0131labilirlik, performans art\u0131\u015f\u0131, g\u00fcvenlik ve bak\u0131m kolayl\u0131\u011f\u0131 yer al\u0131r. Veritaban\u0131 y\u00f6netim stratejinizde sakl\u0131 prosed\u00fcrleri kullanarak daha etkili, g\u00fcvenli ve \u00f6l\u00e7eklenebilir bir veritaban\u0131 yap\u0131s\u0131 olu\u015fturabilirsiniz. Art\u0131k prosed\u00fcrleri veritaban\u0131 y\u00f6netim stratejinizin bir par\u00e7as\u0131 olarak d\u00fc\u015f\u00fcnebilir ve projelerinizde kullanmaya ba\u015flayabilirsiniz.<\/p>\r\n\r\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>Giri\u015f: MySQL&#8217;de sakl\u0131 prosed\u00fcrler, tekrar kullan\u0131labilir ve mod\u00fcler SQL kodlar\u0131n\u0131 yazmak i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Sakl\u0131 prosed\u00fcrler, veritaban\u0131 i\u015flemlerini ger\u00e7ekle\u015ftirmek i\u00e7in bir dizi SQL ifadesini i\u00e7eren bir bloktur. Veritaban\u0131 y\u00f6netiminde, \u00f6zellikle b\u00fcy\u00fck \u00f6l\u00e7ekli projelerde, tekrar eden i\u015flemler ve kompleks sorgular s\u0131k\u00e7a kar\u015f\u0131m\u0131za \u00e7\u0131kar. Bu t\u00fcr i\u015flemler i\u00e7in sakl\u0131 prosed\u00fcrler, kod tekrar\u0131n\u0131 azaltmak, y\u00f6netimi kolayla\u015ft\u0131rmak ve&hellip;<\/p>\n","protected":false},"author":1,"featured_media":10065,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[1525,1521],"tags":[],"class_list":["post-10150","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-siber-guvenlik","category-teknoloji"],"_links":{"self":[{"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/posts\/10150","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/comments?post=10150"}],"version-history":[{"count":1,"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/posts\/10150\/revisions"}],"predecessor-version":[{"id":16476,"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/posts\/10150\/revisions\/16476"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/media\/10065"}],"wp:attachment":[{"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/media?parent=10150"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/categories?post=10150"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/tags?post=10150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}