SQL 3
SQL 3
SQL 3
Introducción
Comandos
Por medio de este lenguaje los usuarios pueden realizar consultas o manipular datos
que se encuentran ya organizados en una forma estructurada.
DDL
Cláusulas
Dada una sentencia SQL de selección que incluye todas las posibles cláusulas, el orden de
ejecución de las mismas es el siguiente:
1. Cláusula FROM
2. Cláusula WHERE
3. Cláusula GROUP BY
4. Cláusula HAVING
5. Cláusula SELECT
6. Cláusula ORDER BY
Crear base de datos
SENTENCIA CREATE TABLE
La sentencia CREATE TABLE es utilizada para crear una tabla en una base de datos.
Las tablas se organizan en filas y columnas; y cada tabla debe tener un nombre.
SINTAXIS PARA LA SENTENCIA CREATE TABLE
SCRIPT
Comandos basicos
Para ver la estructura de una tabla usamos el comando "describe" junto al nombre de la tabla:
Repaso a la sentencia de MySQL DELETE que sirve para eliminar filas o registros de
tablas de una base de datos.
Sentencia SQL UPDATE
Las consultas de selección se utilizan para indicar al motor de datos que devuelva
información de las bases de datos, esta información es devuelta en forma de conjunto de
registros que se pueden almacenar en un objeto recordset. Este conjunto de registros puede
ser modificable.
Consultas básicas
La sintaxis básica de una consulta de selección es la siguiente:
SELECT Campos FROM Tabla
Ejemplos de cláusula WHERE MySQL
¿Qué es la Cláusula Group by?
La cláusula GROUP BY es un comando SQL que se usa para agrupar filas que tienen los
mismos valores .
La cláusula GROUP BY se utiliza en la instrucción SELECT. Opcionalmente se usa junto
con funciones agregadas para producir informes resumidos de la base de datos.
Eso es lo que hace, resumiendo los datos de la base de datos.
Las consultas que contienen la cláusula GROUP BY se denominan consultas agrupadas y
solo devuelven una sola fila para cada elemento agrupado.
GROUP BY Sintaxis
Ahora que sabemos cuál es la cláusula GROUP By, veamos la sintaxis para un grupo
básico por consulta.
Ejemplo
Queremos recuperar todos los registros cuyo autor sea igual a "Borges" y cuyo precio no
supere los 20 pesos, para ello necesitamos 2 condiciones:
Los registros recuperados en una sentencia que une 2 condiciones con el operador "and",
cumplen con las 2 condiciones.
Queremos ver los libros cuyo autor sea "Borges" y/o cuya editorial sea "Planeta":
En la sentencia anterior usamos el operador "or", indicamos que recupere los libros en los cuales
el valor del campo "autor" sea "Borges" y/o el valor del campo "editorial" sea "Planeta", es decir,
seleccionará los registros que cumplan con la primera condición, con la segunda condición o con
ambas condiciones.
Los registros recuperados con una sentencia que une 2 condiciones con el operador "or",
cumplen 1 de las condiciones o ambas.
Queremos ver los libros cuyo autor sea "Borges" o cuya editorial sea "Planeta":
En la sentencia anterior usamos el operador "xor", indicamos que recupere los libros en los
cuales el valor del campo "autor" sea "Borges" o el valor del campo "editorial" sea "Planeta",
es decir, seleccionará los registros que cumplan con la primera condición o con la
segunda condición pero no los que cumplan con ambas condiciones. Los registros
recuperados con una sentencia que une 2 condiciones con el operador "xor", cumplen 1 de las
condiciones, no ambas.
Queremos recuperar los libros que no cumplan la condición dada, por ejemplo, aquellos
cuya editorial NO sea "Planeta":
El orden de prioridad de los operadores lógicos es el siguiente: "not" se aplica antes que
"and" y "and" antes que "or", si no se especifica un orden de evaluación mediante el uso
de paréntesis.
El orden en el que se evalúan los operadores con igual nivel de precedencia es indefinido,
por ello se recomienda usar los paréntesis.
Varias tablas (join)
Hasta ahora hemos trabajado con una sola tabla, pero en general, se trabaja con varias
tablas.
Para evitar la repetición de datos y ocupar menos espacio, se separa la información en
varias tablas. Cada tabla tendrá parte de la información total que queremos registrar.
Por ejemplo, los datos de nuestra tabla "libros" podrían separarse en 2 tablas, una "libros"
y otra "editoriales" que guardará la información de las editoriales. En nuestra tabla "libros"
haremos referencia a la editorial colocando un código que la identifique. Veamos:
De este modo, evitamos almacenar tantas veces los nombres de las editoriales y su dirección
en la tabla "libros" y guardamos el nombre y su dirección en la tabla "editoriales"; para indicar
la editorial de cada libro agregamos un campo referente al código de la editorial en la tabla
"libros" y en "editoriales".
Indicamos el nombre de la tabla luego del "from" ("libros"), unimos esa tabla con "join" y el
nombre de la otra tabla ("editoriales"), luego especificamos la condición para enlazarlas con "on",
es decir, el campo por el cual se combinarán. "on" hace coincidir registros de las dos tablas
basándose en el valor de algún campo, en este ejemplo, los códigos de las editoriales de ambas
tablas, el campo "codigoeditorial" de "libros" y el campo "codigo" de "editoriales" son los que
enlazarán ambas tablas.
Cuando se combina (join, unión) información de varias tablas, es necesario indicar qué
registro de una tabla se combinará con qué registro de la otra tabla.
Si omitimos la referencia a las tablas al nombrar el campo "codigo" (nombre de campo que
contienen ambas tablas):
Cada tabla tiene un alias y se referencian los campos usando el alias correspondiente. En este
ejemplo, el uso de alias es para fines de simplificación, pero en algunas consultas es
absolutamente necesario.
En la consulta anterior vemos que el código de la editorial aparece 2 veces, desde la tabla
"libros" y "editoriales". Podemos solicitar que nos muestre algunos campos: