La mayoría de las aplicaciones web modernas de hoy en día interactúan con bases de datos, generalmente con un lenguaje llamado SQL. Por suerte para nosotros, este lenguaje es bastante fácil de aprender. En este artículo, comenzaremos con algunas consultas SQL básicas y las utilizaremos para interactuar con una base de datos MySQL..
SQL (lenguaje de consulta estructurado) es un lenguaje diseñado para interactuar con sistemas de gestión de bases de datos relacionales (RDBMS), como MySQL, Oracle, Sqlite, etc. Para realizar las consultas SQL en este artículo, sugiero que tenga instalado MySQL. También recomiendo phpMyAdmin como una interfaz visual para MySQL.
Las siguientes aplicaciones facilitan la instalación de MySQL y phpMyAdmin en su máquina local:
Vamos a utilizar la línea de comandos para las consultas. WAMP ya viene con una consola MySQL. Para MAMP, es posible que desee leer este artículo.
Aquí viene nuestra primera consulta. Vamos a crear una base de datos para trabajar con.
Primero, abra su consola MySQL e inicie sesión. Para WAMP, la contraseña predeterminada está en blanco. Para MAMP, la contraseña debe ser 'root' por defecto.
Después de iniciar sesión, escriba esta consulta y presione enter:
CREAR BASE DE DATOS my_first_db;
Tenga en cuenta que el punto y coma (;) se agrega al final de la consulta, al igual que al final de las líneas de código.
Además, las palabras especiales 'CREAR BASE DE DATOS' no distinguen entre mayúsculas y minúsculas, junto con todas las palabras especiales en SQL. Pero en aras de la legibilidad, los escribiremos en mayúsculas.
Si desea establecer el conjunto de caracteres y la intercalación predeterminados, puede escribir la misma consulta como esta en su lugar:
CREAR BASE DE DATOS my_first_db CONJUNTO DE CARACTERES PREDETERMINADOS utf8 COLLATE utf8_general_ci;
Aquí hay una lista de conjuntos de caracteres admitidos y colaciones en MySQL.
Esta consulta se utiliza para obtener una lista de todas las bases de datos que tiene.
Puede eliminar una base de datos existente con esta consulta.
Tenga cuidado con esta consulta, ya que no le avisa. Si tiene tablas y datos en la base de datos, todos se borrarán instantáneamente.
Esto técnicamente no es una consulta. Es una 'declaración' y no requiere un punto y coma al final.
Le dice a MySQL que seleccione una base de datos predeterminada con la que trabajar, para la sesión actual. Ahora estamos listos para crear tablas y hacer otras cosas en esta base de datos..
Puede pensar en una tabla de base de datos como una hoja de cálculo o un archivo csv que contiene datos estructurados.
Al igual que en este ejemplo, las tablas tienen nombres de columna y filas de datos. Con consultas SQL podemos crear estas tablas. También podemos agregar, leer, actualizar y borrar los datos..
Con esta consulta podemos crear tablas en la base de datos. Desafortunadamente, la documentación de MySQL no es muy amigable para los nuevos estudiantes. La estructura de este tipo de consulta puede ser muy compleja, pero comenzaremos con una fácil.
La siguiente consulta creará una tabla con 2 columnas..
CREAR TABLAS usuarios (nombre de usuario VARCHAR (20), fecha de creación, FECHA);
Tenga en cuenta que podemos escribir una consulta en varias líneas e incluso usar pestañas para la sangría.
La primera línea es fácil. Simplemente creamos una tabla llamada 'usuarios'. A continuación, en paréntesis, tenemos una lista de columnas de la tabla separadas por comas. Después de cada nombre de columna, tenemos un tipo de datos, como VARCHAR o DATE.
VARCHAR (20) significa que la columna es un tipo de cadena y puede tener una longitud máxima de 20 caracteres. FECHA es también un tipo de datos que se utiliza específicamente para almacenar fechas, en este formato: 'AAAA-MM-DD'.
Antes de ejecutar esa consulta, también deberíamos incluir una columna para 'user_id', que será una CLAVE PRIMARIA. Sin entrar demasiado en los detalles, puede pensar en una LLAVE PRINCIPAL como una manera de identificar cada fila de datos en una tabla.
Ahora la consulta se convierte en:
CREAR TABLA usuarios (user_id INT AUTO_INCREMENT PRIMARY KEY, nombre de usuario VARCHAR (20), create_date DATE);
INT hace que este sea un tipo entero de 32 bits (es decir, numérico). AUTO_INCREMENT genera automáticamente un nuevo número de identificación cada vez que agregamos nuevas filas de datos. No es obligatorio, pero lo hace mucho más cómodo..
Esta columna no tiene que ser un entero, pero es el tipo más utilizado. No es necesario tener una columna de CLAVE PRINCIPAL, pero se recomienda encarecidamente para un buen diseño y rendimiento de la base de datos.
Vamos a ejecutar la consulta:
Esta consulta le permite obtener una lista de las tablas que se encuentran actualmente en la base de datos.
Para ver la estructura de una tabla existente, puede utilizar esta consulta.
Los campos (también conocidos como columnas) se enumeran en los resultados, con sus propiedades.
Al igual que DROP DATABASES, esta consulta elimina una tabla y su contenido, sin advertencia..
Esta consulta también puede tener una estructura bastante compleja debido a la multitud de cambios que puede realizar en una tabla. Veamos algunos ejemplos simples..
(Asegúrese de volver a crear la tabla que acabamos de quitar o las siguientes consultas obviamente no funcionarán).
ALTERAR MESA usuarios AGREGAR correo electrónico VARCHAR (100) DESPUÉS de nombre de usuario;
Gracias a la legibilidad de SQL, no creo que esa consulta necesite una explicación..
Eso también fue muy simple. Pero úselo con precaución, ya que elimina los datos de forma permanente sin previo aviso..
Vuelva a agregar la columna de correo electrónico porque la usaremos más adelante:
ALTERAR MESA usuarios AGREGAR correo electrónico VARCHAR (100) DESPUÉS de nombre de usuario;
A veces es posible que desee cambiar las propiedades de una columna, por lo que no tiene que eliminarla ni recrearla.
Eso cambió el nombre de la columna de nombre de usuario a 'nombre_usuario' y cambió el tipo de VARCHAR (20) a VARCHAR (30). Un cambio como este no debe alterar ninguno de los datos existentes en la tabla.
Agreguemos algunos datos a la tabla usando esta consulta.
Como puede ver, VALUES () contiene la lista de valores de campo, separados por comas. Los valores de cadena están encerrados entre comillas simples. Y los valores deben estar en el orden de las columnas que se definieron cuando creamos la tabla.
Tenga en cuenta que el primer valor es NULL para el campo PRIMARY KEY que llamamos 'user_id'. Hacemos esto para que se genere automáticamente una identificación, porque la columna se establece en AUTO_INCREMENT. Al ingresar una fila de datos por primera vez, la identificación será 1. La siguiente fila insertada será 2 y así sucesivamente ...
Aquí hay otra sintaxis para insertar filas..
Esta vez estamos usando la palabra clave SET en lugar de VALUES, y no está seguida por paratheses. Hay algunas cosas a tener en cuenta aquí:
Aquí hay otra sintaxis..
Nuevamente, como cada columna está referenciada por su nombre, pueden estar en cualquier orden.
Puede utilizar esta consulta para obtener el ID de AUTO_INCREMENT para la última fila insertada, en la sesión actual.
Creo que es un buen momento para demostrar cómo puedes usar una función MySQL dentro de tus consultas.
La función NOW () devuelve la fecha actual. Por lo tanto, puede usarlo para establecer automáticamente una columna DATE en el día actual mientras inserta una nueva fila..
Tenga en cuenta que recibimos una advertencia de MySQL, pero no es un gran problema. La razón es que NOW () en realidad también devuelve información de tiempo.
Pero la columna create_date que creamos solo contiene la fecha, y no la hora, por lo que se truncaron los datos devueltos. Podríamos usar la función CURDATE () en su lugar, que devuelve solo la fecha, pero los datos almacenados al final serían de la misma manera..
Obviamente, los datos que agregamos serían inútiles a menos que podamos leerlos. Aquí es donde entra la consulta SELECT.
Aquí está la consulta SELECT más sencilla posible para leer de una tabla:
En este caso, el asterisco (*) significa que pedimos recuperar todas las columnas de la tabla. Si solo desea columnas específicas, la consulta se vería así:
La mayoría de las veces, solo estamos interesados en algunas de las filas, y no en todas. Por ejemplo, digamos que queremos la dirección de correo electrónico para los usuarios 'nettuts'.
Piense en ello como una declaración IF. DONDE le permite poner condiciones en la consulta para los resultados que está buscando.
Tenga en cuenta que para la condición de igualdad, solo se usa un único signo igual (=), en lugar del doble (==), al que podría estar acostumbrado en la programación.
Puedes usar otras condiciones de comparación también:
AND y OR se pueden utilizar para combinar condiciones:
Tenga en cuenta que los valores numéricos no tienen que estar entre comillas.
Esto es útil para hacer coincidir múltiples valores.
Esto le permite hacer búsquedas de comodines..
El signo de porcentaje (%) se utiliza como comodín.
Si desea que los resultados se devuelvan en un orden específico, use esta cláusula:
El orden predeterminado es ASC (es decir, ascendente). Puedes agregar DESC para revertirlo.
Puede limitar el número de resultados devueltos.
LÍMITE 2 acaba de obtener los 2 primeros resultados. LÍMITE 1 DESPLAZAMIENTO 2 obtiene 1 resultado, después de los primeros 2 resultados. LÍMITE 2, 1 significa lo mismo, pero tenga en cuenta que el primer número es el desplazamiento y el segundo número es el límite.
Esta consulta se utiliza para actualizar los datos en una tabla..
La mayoría de las veces, se utiliza con una cláusula WHERE, porque desearía que solo se actualizaran filas específicas. Si no se proporciona una cláusula WHERE, todas las filas se actualizarían con los mismos cambios.
También puede usar una cláusula LIMIT para limitar el número de filas a actualizar.
Al igual que UPDATE, esta consulta también se usa generalmente con una cláusula WHERE.
Para eliminar todo el contenido de una tabla, simplemente puede hacer esto:
BORRAR DE los usuarios;
Pero usualmente es más eficiente en rendimiento que usar TRUNCATE..
TRUNCATE también restablece los números de AUTO_INCREMENT para que una nueva fila tenga nuevamente el id 1. Pero esto no ocurre con una consulta DELETE, y el contador sigue subiendo.
Ciertos caracteres deben ser escapados, de lo contrario puede tener problemas.
La barra invertida (\) se utiliza para escapar.
Esto también es muy importante por razones de seguridad. Cualquier entrada de usuario que entra en la base de datos debe ser escapada correctamente. En PHP, usa la función mysql_real_escape_string () o usa declaraciones preparadas ya que se escapan automáticamente.
Como MySQL tiene muchas palabras especiales como SELECCIONAR o ACTUALIZAR, puede evitar la colisión poniendo comillas alrededor de sus nombres de tabla y columna. Pero estas no son las citas regulares; necesitas usar el carácter de comilla invertida (').
Digamos que desea agregar una columna llamada 'eliminar' por alguna razón:
Gracias por leer el artículo. Con suerte, pude mostrarle que SQL tiene una curva de aprendizaje fácil pero es muy potente.
Por favor, deje sus comentarios y preguntas, y tenga un gran día!
¿Listo para llevar sus habilidades al siguiente nivel y comenzar a beneficiarse de sus scripts y componentes? Echa un vistazo a nuestro mercado hermano, CodeCanyon.