<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dos primos luchan contra la tecnología &#187; MySQL</title>
	<atom:link href="http://www.s3v-i.net/category/bases-de-datos/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.s3v-i.net</link>
	<description>Aprendizaje y formación en informática profesional mediante videotutoriales</description>
	<lastBuildDate>Fri, 12 Mar 2010 20:10:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Codificación con el charset UTF-8 e internacionalización de caracteres</title>
		<link>http://www.s3v-i.net/varios/codificacion-con-el-charset-utf-8-e-internacionalizacion-de-caracteres/</link>
		<comments>http://www.s3v-i.net/varios/codificacion-con-el-charset-utf-8-e-internacionalizacion-de-caracteres/#comments</comments>
		<pubDate>Tue, 08 May 2007 08:27:14 +0000</pubDate>
		<dc:creator>Ricardo F</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Servidores]]></category>
		<category><![CDATA[Varios]]></category>

		<guid isPermaLink="false">http://www.s3v-i.net/2007/05/08/codificacion-con-el-charset-utf-8-e-internacionalizacion-de-caracteres/</guid>
		<description><![CDATA[UTF-8(8-bit Unicode Transformation Format) es una norma de transmisión de longitud variable para caracteres codificados utilizando Unicode que nos permite representar caracteres de todo el mundo. Es una implementación de Unicode más como UTF-16 o UTF-32. En teoría nos va a permitir crear nuestras páginas web sin preocuparnos de acentos y caracteres extraños ya que [...]]]></description>
			<content:encoded><![CDATA[<p>UTF-8(8-bit Unicode Transformation Format) es una norma de transmisión de longitud variable para caracteres codificados utilizando Unicode que nos permite representar caracteres de todo el mundo. Es una implementación de Unicode más como UTF-16 o UTF-32. En teoría nos va a permitir crear nuestras páginas web sin preocuparnos de acentos y caracteres extraños ya que todos son representados de manera estándar. Esto se consigue asignando a cada caracter un codigo único e irrepetible. De esta manera podemos por ejemplo tener un foro en el que se recojan comentarios en varios alfabetos diferentes y sean legibles por todos. También nos servirá para no tener que codificar los acentos y la ñ por sus entidades equivalentes en HTML como &xacute; o ñ sin que nos aparezcan símbolos raros en su lugar.</p>
<p>Para evitar errores de codificación es muy importante seguir todos estos pasos ya que si nos dejamos alguno podemos obtener resultados no deseados.</p>
<p>Si ya teníamos contenidos en la base de datos con otro charset como latin1 (iso-8859-1) debemos transformarlos a UTF-8. Por ejemplo se puede hacer exportando la base de datos completa y con un editor de texto cambiar la codificación a UTF-8 y volver a importar. Así podemos repasar por encima los fallos de conversión ya que algunos caracteres pueden verse extraños al convertir a UTF-8.</p>
<pre><font size="2">

<b>Apache: httpd.conf:</b>
AddCharset UTF-8 .utf8
AddDefaultCharset UTF-8

<b>PHP: php.ini</b>
default_charset = "utf-8"

<b>MySQL: my.cnf</b>
character-set-server=utf8
default-collation=utf8_unicode_ci

<b>phpmyadmin: config.inc.php</b>
$cfg['DefaultLang'] = 'es-utf-8';
$cfg['Lang'] = 'es-utf-8';
$cfg['DefaultCharset'] = 'utf-8';

<b>Paginas web:</b>
En todas las páginas web especificar el charset en la cabecera.
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;

<b>Scripts de conexión a la DB:</b>
Después de realizar la conexión, especificar el juego de caracteres
mysql_query("SET NAMES 'utf8'");
</font>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.s3v-i.net/varios/codificacion-con-el-charset-utf-8-e-internacionalizacion-de-caracteres/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Expresiones regulares (REGEXP) en MySQL</title>
		<link>http://www.s3v-i.net/bases-de-datos/expresiones-regulares-regexp-en-mysql/</link>
		<comments>http://www.s3v-i.net/bases-de-datos/expresiones-regulares-regexp-en-mysql/#comments</comments>
		<pubDate>Thu, 08 Feb 2007 12:53:52 +0000</pubDate>
		<dc:creator>Ricardo F</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[RegExp]]></category>

		<guid isPermaLink="false">http://www.s3v-i.net/2007/02/08/expresiones-regulares-regexp-en-mysql/</guid>
		<description><![CDATA[Al crear páginas dinámicas con información almacenada en una base de datos hay que porcurar que todo el trabajo de búsqueda lo realize la base de datos. Cuando necesitamos filtrar información en base a un patrón de expresión regular es prferible incluir el patrón regexp en la consulta SQL a obtener todos los datos en [...]]]></description>
			<content:encoded><![CDATA[<p>Al crear páginas dinámicas con información almacenada en una base de datos hay que porcurar que todo el trabajo de búsqueda lo realize la base de datos. Cuando necesitamos filtrar información en base a un patrón de expresión regular es prferible incluir el patrón regexp en la consulta SQL a obtener todos los datos en bruto y filtrarlos posteriormente mediante un script. Siempre será más rápido realizar el filtrado a nivel de base datos.</p>
<p>La sintaxis de la consulta sería:</p>
<pre><font size="2">expresion REGEXP patrón</font></pre>
<p><span id="more-295"></span> Por ejemplo:</p>
<pre><font size="2">SELECT `nombre` FROM `empleados`
WHERE `nombre` REGEXP '^P';</font></pre>
<p>Esto devolvería cualquier artículo cuyo nombre empieza por P como Paco Lopez, Pablo Martinez&#8230;<br />
Esto es mejor que utilizar el operador LIKE junto con el comodín % al buscar una palabra.<br />
Por ejemplo, vamos a buscar empleadas que se llamen Ana</p>
<pre><font size="2">SELECT `nombre` FROM `empleados`
WHERE `nombre` LIKE '%ana%';</font></pre>
<p>Esto devolvería ana, juana, rosana&#8230;<br />
En estos casos es mejor utilizar una expresión regular con delimitadores de palabra como esta:</p>
<pre><font size="2">SELECT `nombre` FROM `empleados`
WHERE `nombre` REGEXP '[[:&lt;:]]ana[[:&gt;:]]';</font></pre>
<p>Esta consulta sólo devolverá aquellas columnas en las que aparezca &#8220;ana&#8221; como palabra única y aislada, delimitada por caracteres no alfabéticos, es decir, cualquier caracter que no sea una letra ya sea número, signo de puntuación o espacio en blanco entre otros.</p>
<p>A continuación una lista de sintaxis de expresiones regulares:</p>
<p>[:alnum:] letras y números<br />
[:alpha:] letras<br />
[:blank:] espacios en blanco<br />
[:digit:] dígitos<br />
[:lower:] letras minúsculas<br />
[:upper:] letras mayúsculas<br />
[:space:] espacios en blanco, tabuladores, nueva línea&#8230;</p>
<p>Además de los típicos: ^, $, ., *, ?, +, etc&#8230;<br />
Para más información sobre expresiones regulares aqui http://ricardofutami.wordpress.com/2007/01/11/chuleta-de-expresiones-regulares/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.s3v-i.net/bases-de-datos/expresiones-regulares-regexp-en-mysql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Acceso a base de datos MySQL con JDBC (Java)</title>
		<link>http://www.s3v-i.net/bases-de-datos/acceso-a-base-de-datos-mysql-con-jdbc-java/</link>
		<comments>http://www.s3v-i.net/bases-de-datos/acceso-a-base-de-datos-mysql-con-jdbc-java/#comments</comments>
		<pubDate>Wed, 08 Nov 2006 08:42:20 +0000</pubDate>
		<dc:creator>Ricardo F</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.s3v-i.net/2006/11/08/acceso-a-base-de-datos-mysql-con-jdbc-java/</guid>
		<description><![CDATA[Para poder utilizar la base de datos MySQL desde una aplicación Java necesitamos descargar el conector para Java que ofrece MySQL en su sitio web
http://dev.mysql.com/downloads/connector/j/
Allí seleccionad la versión adecuada para vuestro servidor de base de datos.
Pongo una clase de ejemplo muy sencillo para ver cómo se realiza una consulta SQL común.


import java.sql.*;

public class conexionMySql{
  [...]]]></description>
			<content:encoded><![CDATA[<p>Para poder utilizar la base de datos MySQL desde una aplicación Java necesitamos descargar el conector para Java que ofrece MySQL en su sitio web<br />
<a href="http://dev.mysql.com/downloads/connector/j/">http://dev.mysql.com/downloads/connector/j/</a></p>
<p>Allí seleccionad la versión adecuada para vuestro servidor de base de datos.</p>
<p>Pongo una clase de ejemplo muy sencillo para ver cómo se realiza una consulta SQL común.</p>
<p><span id="more-275"></span></p>
<pre>
<font size="2">import java.sql.*;

public class conexionMySql{
  static String dbName = "databaseName";
  static String dbUser = "user";
  static String dbPass = "pass";
  static String dbUrl = "jdbc:mysql://localhost/" + dbName;

  public static void main(String[] args) {
    Connection connection = null;
      try{
        Class.forName("com.mysql.jdbc.Driver").newInstance();
          connection =
            DriverManager.getConnection(dbUrl, dbUser, dbPass);
          if (connection != null)	{
          Statement stmt = connection.createStatement();
          ResultSet result  =
            stmt.executeQuery("SELECT * FROM empleados");
          while(res.next()) {
            String id  = result.getString("id");
            String nombre  = result.getString("nombre");
            float salario = result.getFloat("salario");
            System.out.println(id +" t "+name+" t "+salario);
          }
          result.close();
          stmt.close();
          connection.close();
        }
      }
      catch(SQLException ex) {
      System.out.println("Error connecting: "+ex);
    }
    catch(ClassNotFoundException ex) {
      System.out.println("Connector not found: "+ex);
    }
  }
}</font></pre>
<p><strong>Sentencias precompiladas:</strong><br />
Cuando queremos ejecutar una misma sentencia muchas veces pero con diferentes valores se pierde eficiencia si tenemos que compilar dicha sentencia y mandarla a la base de datos. Para ello, se utilizan las sentencias preparadas conocidas como preparedStatement. Son sentencias precompiladas en las que se puede cambiar los valores en cada ejecución sin volver a compilar.</p>
<pre><font size="2">
PreparedStatement updateSalario =
  connection.prepareStatement(
  "UPDATE empleados SET salario = ? WHERE nombre LIKE ?");
String[] nombres = {"Pepe","Andres","Antonio","Geromo"}
//asignamos valores en un bucle
for (int i=0; i&lt;nombres.lentgh; i++){
  updateSalario.setFloat(1, 1200);
  updateSalario.setString(2, nombres[i]);
  updateSalario.executeUpdate();
}
</font></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.s3v-i.net/bases-de-datos/acceso-a-base-de-datos-mysql-con-jdbc-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL &#8211; Charset y Collation</title>
		<link>http://www.s3v-i.net/bases-de-datos/mysql-charset-y-collation/</link>
		<comments>http://www.s3v-i.net/bases-de-datos/mysql-charset-y-collation/#comments</comments>
		<pubDate>Thu, 06 Jul 2006 11:00:00 +0000</pubDate>
		<dc:creator>Ricardo F</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.s3v-i.net/2006/07/06/mysql-charset-y-collation/</guid>
		<description><![CDATA[En MySQL vienen definidos unos valores por defecto para charset y para collation que en ocasiones puede darnos sorpresas al importar archivos SQL apareciendo caracteres extraños en lugar de los que esperábamos ver.
Por charset se entiende el juego de caraceteres que utiliza el servidor MySQL, mientras que por collation se entiende las reglas de comparación [...]]]></description>
			<content:encoded><![CDATA[<p>En MySQL vienen definidos unos valores por defecto para charset y para collation que en ocasiones puede darnos sorpresas al importar archivos SQL apareciendo caracteres extraños en lugar de los que esperábamos ver.</p>
<p>Por charset se entiende el juego de caraceteres que utiliza el servidor MySQL, mientras que por collation se entiende las reglas de comparación para ordenar alfabéticamente ese juego de caracteres.</p>
<p>En mi servidor se han definido por defecto utf-8 para charset y latin1_swedish_ci para el collation (los autores de MySQL son suecos).</p>
<p>Nosotros definiremos latin1(<a href="http://es.wikipedia.org/wiki/ISO-8859-1">iso-8859-1</a>) para el charset y latin1_spanish_ci para collation.</p>
<p>Editamos el archivo de configuración de MySQL que se suele llamar my.ini o my.cnf dependiendo del sistema operativo y añadimos los siguientes valores después de la sección [mysqld]:</p>
<p><code> character-set-server=latin1<br />
collation-server=latin1_spanish_ci<br />
default-character-set=latin1<br />
default-collation=latin_spanish_ci</code></p>
<p>A continuación reiniciamos el servidor y así se habrán establecido los nuevos valores por defecto.</p>
<p>Para asegurarnos, especificamos los charsets en la configuración de PHP y Apache.</p>
<p>Editamos php.ini y modificamos la línea:</p>
<p><code>default_charset="iso-8859-1"</code></p>
<p>Editamos httpd.conf y modificamos la línea. Si comentamos la línea tomará el charset por defecto del navegador:</p>
<p><code>AddDefaultCharset ISO-8859-1</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.s3v-i.net/bases-de-datos/mysql-charset-y-collation/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>PhpMyAdmin: DROP DATABASE</title>
		<link>http://www.s3v-i.net/bases-de-datos/phpmyadmin-drop-database/</link>
		<comments>http://www.s3v-i.net/bases-de-datos/phpmyadmin-drop-database/#comments</comments>
		<pubDate>Wed, 17 May 2006 15:30:35 +0000</pubDate>
		<dc:creator>Ricardo F</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.s3v-i.net/2006/05/17/phpmyadmin-drop-database/</guid>
		<description><![CDATA[Las &#250;ltimas versiones de phpMyAdmin no permiten borrar las bases de datos a los usuarios normales aunque sean de su propiedad.
Para solucionar esto hay que editar el archivo de configuraci&#243;n de phpMyAdmin llamado normalmente config.inc.php y editar la clave $cfg[&#39;allowUserDropDatabase&#39;] = TRUE
Con esto se mostrar&#225; la pesta&#241;a que permite borrar la base de datos y [...]]]></description>
			<content:encoded><![CDATA[<p>Las &uacute;ltimas versiones de phpMyAdmin no permiten borrar las bases de datos a los usuarios normales aunque sean de su propiedad.</p>
<p>Para solucionar esto hay que editar el archivo de configuraci&oacute;n de phpMyAdmin llamado normalmente config.inc.php y editar la clave <code><font color="blue">$cfg[&#39;allowUserDropDatabase&#39;] = <b>TRUE</b></font></code></p>
<p>Con esto se mostrar&aacute; la pesta&ntilde;a que permite borrar la base de datos y tambi&eacute;n permitir&aacute; la ejecuci&oacute;n del comando SQL.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.s3v-i.net/bases-de-datos/phpmyadmin-drop-database/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Importar archivos sql grandes</title>
		<link>http://www.s3v-i.net/bases-de-datos/importar-archivos-sql-grandes/</link>
		<comments>http://www.s3v-i.net/bases-de-datos/importar-archivos-sql-grandes/#comments</comments>
		<pubDate>Tue, 09 May 2006 13:39:01 +0000</pubDate>
		<dc:creator>Ricardo F</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.s3v-i.net/2006/05/09/importar-archivos-sql-grandes/</guid>
		<description><![CDATA[Al intentar cargar en una base de datos un archivo sql que pase de los 2 megas PHPMyAdmin se queda colgado o muestra error.
Opci&#243;n 1 (si es para uso local, servidor de prueba):
Para evitar este problema debemos editar el archivo de configuraci&#243;n de PHP, es decir, php.ini.
Buscar los siguientes valores y asignarles mayor tama&#241;o
post_max_size = [...]]]></description>
			<content:encoded><![CDATA[<p>Al intentar cargar en una base de datos un archivo sql que pase de los 2 megas PHPMyAdmin se queda colgado o muestra error.</p>
<p><b>Opci&oacute;n 1 (si es para uso local, servidor de prueba):</b></p>
<p>Para evitar este problema debemos editar el archivo de configuraci&oacute;n de PHP, es decir, php.ini.</p>
<p>Buscar los siguientes valores y asignarles mayor tama&ntilde;o</p>
<p><code>post_max_size = 2M<br />
upload_max_filesize = 2M</code></p>
<p><b>Opci&oacute;n 2 (si es en remoto, servidor de verdad):</b></p>
<ul>
<li>No modificar los valores en php.ini para evitar que nos suban archivos muy grandes.</li>
<li>Subir el archivo sql por ftp.</li>
<li>Abir una consola remota ssh.</li>
<li>Ejecutar el comando:<br />
<code> mysql -u usuario -p nombre_db &lt; archivo.sql </code></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.s3v-i.net/bases-de-datos/importar-archivos-sql-grandes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Base de datos multiusuario</title>
		<link>http://www.s3v-i.net/bases-de-datos/mysql/base-de-datos-multiusuario/</link>
		<comments>http://www.s3v-i.net/bases-de-datos/mysql/base-de-datos-multiusuario/#comments</comments>
		<pubDate>Mon, 08 May 2006 12:16:43 +0000</pubDate>
		<dc:creator>Ricardo F</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.s3v-i.net/2006/05/08/base-de-datos-multiusuario/</guid>
		<description><![CDATA[Si tenemos varios usuarios utilizando MySQL con la interfaz PHPMyAdmin debemos restringir los permisos de manera que un usuario no tenga acceso a las bases de datos de otros usuarios.
Para identificar a qu&#233; usuario pertenece una base de datos, se le antepone un prefijo que consiste en el nombre del usuario y un caracter separador [...]]]></description>
			<content:encoded><![CDATA[<p>Si tenemos varios usuarios utilizando MySQL con la interfaz PHPMyAdmin debemos restringir los permisos de manera que un usuario no tenga acceso a las bases de datos de otros usuarios.</p>
<p>Para identificar a qu&eacute; usuario pertenece una base de datos, se le antepone un prefijo que consiste en el nombre del usuario y un caracter separador delante del nombre de la base de datos de la manera: usuario_base</p>
<p>Para ello hacer lo siguiente:</p>
<ul>
<li>Ir a &quot;Privilegios&quot; y crear un nuevo usuario.</li>
<li>El usuario no debe tener ning&uacute;n tipo de privilegio global.</li>
<li>En &quot;Pirvilegios espec&iacute;ficos para la base de datos&quot; escribimos el nombre de usuario seguido de un caracter separador como puede ser el gu&iacute;on bajo &quot;_&quot; o el s&iacute;mbolo de porcentaje &quot;%&quot; quedando algo como usuario_. Este ser&aacute; el prefijo que tendr&aacute; el usuario en sus bases de datos. Pulsar en &quot;Continuar&quot;.</li>
<li>A continuaci&oacute;n, otorgar todos los privilengios espec&iacute;ficos necesarios y finalizar.</li>
</ul>
<p>Para crear una base de datos nueva, el usuario debera escribir su prefijo delante del nombre de nueva base de datos. Esta base de datos s&oacute;lo podr&aacute; ser administrada por ese usuario y por el root, naturalmente.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.s3v-i.net/bases-de-datos/mysql/base-de-datos-multiusuario/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
