{"id":521,"date":"2009-12-28T13:15:15","date_gmt":"2009-12-28T13:15:15","guid":{"rendered":"http:\/\/www.mysqltutorial.org\/?page_id=521"},"modified":"2023-12-31T03:00:52","modified_gmt":"2023-12-31T10:00:52","slug":"introduction-to-sql-stored-procedures","status":"publish","type":"page","link":"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/introduction-to-sql-stored-procedures\/","title":{"rendered":"Introduction to MySQL Stored Procedures"},"content":{"rendered":"\n<p><strong>Summary<\/strong>: in this tutorial, you will learn about MySQL stored procedures, including their advantages and disadvantages.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Getting started with stored procedures<\/h2>\n\n\n\n<p>The following <code><a href=\"https:\/\/www.mysqltutorial.org\/mysql-basics\/mysql-select-from\/\">SELECT<\/a><\/code> statement returns all rows in the table <code>customers<\/code> from the <a href=\"https:\/\/www.mysqltutorial.org\/getting-started-with-mysql\/mysql-sample-database\/\">sample database<\/a>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-keyword\">SELECT<\/span> \n    customerName, \n    city, \n    state, \n    postalCode, \n    country\n<span class=\"hljs-keyword\">FROM<\/span>\n    customers\n<span class=\"hljs-keyword\">ORDER<\/span> <span class=\"hljs-keyword\">BY<\/span> customerName;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>This picture shows the partial output of the query:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"454\" height=\"241\" src=\"https:\/\/www.mysqltutorial.org\/wp-content\/uploads\/2019\/09\/MySQL-Stored-Procedure-Sample-Query.png\" alt=\"\" class=\"wp-image-8256\" srcset=\"https:\/\/www.mysqltutorial.org\/wp-content\/uploads\/2019\/09\/MySQL-Stored-Procedure-Sample-Query.png 454w, https:\/\/www.mysqltutorial.org\/wp-content\/uploads\/2019\/09\/MySQL-Stored-Procedure-Sample-Query-200x106.png 200w\" sizes=\"auto, (max-width: 454px) 100vw, 454px\" \/><\/figure>\n\n\n\n<p>When you use MySQL Workbench or the mysql shell to execute a query on the MySQL Server, the server processes the query and returns the result set.<\/p>\n\n\n\n<p>If you intend to save this query on the database server for later execution, one way to achieve this is by using a stored procedure.<\/p>\n\n\n\n<p>The following <code><a href=\"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/getting-started-with-mysql-stored-procedures\/\">CREATE PROCEDURE<\/a><\/code> statement creates a new stored procedure encapsulating the query above:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\">DELIMITER $$\n\n<span class=\"hljs-keyword\">CREATE<\/span> <span class=\"hljs-keyword\">PROCEDURE<\/span> GetCustomers()\n<span class=\"hljs-keyword\">BEGIN<\/span>\n\t<span class=\"hljs-keyword\">SELECT<\/span> \n\t\tcustomerName, \n\t\tcity, \n\t\tstate, \n\t\tpostalCode, \n\t\tcountry\n\t<span class=\"hljs-keyword\">FROM<\/span>\n\t\tcustomers\n\t<span class=\"hljs-keyword\">ORDER<\/span> <span class=\"hljs-keyword\">BY<\/span> customerName;    \n<span class=\"hljs-keyword\">END<\/span>$$\nDELIMITER ;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>By definition, a stored procedure is a set of declarative SQL statements stored within the MySQL Server. In this example, we have just created a stored procedure named <code>GetCustomers()<\/code>.<\/p>\n\n\n\n<p>After saving the stored procedure, you can invoke it by using the <code>CALL<\/code> statement:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-keyword\">CALL<\/span> GetCustomers();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The statement returns the same result as the query.<\/p>\n\n\n\n<p>The initial invocation of a stored procedure involves the following actions by MySQL:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>First, find the stored procedure by its name in the database catalog. <\/li>\n\n\n\n<li>Second, compile the code of the stored procedure.<\/li>\n\n\n\n<li>Third, store the compiled stored procedure in a cache memory area.<\/li>\n\n\n\n<li>Finally, execute the stored procedure.<\/li>\n<\/ul>\n\n\n\n<p>If you invoke the same stored procedure again within the same session, MySQL will execute it from the cache without the need for recompilation.<\/p>\n\n\n\n<p>A stored procedure can have <a href=\"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/stored-procedures-parameters-in-mysql\/\">parameters<\/a>, allowing you to pass values to it and retrieve results. <\/p>\n\n\n\n<p>For example, you can define a stored procedure that returns customers by country and city. In this case, the country and city are parameters of the stored procedure. Additionally, a stored procedure may incorporate control flow statements such as <code><a href=\"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/mysql-if-statement\/\">IF<\/a><\/code>, <code><a href=\"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/mysql-case-statement\/\">CASE<\/a><\/code>, and <a href=\"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/loop-in-stored-procedures\/\"><code>LOOP<\/code><\/a>.<\/p>\n\n\n\n<p>A stored procedure can call other stored procedures or <a href=\"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/mysql-stored-function\/\">stored functions<\/a>, enabling you to organize your code more effectively.<\/p>\n\n\n\n<p class=\"note\">Please note that in the upcoming tutorial, you learn step-by-step how to <a href=\"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/getting-started-with-mysql-stored-procedures\/\">create a new stored procedure<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">MySQL Stored Procedures advantages<\/h2>\n\n\n\n<p>Below are the advantages of stored procedures:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Reduce network traffic<\/strong> &#8211; Stored procedures help reduce the network traffic between applications and MySQL servers. Instead of sending multiple lengthy SQL statements, applications only need to send the name and parameters of the stored procedures.<\/li>\n\n\n\n<li><strong>Centralize business logic in the database<\/strong> &#8211; You can use stored procedures to implement reusable business logic across multiple applications. They streamline the process, reducing the need to duplicate the same logic in multiple applications and contributing a more consistent database.<\/li>\n\n\n\n<li><strong>Make the database more secure<\/strong> &#8211; You can grant specific privileges to applications, allowing access to particular stored procedures without providing any privileges to the underlying tables.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">MySQL stored procedures disadvantages<\/h2>\n\n\n\n<p>In addition to these advantages, stored procedures also have disadvantages:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Resource usage<\/strong> &#8211; If you use many stored procedures, the memory usage of every connection will significantly increase. Additionally, an excessive use of logical operations in the stored procedures can lead to increased CPU usage, as MySQL is not well-designed for such operations.<\/li>\n\n\n\n<li><strong>Troubleshooting<\/strong> &#8211; Debugging stored procedures is quite challenging. Unfortunately, MySQL lacks facilities for debugging stored procedures, a feature available in other enterprise database products such as <a href=\"https:\/\/www.oracletutorial.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Oracle Database<\/a> and <a href=\"https:\/\/www.sqlservertutorial.net\/\" target=\"_blank\" rel=\"noreferrer noopener\">SQL Server<\/a>.<\/li>\n\n\n\n<li><strong>Maintenances <\/strong>&#8211; Developing and maintaining stored procedures often demands a specialized skill set not universally possessed by all application developers, potentially causing issues in both application development and maintenance.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A stored procedure is a wrapper of a set of SQL statements stored in the MySQL database server.<\/li>\n\n\n\n<li>The advantages of stored procedures include reduced network traffic, enhanced code reusability, improved security through controlled access, streamlined implementation of business logic, and the ability to grant specific privileges to applications without exposing underlying database structures.<\/li>\n\n\n\n<li>The disadvantages of stored procedures include increased memory usage for each connection, challenges in debugging due to a lack of dedicated tools, and the necessity for a specialized skill set, which not all application developers may possess, leading to potential difficulties in both development and maintenance processes.<\/li>\n<\/ul>\n<div class=\"helpful-block-content\" data-title=\"\">\n\t<header>\n\t\t<div class=\"wth-question\">Was this tutorial helpful? <\/div>\n\t\t<div class=\"wth-thumbs\">\n\t\t\t<button\n\t\t\t\tdata-post=\"521\"\n\t\t\t\tdata-post-url=\"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/introduction-to-sql-stored-procedures\/\"\n\t\t\t\tdata-post-title=\"Introduction to MySQL Stored Procedures\"\n\t\t\t\tdata-response=\"1\"\n\t\t\t\tclass=\"wth-btn-rounded wth-yes-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\tclass=\"feather feather-thumbs-up block w-full h-full\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> Yes <\/span>\n\t\t\t<\/button>\n\n\t\t\t<button\n\t\t\t\tdata-response=\"0\"\n\t\t\t\tdata-post=\"521\"\n\t\t\t\tdata-post-url=\"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/introduction-to-sql-stored-procedures\/\"\n\t\t\t\tdata-post-title=\"Introduction to MySQL Stored Procedures\"\n\t\t\t\tclass=\"wth-btn-rounded wth-no-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> No <\/span>\n\t\t\t<\/button>\n\t\t<\/div>\n\t<\/header>\n\n\t<div class=\"wth-form hidden\">\n\t\t<div class=\"wth-form-wrapper\">\n\t\t\t<div class=\"wth-title\"><\/div>\n\t\t\t\n\t\t\t<textarea class=\"wth-message\"><\/textarea>\n\n\t\t\t<button class=\"btn btn-primary wth-btn-submit\">Send<\/button>\n\t\t\t<button class=\"btn wth-btn-cancel\">Cancel<\/button>\n\t\t\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial, you will learn about MySQL stored procedures, including their advantages and disadvantages.<\/p>\n","protected":false},"author":2,"featured_media":372,"parent":518,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-521","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Introduction to Stored Procedure in MySQL<\/title>\n<meta name=\"description\" content=\"In this tutorial, you will learn about MySQL stored procedures, including their advantages and disadvantages.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/introduction-to-sql-stored-procedures\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introduction to Stored Procedure in MySQL\" \/>\n<meta property=\"og:description\" content=\"In this tutorial, you will learn about MySQL stored procedures, including their advantages and disadvantages.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/introduction-to-sql-stored-procedures\/\" \/>\n<meta property=\"og:site_name\" content=\"MySQL Tutorial\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-31T10:00:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mysqltutorial.org\/wp-content\/uploads\/2013\/01\/code_127.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"110\" \/>\n\t<meta property=\"og:image:height\" content=\"83\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-stored-procedure\\\/introduction-to-sql-stored-procedures\\\/\",\"url\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-stored-procedure\\\/introduction-to-sql-stored-procedures\\\/\",\"name\":\"Introduction to Stored Procedure in MySQL\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-stored-procedure\\\/introduction-to-sql-stored-procedures\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-stored-procedure\\\/introduction-to-sql-stored-procedures\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mysqltutorial.org\\\/wp-content\\\/uploads\\\/2013\\\/01\\\/code_127.jpg\",\"datePublished\":\"2009-12-28T13:15:15+00:00\",\"dateModified\":\"2023-12-31T10:00:52+00:00\",\"description\":\"In this tutorial, you will learn about MySQL stored procedures, including their advantages and disadvantages.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-stored-procedure\\\/introduction-to-sql-stored-procedures\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-stored-procedure\\\/introduction-to-sql-stored-procedures\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-stored-procedure\\\/introduction-to-sql-stored-procedures\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mysqltutorial.org\\\/wp-content\\\/uploads\\\/2013\\\/01\\\/code_127.jpg\",\"contentUrl\":\"https:\\\/\\\/www.mysqltutorial.org\\\/wp-content\\\/uploads\\\/2013\\\/01\\\/code_127.jpg\",\"width\":110,\"height\":83},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-stored-procedure\\\/introduction-to-sql-stored-procedures\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mysqltutorial.org\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MySQL Stored Procedures\",\"item\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-stored-procedure\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Introduction to MySQL Stored Procedures\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/#website\",\"url\":\"https:\\\/\\\/www.mysqltutorial.org\\\/\",\"name\":\"MySQL Tutorial\",\"description\":\"A comprehensive MySQL Tutorial\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mysqltutorial.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Introduction to Stored Procedure in MySQL","description":"In this tutorial, you will learn about MySQL stored procedures, including their advantages and disadvantages.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/introduction-to-sql-stored-procedures\/","og_locale":"en_US","og_type":"article","og_title":"Introduction to Stored Procedure in MySQL","og_description":"In this tutorial, you will learn about MySQL stored procedures, including their advantages and disadvantages.","og_url":"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/introduction-to-sql-stored-procedures\/","og_site_name":"MySQL Tutorial","article_modified_time":"2023-12-31T10:00:52+00:00","og_image":[{"width":110,"height":83,"url":"https:\/\/www.mysqltutorial.org\/wp-content\/uploads\/2013\/01\/code_127.jpg","type":"image\/jpeg"}],"twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/introduction-to-sql-stored-procedures\/","url":"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/introduction-to-sql-stored-procedures\/","name":"Introduction to Stored Procedure in MySQL","isPartOf":{"@id":"https:\/\/www.mysqltutorial.org\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/introduction-to-sql-stored-procedures\/#primaryimage"},"image":{"@id":"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/introduction-to-sql-stored-procedures\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mysqltutorial.org\/wp-content\/uploads\/2013\/01\/code_127.jpg","datePublished":"2009-12-28T13:15:15+00:00","dateModified":"2023-12-31T10:00:52+00:00","description":"In this tutorial, you will learn about MySQL stored procedures, including their advantages and disadvantages.","breadcrumb":{"@id":"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/introduction-to-sql-stored-procedures\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/introduction-to-sql-stored-procedures\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/introduction-to-sql-stored-procedures\/#primaryimage","url":"https:\/\/www.mysqltutorial.org\/wp-content\/uploads\/2013\/01\/code_127.jpg","contentUrl":"https:\/\/www.mysqltutorial.org\/wp-content\/uploads\/2013\/01\/code_127.jpg","width":110,"height":83},{"@type":"BreadcrumbList","@id":"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/introduction-to-sql-stored-procedures\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mysqltutorial.org\/"},{"@type":"ListItem","position":2,"name":"MySQL Stored Procedures","item":"https:\/\/www.mysqltutorial.org\/mysql-stored-procedure\/"},{"@type":"ListItem","position":3,"name":"Introduction to MySQL Stored Procedures"}]},{"@type":"WebSite","@id":"https:\/\/www.mysqltutorial.org\/#website","url":"https:\/\/www.mysqltutorial.org\/","name":"MySQL Tutorial","description":"A comprehensive MySQL Tutorial","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mysqltutorial.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/pages\/521","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/comments?post=521"}],"version-history":[{"count":3,"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/pages\/521\/revisions"}],"predecessor-version":[{"id":13944,"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/pages\/521\/revisions\/13944"}],"up":[{"embeddable":true,"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/pages\/518"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/media\/372"}],"wp:attachment":[{"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/media?parent=521"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}