Está en la página 1de 8

CONSULTAS DEL LENGUAJE SQL

Estructura del Lenguaje

Introducción

1- Definición de SQL: El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structured query
language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos
de operaciones en estas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo
efectuar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos, así
como también hacer cambios sobre ella.

2- Existen dos lenguajes para el manejo de bases de datos DDL y DML:

3- DDL (Data Definition Language) Lenguaje de definición de datos. Es el lenguaje que se usa para crear bases de
datos y tablas, y para modificar sus estructuras, así como los permisos y privilegios.

4- DML (Data Manipulation Language) lenguaje de manipulación de datos. Es el que se usa para modificar y
obtener datos desde las bases de datos

Qué es DDL?

DDL → Data Definition Language

Involucra los comandos necesarias para crear una tabla

Involucra los comandos necesarias para modificar una tabla

Involucra los comandos necesarias para eliminar una tabla

Permite crear claves primarias, índices y restricciones

Los comandos más conocidos son:

CREATE TABLE – crea una nueva tabla en una base de datos

ALTER TABLE – modifica una tabla en una base de datos existente

DROP TABLE – elimina una tabla en una base de datos

CREATE INDEX – crea un índice en una tabla o vista

DROP INDEX – elimina un índice de una tabla o vista

Qué es DML?

DML → Data Manipulation Language

Involucra los comandos necesarios para hacer consultas


Involucra los comandos necesarios para hacer inserciones

Involucra los comandos necesarios para hacer modificaciones

Involucra los comandos necesarios para hacer eliminaciones

Los comandos utilizados son:

SELECT – obtiene información de una base de datos

UPDATE - actualiza información de una base de datos

DELETE – elimina información de una base de datos

INSERT INTO – inserta información en una base de datos

Creación de una Tabla

La sentencia CREATE TABLE creará una tabla con las columnas que indiquemos

Crearemos, como ejemplo, una tabla que nos permitirá almacenar nombres de personas y sus fechas de nacimiento

CREATE TABLE gente (

nombre VARCHAR(40),

fecha DATE

);

Al definir cada columna podemos decidir si podrá o no contener valores nulos.

Ejemplo:

CREATE TABLE `alumnos` (

`idAlumno` int(11) unsigned NOT NULL auto_increment,

`nombre` varchar(40) NOT NULL default '',

`apellido` varchar(100) NOT NULL default '',

`telefono` varchar(30) NOT NULL default '',


`mail` varchar(50) NOT NULL default '',

`fechaNac` date NOT NULL default '0000-00-00',

PRIMARY KEY (`idAlumno`) )

Ejemplo de aplicación: Crearemos una tabla llamada "agenda", debe tener los siguientes campos:

nombre varchar(20), domicilio varchar(30), y telefono varchar(11)

CREATE TABLE agenda(

nombre varchar(20) NOT NULL,

domicilio varchar(30),

telefono varchar(11)

);

--- con el comando podemos consultar la estructura de la tabla.

DESCRIBE agenda;

Eliminar una Tabla

DROP TABLE nombre_de_la_tabla

Ejemplo de aplicación: Borraremos la tabla agenda.

DROP TABLE agenda;

DROP TABLE IF EXISTS agenda;

Nota: la cláusula IF EXISTS no devuelve error en caso de que no exista la tabla que deseamos eliminar.

Consultas Básicas

Select

Se utiliza para seleccionar información de una tabla

Para seleccionar todas la columnas se utiliza el * (asterisco)


La cláusula WHERE se utiliza para establecer un criterio de búsqueda

Sintaxis #1:

SELECT *

FROM tabla_nombre

Sintaxis #2:

SELECT nombre_columna(s)

FROM tabla_nombre

Sintaxis #3:

SELECT nombre_columna(s)

FROM tabla_nombre

WHERE campo1 = valor1

Ejemplo de aplicación:

SELECT nombre,apellido

FROM alumnos

WHERE edad >12;

Consultas con SQL SELECT

Para extraer los datos y que nos los presente en pantalla, utilizamos la orden SELECT
SELECT columnas

FROM referencias_de_tablas

WHERE condiciones

[GROUP BY {nombre_col | expresión | posición}

[HAVING condiciones]

[ORDER BY {nombre_col | expresion | posicion}

[ASC | DESC] ,...]

Mediante la sentencia SELECT es posible hacer una proyección de una tabla, seleccionando las columnas de las
que queremos obtener datos. En la sintaxis que hemos mostrado, la selección de columnas corresponde con la parte
"expresion_select". En el ejemplo anterior hemos usado '*', que quiere decir que se muestran todas las columnas.

Las expresiones select no se limitan a nombres de columnas de tablas, pueden ser otras expresiones, incluso aunque
no correspondan a ninguna tabla:

SELECT SIN(3.1416/2), 3+5, 7*4

También podemos aplicar funciones sobre columnas de tablas, y usar esas columnas en expresiones para generar
nuevas columnas:

SELECT nombre, fecha, DATEDIFF(CURRENT_DATE(),fecha)/365 FROM gente;

Es posible asignar un alias a cualquiera de las expresiones select. Esto se puede hacer usando la palabra AS, aunque
esta palabra es opcional:

SELECT nombre, fecha, DATEDIFF(CURRENT_DATE(),fecha)/365 AS edad

SELECT permite usar condiciones como parte de su sintaxis, es decir, para hacer selecciones. Concretamente
mediante la cláusula WHERE

SELECT * FROM gente WHERE nombre="Mengano";

En una cláusula WHERE se puede usar cualquier función disponible en SQL.

También se puede aplicar lógica booleana para crear expresiones complejas. Disponemos de los operadores AND,
OR, XOR y NOT.

Condiciones Lógicas
Operadores Lógicos

A B A AND B
falso falso falso
falso verdaderofalso
verdadero falso falso
verdadero verdaderoverdadero
falso NULL falso
NULL falso falso
verdadero NULL NULL
NULL verdaderoNULL

A B A OR B
falso falso Falso
falso verdadero Verdadero
verdadero falso Verdadero
verdadero verdadero Verdadero
falso NULL NULL
NULL falso NULL
verdadero NULL Verdadero
NULL verdadero Verdadero

A B A XOR B
falso falso Falso
falso verdaderoVerdadero
verdadero falso Verdadero
verdadero verdaderoFalso
falso NULL NULL
NULL falso NULL
verdadero NULL NULL
NULL verdaderoNULL

A NOT A
falso verdadero
verdadero falso
NULL NULL

Para crear expresiones lógicas, a las que podremos aplicar el álgebra de Boole, disponemos de varios operadores de
comparación. Estos operadores se aplican a cualquier tipo de columna: fechas, cadenas, números, etc, y devuelven
valores lógicos: verdadero o falso (1/0).

Si uno o los dos valores a comparar son NULL, el resultado es NULL, excepto con el operador <=>, de
comparación con NULL segura.

El operador <=> funciona igual que el operador =, salvo que si en la comparación una o ambas de las expresiones
es nula el resultado no es NULL. Si se comparan dos expresiones nulas, el resultado es verdadero:
Operador Descripción
<= Menor o igual
< Menor
> Mayor
>= Mayor o igual

Los operadores IS NULL e IS NOT NULL sirven para verificar si una expresión determinada es o no nula

Ejemplos de aplicación:

select * from artículos where precio >= 500 or stock >= 100;
select nombre,descripcion, precio,cantidad from artículos
where cantidad < 20 and precio >=100;
select nombre, domicilio from agenda where domicilio is not null;

Sentencia Between

Entre los operadores de MySQL, hay uno para comprobar si una expresión está comprendida en un determinado
rango de valores. La sintaxis es:

BETWEEN mínimo AND máximo


NOT BETWEEN mínimo AND máximo

Ejemplo de aplicación

select * from articulos where precio between 100 and 200;

select * from articulos where precio not between 100 and 200;

Sentencia IN

Los operadores IN y NOT IN sirven para averiguar si el valor de una expresión determinada está dentro de un
conjunto indicado

IN (<expr1>, <expr2>, <expr3>...)


NOT IN (<expr1>, <expr2>, <expr3>...)

El operador IN devuelve un valor verdadero, 1, si el valor de la expresión es igual a alguno de los valores
especificados en la lista. El operador NOT IN devuelve un valor falso en el mismo caso. Por ejemplo:

SELECT 10 IN(2, 4, 6, 8, 10);

Ejemplo de aplicación

select * from agenda where nombre in (‘Juan’,’Susana’);


select * from agenda where nombre not in (‘Juan’,’Susana’);
Sentencia LIKE

El operador LIKE se usa para hacer comparaciones entre cadenas y patrones. El resultado es verdadero (1) si la
cadena se ajusta al patrón, y falso (0) en caso contrario. Tanto si la cadena como el patrón son NULL, el resultado
es NULL. La sintaxis es:

LIKE <patrón> [ESCAPE 'carácter_escape']

Carácter Descripción
% Coincidencia con cualquier número de caracteres, incluso ninguno.
_ Coincidencia con un único carácter.

La comparación es independiente del tipo de los caracteres, es decir, LIKE no distingue mayúsculas de minúsculas,
salvo que se indique lo contrario (ver operadores de casting):

Como siempre que se usan caracteres concretos para crear patrones, se presenta la dificultad de hacer
comparaciones cuando se deben buscar precisamente esos caracteres concretos. Esta dificultad se suele superar
mediante secuencias de escape. Si no se especifica nada en contra, el carácter que se usa para escapar es '\'. De este
modo, si queremos que nuestro patrón contenga los caracteres '%' o '_', los escaparemos de este modo: '\%' y '\_':

Como en cualquier otro lenguaje, los paréntesis se pueden usar para forzar el orden de la evaluación de
determinadas operaciones dentro de una expresión. Cualquier expresión entre paréntesis adquiere mayor
precedencia que el resto de las operaciones en el mismo nivel de paréntesis.

Ejemplo de aplicación:

select * from agenda where nombre like ´%ana%';


--- lista todos los nombres que contienen ana
--- ej. Analia,Mariana,Susana, Diana, etc.

También podría gustarte