{"id":5294,"date":"2026-01-19T16:42:03","date_gmt":"2026-01-19T15:42:03","guid":{"rendered":"https:\/\/sutilweb.eu\/?page_id=5294"},"modified":"2026-01-19T16:42:03","modified_gmt":"2026-01-19T15:42:03","slug":"34-introduccion-a-mysql","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/lenguajes\/php\/php-practico\/34-introduccion-a-mysql\/","title":{"rendered":"34. Introducci\u00f3n a MySQL"},"content":{"rendered":"\n<p>Muchos de los proyectos PHP en los que participemos necesitar\u00e1n almacenar la informaci\u00f3n de forma persistente de alguna manera, ya que es un elemento clave en la implementaci\u00f3n de una web din\u00e1mica.<\/p>\n\n\n\n<p>En la actualidad un proyecto web no se limita a mostrar p\u00e1ginas est\u00e1ticas. Utilizando <strong>PHP<\/strong> podremos crear proyectos que almacenen informaci\u00f3n, algo que permite que el contenido de la web sea din\u00e1mico, pueda cambiar constantemente, o incluso que muestre informaci\u00f3n personalizada a los usuarios de las aplicaciones.<\/p>\n\n\n\n<p>La informaci\u00f3n se puede almacenar de varias maneras, dependiendo de la utilidad que le queramos dar.<\/p>\n\n\n\n<p>Las <strong>bases de datos<\/strong> m\u00e1s utilizadas son las de <strong>tipo relacional<\/strong>, que almacenan informaci\u00f3n en conjuntos l\u00f3gicos relacionados, denominados bases de datos, <strong>tablas<\/strong> y <strong>campos,<\/strong> y que utilizan un lenguaje de consulta muy potente que viene a ser <strong>SQL,<\/strong> el cual permite extraer la informaci\u00f3n de una manera r\u00e1pida y eficiente.<\/p>\n\n\n\n<p>Este lenguaje se utiliza en casi todos los sistemas de bases de datos relacionales, como son <strong>Oracle,<\/strong> <strong>Microsoft SQL Server<\/strong> y <strong>MySQL.<\/strong> Como nota, existe otro tipo de bases de datos llamadas <strong>noSQL<\/strong> como alternativa a la anterior, las cuales no utilizan el lenguaje SQL y no usan estructuras fijas de informaci\u00f3n como las relacionales.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Qu\u00e9 es una base de datos<\/h2>\n\n\n\n<p>Una base de datos es una colecci\u00f3n estructurada de registros o datos almacenados en un sistema inform\u00e1tico, y organizada de tal manera que se pueda buscar y recuperar la informaci\u00f3n con rapidez.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">MySQL<\/h2>\n\n\n\n<p>En este curso utilizaremos un tipo de base de datos relacional, el cual es gestionado por un software que se conoce como <strong>sistema gestor de base de datos relacional<\/strong>, el cual es el responsable de controlar la base de datos, sus componentes, mantener la integridad de los datos, los usuarios que acceden, de recibir las consultas de peticiones, creaci\u00f3n y actualizaci\u00f3n de la informaci\u00f3n entre otras funcionalidades. Dicho sistema gestor de base de datos relacional se denomina&nbsp;<strong>MySQL<\/strong>. Lo m\u00e1s importante de este software es que est\u00e1 disponible como&nbsp;<strong>c\u00f3digo abierto<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">MySQL Workbench<\/h2>\n\n\n\n<p>Es importante tener instalado en nuestro ordenador el software <strong>MySQL Workbench<\/strong>, el cual es una herramienta visual de dise\u00f1o de bases de datos que integra desarrollo de software, administraci\u00f3n de base de datos, dise\u00f1o de base de datos, gesti\u00f3n y mantenimiento para sistema de base de datos MySQL. Utilizaremos dicha aplicaci\u00f3n para conocer las caracter\u00edsticas de MySQL.<\/p>\n\n\n\n<p>Una vez lo tengamos instalado lo vamos a abrir, y una vez hecho \u00e9sto vamos a crear una conexi\u00f3n con nuestro MySQL, con la instalaci\u00f3n que hizo cuando instalamos el software XAMPP. Para ello haremos clic en el bot\u00f3n (<strong><em>+<\/em><\/strong>) que se encuentra a la derecha de <strong><em>MySQL Connections<\/em><\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conexi\u00f3n a MySQL desde Workbench<\/h2>\n\n\n\n<p>En el <strong>hostname<\/strong> tenemos que poner el valor <strong><em>127.0.0.1<\/em><\/strong>, que vendr\u00eda a ser la conexi\u00f3n a nuestro <strong><em>localhost,<\/em><\/strong> y el puerto que usa MySQL es el <strong><em>3306,<\/em><\/strong> que es el que deber\u00edamos usar. En caso de que estuvi\u00e9ramos usando otro programa que no sea <strong>XAMPP,<\/strong> hay que verificar en que puerto se encuentra MySQL.<\/p>\n\n\n\n<p>Otra cosa que debemos hacer es darle nombre a nuestra conexi\u00f3n, una vez rellenos todos los campos citados le damos clic al bot\u00f3n <strong><em>OK<\/em><\/strong>. De esta manera hemos logrado conectarnos a MySQL en nuestro ordenador.<\/p>\n\n\n\n<p>Una vez conectados, le damos doble clic a la conexi\u00f3n que tenemos en nuestro software, se nos abrir\u00e1 un panel que tendremos que aprender a manejar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Panel de Workbench<\/h2>\n\n\n\n<p>Vamos a encontrar un men\u00fa con diversas opciones. A la izquierda encontramos las acciones m\u00e1s habituales al administrar un servidor de base de datos, como crear una hoja de consulta, crear un esquema, una tabla, una vista&#8230;<\/p>\n\n\n\n<p>En las \u00faltimas versiones de MySQL, el concepto de base de datos a evolucionado al de esquema de base de datos. de ah\u00ed que en las \u00faltimas versiones de Workbench se haga referencia exclusivamente a esquemas en las zonas habilitadas para bases de datos.<\/p>\n\n\n\n<p>En la parte izquierda tenemos dos pesta\u00f1as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><em>Administration<\/em><\/strong><\/li>\n\n\n\n<li><strong><em>Schemas<\/em><\/strong><\/li>\n<\/ul>\n\n\n\n<p>La pesta\u00f1a <strong><em>Administration<\/em><\/strong> est\u00e1 dividida en 3 secciones:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><em>MANAGEMENT:<\/em><\/strong> corresponde a gesti\u00f3n, sirve para acceder a las tareas puramente administrativas como ver el estado del servidor, las conexiones de los clientes, la gesti\u00f3n de los usuarios y sus privilegios, las variables de sistema y las importaciones y exportaciones de datos<\/li>\n\n\n\n<li><strong><em>INSTANCE:<\/em><\/strong> corresponde a instancia, se hace referencia a la instancia del servidor que estamos ejecutando. Desde este men\u00fa vamos a poder arrancar y parar la instancia del servidor MySQL y ver los archivos de auditor\u00eda, tambi\u00e9n llamados logs.<\/li>\n\n\n\n<li><strong><em>PERFORMANCE:<\/em><\/strong> corresponde a rendimiento, sirve para conocer estad\u00edsticas que muestran el rendimiento actual de nuestro servidor de MySQL y su conexi\u00f3n de red.<\/li>\n<\/ul>\n\n\n\n<p>La pesta\u00f1a <strong><em>Schemas<\/em><\/strong> es la zona que m\u00e1s nos interesa para trabajar inicialmente con esta herramienta. Al hacer clic vamos a poder ver la lista de todos los esquemas de bases de datos disponibles para el usuario con el que haya accedido al servidor de MySQL con Workbench.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Editor de MySQL<\/h2>\n\n\n\n<p>La secci\u00f3n que se encuentra a la derecha de las bases de datos es el editor de MySQL, el cual nos va a poder escribir&nbsp;directamente <strong>sentencias SQL<\/strong> para gestionar la informaci\u00f3n de la base de datos, o <strong>sentencias DDL<\/strong> para definir las estructuras del esquema de base de datos como tablas, vistas, procedimientos, funciones, \u00edndices&#8230;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Crear nuevo esquema<\/h2>\n\n\n\n<p>Para ello vamos a nuestro editor y escribimos la siguiente sintaxis:<\/p>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<p><strong><em>create schema ejemplo;<\/em><\/strong><\/p>\n\n\n\n<p>Es muy importante que toda sentencia SQL que escribamos debe terminar con el punto y coma (<strong><em>;<\/em><\/strong>). Para ejecutar la sentencia debemos hacer clic en el icono en forma de rayo.<\/p>\n\n\n\n<p>Si revisamos el panel de las bases de datos veremos que el esquema no se visualiza, para que se pueda visualizar&nbsp;haremos clic en el bot\u00f3n refrescar y aparecer\u00e1 autom\u00e1ticamente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">De qu\u00e9 se compone un esquema<\/h2>\n\n\n\n<p>Un esquema de base de datos se compone de varios conjuntos de elementos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tablas:<\/strong> son el elemento fundamental de todo esquema, el que se encarga de almacenar toda la informaci\u00f3n real que utilice en su aplicaci\u00f3n. Estas se componen de campos de informaci\u00f3n que pueden ser de diferentes tipos. Dichas tablas pueden establecer\u00a0relaciones entre ellas para optimizar la velocidad en la consulta y en la capacidad del esquema<\/li>\n\n\n\n<li><strong>Vistas:<\/strong> una consulta de base de datos puede convertirse en una tabla virtual, es decir, como una vista, se adjetivan como virtual debido a que no funcionan con las mismas caracter\u00edsticas\u00a0que una tabla ya que s\u00f3lo pueden realizar consultas de b\u00fasqueda<\/li>\n\n\n\n<li><strong>Procedimientos almacenados (stored procedures)<\/strong>: es un programa que utiliza el lenguaje de script propio de MySQL que permite disponer del c\u00f3digo ejecutable en el motor de base de datos.\u00a0Utiliza variables, sentencias condicionales, iterativas, y permite acceder a las tablas, vistas y funciones del esquema.<\/li>\n\n\n\n<li><strong>Funciones:<\/strong> son similares a los procedimientos almacenados y les proporcionan todo lo necesario para aprender a utilizar MySQL y posteriormente a explotar la potencia de la pareja PHP &#8211; MySQL.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Otra forma de crear un esquema<\/h2>\n\n\n\n<p>Para ello podemos hacer clic en el icono <strong><em>Create a new schema in the connected server<\/em><\/strong>. el cual se encuentra en la parte superior, y nos pedir\u00e1 un nombre a nuestro esquema y hacemos clic en el bot\u00f3n <strong><em>Apply<\/em><\/strong>. Esto abre una nueva pesta\u00f1a con la sentencia SQL necesaria para crear este esquema, pero se ha creado autom\u00e1ticamente, no hemos tenido que escribirlo con c\u00f3digo SQL<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Eliminar esquemas<\/h2>\n\n\n\n<p>Es posible eliminar esquemas, lo que tenemos que hacer es dirigirnos sobre el esquema que queremos eliminar y hacer clic en la opci\u00f3n <strong><em>Drop schema-&gt;Drop Now<\/em><\/strong>.<\/p>\n\n\n\n<p><strong>Advertencia:&nbsp;<\/strong>cuando eliminemos un esquema, se destruye por completo todo su contenido, por lo que hay que tener especial cuidado a la hora de tomar esta decisi\u00f3n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Muchos de los proyectos PHP en los que participemos necesitar\u00e1n almacenar la informaci\u00f3n de forma persistente de alguna manera, ya [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":4518,"menu_order":33,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-5294","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"Muchos de los proyectos PHP en los que participemos necesitar\u00e1n almacenar la informaci\u00f3n de forma persistente de alguna manera, ya [&hellip;]","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/comments?post=5294"}],"version-history":[{"count":2,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5294\/revisions"}],"predecessor-version":[{"id":5298,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5294\/revisions\/5298"}],"up":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/4518"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=5294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}