Lenguaje DML
Lenguaje DML
Lenguaje DML
El Lenguaje DML
La sentencia SELECT
Consultas bsicas
Filtros
Ordenacin
Consulta resumen
Consultas multitabla
INSERT
Inserta uno o varios en alguna tabla.
DELETE
Borra registros de una tabla
UPDATE
Modifica registros de una tabla
El lenguaje DML
Cualquier ejecucin de un comando en un
SGBD se denomina CONSULTA.
Se entiende como una orden, una peticin al
SGBD
para
realizar
una
operacin
determinada.
Sentencia SELECT
Utilizada para consultar informacin.
SELECT
SELECT * FROM alumnos;
SELECT
SELECT matricula, nombre, 1+5
FROM alumnos;
SELECT 1+5;
SELECT nombre FROM alumnos;
Ejercicio 1
Crea una tabla en MySQL con la siguiente estructura:
MASCOTAS (nombre, especie, raza, edad, sexo)
Introduce 5 registros y realiza las consultas:
Muestra el nombre y la especie de todas las mascotas.
Muestra el nombre y el sexo de las mascotas
agregando un alias a los campos.
Muestra el nombre y la fecha de nacimiento
aproximada de las mascotas (emplea las funciones
date_sub y now).
Filtros
Los filtros son condiciones que el SGBD interpreta
para seleccionar registros y mostrarlos como
resultado de la consulta.
Where.
Sintaxis:
SELECT [DISTINCT] select_expr
[FROM tabla] [WHERE filtro];
Expresiones
Los filtros
expresiones.
se
construyen
mediante
Expresiones
Las expresiones pueden estar compuestas por:
Operandos
Operadores aritmticos
+-*/%
Operadores relacionales
Operadores lgicos
Parntesis
Funciones
Ejemplos de filtros
SELECT nombre, apellidop, apellidom
FROM alumnos
WHERE apellidop=Loredo;
SELECT nombre
FROM alumnos
WHERE carrera=ITI OR carrera=ITEM;
IN
Sintaxis:
Nombre_campo IN (valor1, valor2, valor3)
Ejemplo:
SELECT nombre, ap,am
FROM alumnos
WHERE carrera IN (ITI,ITEM);
Ejemplo de BETWEEN
SELECT nombre, ap, am
FROM alumnos
WHERE edad>=17 AND edad<=20;
Empleando BETWEEN:
SELECT nombre, ap, am
FROM alumnos
WHERE edad BETWEEN 17 AND 20;
Ejercicio 2
A la tabla MASCOTAS agrega el campo peso, el
cual almacenar el peso de cada mascota en
libras.
Saca el peso en kilogramos de cada una de las
mascotas, que pesen entre 15 y 30 kilos. Una
libra equivale a 0.4535 kilogramos.
IS
IS NOT
Ejemplo:
SELECT nombre, ap, am, email
FROM alumnos
WHERE email IS null;
SELECT nombre, ap, am, email
FROM alumnos
WHERE email IS NOT null;
Nombre
Apellido p
Apellido m
100001
Diana
Prez
Gmez
100023
Ana
Arriaga
Gonzlez
110047
Juan
Prez
Domnguez
120054
Laura
Snchez
Arteaga
Nombre
Apellido p
Apellido m
100001
Diana
Prez
Gmez
100023
Roberto
Arriaga
Gonzlez
110047
Juan
Prez
Domnguez
120054
Rodrigo
Snchez
Arteaga
Nombre
Apellido p
Apellido m
100001
Francisco
Prez
Gmez
100023
Ana
Arriaga
Gonzlez
110047
Juan
Prez
Domnguez
120054
Laura
Snchez
Arteaga
Sintaxis:
LIMIT [desplazamiento] nfilas
Donde:
desplazamiento especifica a partir de qu registro se
empieza a contar
nfilas
es el nmero de registros a devolver
SELECT *
FROM alumnos LIMIT 3;
Matrcula
Nombre
Apellido p
Apellido m
100001
Diana
Prez
Gmez
100023
Ana
Arriaga
Gonzlez
110047
Juan
Prez
Domnguez
120054
Laura
Snchez
Arteaga
SELECT *
FROM alumnos LIMIT 2,3;
Matrcula
Nombre
Apellido p
Apellido m
100001
Diana
Prez
Gmez
100023
Ana
Arriaga
Gonzlez
110047
Juan
Prez
Domnguez
120054
Laura
Snchez
Arteaga
130014
Antonio
Ontiveros
Lrraga
Ordenacin
Clusula ORDER BY
Permite ordenar el conjunto de resultados en
forma ascendente o en forma descendente.
Permite ordenar por una o varias columnas.
Sintaxis:
ORDER BY {nombre_columna | expr | posicin} [ASC | DESC]
Donde:
ASC
orden ascendente (default)
DESC orden descendente
Clusula Order by
Ejemplo 1:
Clusula Order by
Ejemplo 2:
Clusula Order by
Ejemplo 3:
Mostrar a todos los alumnos ordenados
ascendentemente por apellido paterno y enseguida
por apellido materno descendentemente.
SELECT *
FROM alumnos
WHERE carrera=ITEM
ORDER BY apellidop ASC, apellidom DESC;
Consulta resumen
Las consultas resumen se utilizan para extraer
informacin calculada de varios conjuntos de
registros.
Las funciones convierten un conjunto de
registros en una informacin simple cuyo
resultado es un clculo.
Funciones de MySQL
Funcin
Descripcin
SUM(expresin)
AVG(expresin)
MIN(expresin)
MAX(expresin)
COUNT(nbColumna)
COUNT(*)
Funciones de MySQL
Ejemplos:
Mostrar el promedio mas altos de los alumnos
SELECT max(promedio)
FROM alumnos;
Mostrar el promedio mas bajo de los alumnos
SELECT min(promedio)
FROM alumnos;
Funciones de MySQL
Ejemplos:
Mostrar la cantidad de alumnos que estudian la
carrera de ITI
SELECT count(*)
FROM alumnos
WHERE carrera=ITI;
Agrupacin de registros
Se refiere a un conjunto de registros que
tienen una o varias columnas con el mismo
valor.
Matrcula Nombre
Apellido p
Apellido m
Carrera
100001
Francisco
Prez
Gmez
ITI
100023
Ana
Arriaga
Gonzlez
ITI
110047
Juan
Prez
Domnguez
ITEM
120054
Laura
Snchez
Arteaga
ITEM
Sentencia GROUP BY
Sintaxis:
Agrupar registros
matrcula nombre
apellidop
apellidom
carrera
100001
Francisco
Prez
Gmez
ITI
100023
Ana
Arriaga
Gonzlez
ITI
110047
Juan
Prez
Domnguez
ITEM
120054
Laura
Snchez
Arteaga
ITEM
Filtros de grupos
Los filtros de grupos se realizan mediante el uso de la
clusula HAVING.
La clusula HAVING se utilizan para filtrar resultados
calculados mediante agrupaciones.
Filtros de grupos
Ejemplo:
Consultas multitabla
Una consulta multitabla es aquella en la que se puede
consultar informacin de ms de una tabla.
SELECT *
FROM alumnos, grupos
WHERE alumnos.matricula=grupos.matricula
La sentencia INSERT
Esta sentencia permite insertar un registro a una tabla.
Sintaxis:
INSERT [INTO] nombre_tabla [(columna,)]
VALUES (expresion|DEFAULT,)
Donde:
Nombre_tabla es el nombre de la tabla donde se insertarn los
registros
Columna
son las columnas donde se insertar la informacin
(opcional indicarlas)
Si no se especifican las columnas, los valores se deben escribir
conforme al orden de los campos en la definicin de la tabla.
La sentencia INSERT
Ejemplo 1:
INSERT INTO clientes(ncliente, nombre, apellidop, apellidom,email)
VALUES (1001, Juan,Rodrguez,Guel,[email protected]);
Ejemplo 2:
INSERT INTO clientes
VALUES (1002,Laura,Orduo,Lara);
Ejemplo 3:
INSERT INTO clientes(ncliente, nombre, apellidop,
apellidom,email,telefono)
VALUES (1003, Alejandro,Rodrguez,Gutierrez,[email protected]);
Sintaxis:
Sentencia UPDATE
Esta sentencia permite modificar el contenido
de cualquier campo y registro de una tabla.
Sintaxis:
UPDATE nombre_tabla
SET nombre_columna=expresion, [nom2=exp2]
WHERE filtro;
Sentencia UPDATE
Ejemplo 1:
UPDATE alumnos SET [email protected]
WHERE num=1009;
Ejemplo 2:
UPDATE cliente SET nombre=Bernardo, apellidop=Gil
WHERE ncliente=101;
Ejemplo 3:
UPDATE jugadores SET peso=peso*0.4535;
Sentencia DELETE
Este sentencia se emplea para eliminar
registros de una tabla.
Sintaxis:
DELETE FROM nombre_tabla
[WHERE filtro]
Sentencia DELETE
Ejemplo 1:
DELETE FROM clientes;
Ejemplo 2:
DELETE FROM clientes
WHERE ncliente=1002;
1)
2)
3)
4)
5)
Seleccionar la tabla
Seleccionar la Ficha Insertar
Insertar los valores.
Pulsar el botn Continuar.
Se
genera
automticamente
correspondiente.
el
cdigo
SQL
1)
2)
3)
Seleccionar la tabla
Seleccionar la Ficha Examinar
Utilizar el botn Borrar para eliminar el registro deseado.
4)
Acceso a la informacin
Al administrar la seguridad en el acceso a informacin
de una BD se emplean 2 tipos de seguridad:
Las vistas
Una vista es una tabla virtual, sin contenido,
que devuelve las filas como resultado de
ejecutar una consulta SQL.
Consulta
Vista
Las vistas
Sintaxis:
Las vistas
Ejemplo:
Las vistas
Para eliminar una vista se utiliza la sentencia
DROP VIEW.
Sintaxis:
DROP VIEW [esquema.]nombre_vista;
Los usuarios
Es posible crear cuentas de usuario que permitan
a los usuarios acceder a ciertos objetos con un
nivel determinado de privilegios.
CREATE USER
Sintaxis:
CREATE USER nombre_usuario IDENTIFIED BY
password [opciones];
Los usuarios
Ejemplo:
Eliminar usuarios
Comando DROP USER
Sntaxis:
DROP USER nombre_usuario;
Renombrar usuarios
Comando RENAME USER
Ejemplo:
RENAME USER imelda@localhost to
deyanira@localhost;
Ejemplo:
SET PASSWORD for imelda@localhost =
PASSWORD (nuevo_password);
Los privilegios
Sentencia GRANT
Mediante este comando, un usuario puede
obtener privilegios para manipular objetos de
una base de datos.
Sentencia REVOKE
Mediante este comando, se pueden denegar
permisos a los usuarios.