SlideShare uma empresa Scribd logo
1 de 21
COMANDOS SQL
Bases de datos relacionales
Servidor de base de datos
Base de datos “Demo”
Base de datos “Finanzas”
Base de datos “Test”
En la figura anterior se observa que el
database server con acceso a las tres
bases de datos: demo, finanzas y test.
Con el comando psql finanzas se puede
conectar a la base de datos finanzas
Para ver una lista de las bases de datos,
teclear psql -l
Crear una tabla
• Vamos a crear una tabla llamada empleado en alguna
base de datos, por ejemplo test.
test=> CREATE TABLE empleado (
test(> nombre VARCHAR(20),
test(> apellido VARCHAR(20),
test(> sueldo FLOAT,
test(> sexo CHAR(1),
test(> edad INTEGER,
test(> transaccion TIMESTAMP DEFAULT
CURRENT_TIMESTAMP,
test(> ingreso DATE);
Insertar datos
test=> INSERT INTO empleado (nombre,
apellido, sueldo, sexo, edad, ingreso)
VALUES
test-> ('Javier', 'Ramírez', 34452.89, 'M', 23, '4-
06-08');
Observamos que se ponen las columnas en las
que se va a insertar, no se puso la columna
transaccion ya que esta se inserta por default
con la hora y la fecha actuales.
Seleccionar
Obtener toda la tabla empleado
test=> SELECT * FROM empleado;
Obtener algunas columnas y todos los
renglones de la tabla empleado
test=> SELECT apellido, sueldo, ingreso
FROM empleado;
Seleccionar renglones específicos
En SELECT se usa la cláusula WHERE, donde se
especifican los renglones que se quieren obtener. Por
ejemplo el nombre y apellido de los empleados cuya
edad sea mayor ó igual a 25 años.
test=> SELECT nombre, apellido FROM empleado
test-> WHERE edad >=25;
O bien, los que su apellido sea Ramírez
test=> SELECT nombre, apellido FROM empleado
test-> WHERE apellido = 'Ramírez';
Como se trata de columnas tipo caracter, se usan
apóstrofes y debe escribirse exactamente como esté en
la base de datos.
Removiendo datos con DELETE
• Con DELETE podemos mover uno ó bien
todos los renglones de una tabla, por
ejemplo DELETE FROM empleado;
eliminaría todos los datos de la tabla
empleado. Si utilizamos la cláusula
WHERE se eliminan los renglones que
cumplan la condición, por ejemplo:
test=> DELETE FROM empleado
test-> WHERE ingreso = '2008-12-24’;
Modificando datos con UPDATE
En una base de datos además de insertar y
eliminar datos hay que actualizar. Por ejemplo,
la edad del empleado Javier Pérez es de 35
años.
test=> UPDATE empleado SET edad = 35
WHERE apellido = 'Pérez';
La cláusula WHERE controla los renglones en los
que se llevará a cabo la modificación. Si no se
pone esta cláusula, se cambiarían la edad de
todos los empleados a 35.
Ordenando datos con ORDER BY
Cuando hacemos un SELECT, los renglones se
despliegan con un orden no determinado. Si se
quieren obtener los renglones en un orden
específico, es necesario aumentar la cláusula
ORDER BY al final del SELECT.
test=> SELECT * FROM empleado ORDER BY apellido;
Para invertir el orden se usa DESC
test=> SELECT * FROM empleado ORDER BY edad
DESC;
Se puede ordenar por distintas columnas, si en la primera
hay dos valores iguales, se usa la siguiente para ver
cual va primero.
Destruyendo tablas con DROP
• Cuando queremos eliminar
completamente la tabla escribimos:
DROP TABLE empleado;
• Si queremos eliminar todos los datos de
una tabla pero conservar su estructura
utilizamos (no ejecutarla):
DELETE FROM empleado;
Caracteres especiales
Si el empleado que vamos a insertar tiene un
apóstrofe en el nombre, por ejemplo:
test=> INSERT INTO empleado (nombre,
apellido, sueldo, sexo, edad, ingreso)
VALUES
test-> ('Jack', 'O'Donnell', 34452.89, 'M', 23, '4-
06-08');
Me marca un error: test'>
Para resolverlo:
'O''Donnell',se ponen dos apóstrofes ó
'O'Donnell' se pone una diagonal invertida
Etiquetado de columnas y
Comentarios
• El nombre que aparece en la salida de un SELECT
hasta arriba es la etiqueta de la columna que
corresponde al nombre del atributo. Se puede cambiar
usando la palabra clave AS, por ejempo:
test=> SELECT nombre AS Razón_Social FROM cuenta;
test=> SELECT 1 + 3 AS total;
• Con dos guiones -- indica que hasta el final del renglón
es un comentario
• Con /* al principio y con */ al final indica que todo lo que
está contenido es un comentario
test=> /*Esto es un comentario
test*> y no ejecuta nada*/;
Uso de AND/OR
AND y OR se usan para conectar condiciones simples.
Insertaremos más datos en empleado:
test=> INSERT INTO empleado (nombre, apellido, sueldo, sexo, edad,
ingreso)
VALUES ('María', 'Pérez', 2317.89, 'F', 23, '30-07-2005');
test=> INSERT INTO empleado (nombre, apellido, sueldo, sexo, edad,
ingreso)
VALUES ('Alejandro', 'Padilla', 4317.86, 'M', 24, '12-08-2006');
test=> INSERT INTO empleado (nombre, apellido, sueldo, sexo, edad,
ingreso)
VALUES ('Raquel', 'Carmona', 5817.86, 'F', 24, '15-02-2006');
test=> INSERT INTO empleado (nombre, apellido, sueldo, sexo, edad,
ingreso)
VALUES ('Armando', 'Pinillos', 7317.86, 'M', 24, '13-08-2005');
test=> INSERT INTO empleado (nombre, apellido, sueldo, sexo, edad,
ingreso)
test-> VALUES ('María', 'Romero', 11317.89, 'F', 23, '30-08-2004');
AND se usa para combinar las dos comparaciones que conecta,
ejemplo:
test=> SELECT * FROM empleado WHERE nombre='María' AND
apellido='Pérez';
OR verifica que se cumpla una de las dos comparaciones al menos,
ejemplo:
test=> SELECT * FROM empleado WHERE sexo = 'F' OR edad = 24;
Si se combinan ANDs y ORs en un mismo query es mejor agrupar los
ANDs y los ORs usando paréntesis. Los ANDs se evalúan primero.
Por ejemplo, si se quieren los de apellido Pérez y que sean
hombres ó mujeres si no usamos paréntesis el resultado es
incorrecto, ya que se evalúa el AND primero:
test=> SELECT * FROM empleado WHERE apellido='Pérez' AND
sexo='M' OR sexo='F'; Me da los de apellido Pérez Y son de sexo
M pero también todos los de sexo F´, ya que primero se ejecuta el
AND y después el OR.
Lo correcto es:
test=> SELECT * FROM empleado WHERE apellido='Pérez' AND
(sexo='M' OR sexo='F'); Este me da los que son de apellido Pérez
y que son de sexo M ó F.
Between y Like
Si queremos aquéllos empleados que están entre 24 y 30
años de edad:
test=> SELECT * FROM empleado WHERE edad >= 24
AND edad <= 30;
test=> SELECT * FROM empleado WHERE edad
BETWEEN 24 AND 30;
Para obtener los datos de los empleados cuyo apellido
inicia con la letra R:
test=> SELECT * FROM empleado WHERE apellido LIKE
'R%';
Obtener los que ingresaron en 2008:
test=> SELECT * FROM empleado WHERE ingreso LIKE
'2008%';
Comparaciones con LIKE
Empieza con una D LIKE ‘D%’
Contiene una D LIKE ‘%D%’
Tiene D en 2da posición LIKE ‘_D%’
Empieza con D y tiene una e LIKE ‘D%e%’
No empieza con D NOT LIKE ‘D%’
Agregación
A veces es necesario resumir cierta
información. En lugar de ver renglones,
solo se necesita saber cuántos son. Para
esto se usan las siguientes palabras clave:
COUNT(*) cuenta renglones
SUM(nombre_col) total
MAX(nombre_col) máximo
MIN(nombre_col) mínimo
AVG(nombre_col) promedio
Ejemplos
Contar número de renglones
test=> SELECT COUNT(*) FROM empleado;
Obtener la suma de los sueldos
test=> SELECT SUM(sueldo) FROM empleado;
Obtener el sueldo máximo
test=> SELECT MAX(sueldo) FROM empleado;
Obtener la edad mínima
test=> SELECT MIN(edad) FROM empleado;
Obtener el sueldo promedio
test=> SELECT AVG(sueldo) FROM empleado;
GROUP BY
En los ejemplos anteriores nos regresó un renglón como
resultado y sólo se usó una columna con el agregado.
Usando los agregados con GROUP BY se tendrá la
aplicación del agregado en una columna, en los
renglones agrupados por otra columna.
SELECT COUNT(*) FROM empleado, regresa el número
de renglones en la tabla.
Si queremos contar cuántos son sexo M y cuantos F:
test=> SELECT sexo, COUNT(*) FROM empleado
GROUP BY sexo;
Si por sexo se quiere saber datos del salario y de la edad:
test=> SELECT sexo,MIN(edad),MAX(edad),AVG(sueldo)
FROM empleado GROUP BY sexo ORDER BY 4 DESC;
HAVING
Permite probar condiciones en los valores agregados. A
menudo se usa con GROUP BY. Con HAVING se
pueden incluir o excluir grupos basados en el valor de
agregación para ese grupo.
En el ejemplo de contar los empleados por sexo, podemos
limitar para que despliegue solo aquéllos que sean más
de 3, el query que cuenta empleados por sexo es:
test=> SELECT sexo, COUNT(*) FROM empleado
GROUP BY sexo;
Sólo los que sean más de 3 empleados de ese sexo:
test=> SELECT sexo, COUNT(*) FROM empleado
GROUP BY sexo HAVING COUNT(*)>3;

Mais conteúdo relacionado

Mais procurados

Mais procurados (16)

Sql2
Sql2Sql2
Sql2
 
Sentencia select
Sentencia selectSentencia select
Sentencia select
 
Consultas select
Consultas selectConsultas select
Consultas select
 
Combinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablas
 
Cuadro de sentencias con descripcion y ejemplo
Cuadro de sentencias con descripcion y ejemploCuadro de sentencias con descripcion y ejemplo
Cuadro de sentencias con descripcion y ejemplo
 
Sql
SqlSql
Sql
 
BD_L8_EXP_ROZIC_CAP9_SQL
BD_L8_EXP_ROZIC_CAP9_SQLBD_L8_EXP_ROZIC_CAP9_SQL
BD_L8_EXP_ROZIC_CAP9_SQL
 
Triggers
TriggersTriggers
Triggers
 
Subconsultas
SubconsultasSubconsultas
Subconsultas
 
Sql básico - compendio
Sql básico  - compendioSql básico  - compendio
Sql básico - compendio
 
Practica3
Practica3Practica3
Practica3
 
USO DE SENTECIAS SQL
USO DE SENTECIAS SQLUSO DE SENTECIAS SQL
USO DE SENTECIAS SQL
 
Sql basico parte_i_
Sql basico parte_i_Sql basico parte_i_
Sql basico parte_i_
 
Sql basico parte_i_
Sql basico parte_i_Sql basico parte_i_
Sql basico parte_i_
 
14 structure query language
14 structure query language14 structure query language
14 structure query language
 
Manual php lec13.validacion_de_formularios
Manual php lec13.validacion_de_formulariosManual php lec13.validacion_de_formularios
Manual php lec13.validacion_de_formularios
 

Destaque

Medios de Comunicacion social en Venezuela en la identidad nacional.
Medios de Comunicacion social en Venezuela en la identidad nacional.Medios de Comunicacion social en Venezuela en la identidad nacional.
Medios de Comunicacion social en Venezuela en la identidad nacional.Cybernautic.
 
Diseño de estrategias para el uso de las redes sociales.
Diseño de estrategias para el uso de las redes sociales.Diseño de estrategias para el uso de las redes sociales.
Diseño de estrategias para el uso de las redes sociales.Itzy Hermoxa
 
Revista la calle 11 noviembre de 2009 resolucion 100 pdi
Revista la calle 11 noviembre de 2009 resolucion 100 pdiRevista la calle 11 noviembre de 2009 resolucion 100 pdi
Revista la calle 11 noviembre de 2009 resolucion 100 pdiYolanda Rojas
 
Trabajo final tutores virtuales
Trabajo final tutores virtualesTrabajo final tutores virtuales
Trabajo final tutores virtualesTecno Grace
 
Las tic
Las ticLas tic
Las ticUNY
 
Power metodos
Power metodosPower metodos
Power metodosmarilis17
 
Presentació aliments
Presentació alimentsPresentació aliments
Presentació alimentstuweufhwueg
 
La lógica se viste de morado conferencia
La lógica se viste de morado conferenciaLa lógica se viste de morado conferencia
La lógica se viste de morado conferenciaCybernautic.
 
QUE OFRECE TELL ME MORE
QUE OFRECE TELL ME MOREQUE OFRECE TELL ME MORE
QUE OFRECE TELL ME MOREJohanna Villa
 
que esunaconstitucion
que esunaconstitucionque esunaconstitucion
que esunaconstitucionCybernautic.
 

Destaque (20)

Medios de Comunicacion social en Venezuela en la identidad nacional.
Medios de Comunicacion social en Venezuela en la identidad nacional.Medios de Comunicacion social en Venezuela en la identidad nacional.
Medios de Comunicacion social en Venezuela en la identidad nacional.
 
Presentación película. Abraham Garcia r.
Presentación  película. Abraham Garcia r.Presentación  película. Abraham Garcia r.
Presentación película. Abraham Garcia r.
 
Diseño de estrategias para el uso de las redes sociales.
Diseño de estrategias para el uso de las redes sociales.Diseño de estrategias para el uso de las redes sociales.
Diseño de estrategias para el uso de las redes sociales.
 
Revista la calle 11 noviembre de 2009 resolucion 100 pdi
Revista la calle 11 noviembre de 2009 resolucion 100 pdiRevista la calle 11 noviembre de 2009 resolucion 100 pdi
Revista la calle 11 noviembre de 2009 resolucion 100 pdi
 
Presentación Momento 4 CTS
Presentación Momento 4 CTSPresentación Momento 4 CTS
Presentación Momento 4 CTS
 
Familia escuela
Familia escuelaFamilia escuela
Familia escuela
 
Trabajo final tutores virtuales
Trabajo final tutores virtualesTrabajo final tutores virtuales
Trabajo final tutores virtuales
 
Las tic
Las ticLas tic
Las tic
 
Halloween ii
Halloween iiHalloween ii
Halloween ii
 
Exposicion de economia2
Exposicion de economia2Exposicion de economia2
Exposicion de economia2
 
Power metodos
Power metodosPower metodos
Power metodos
 
Japó
JapóJapó
Japó
 
Computacion 1
Computacion 1Computacion 1
Computacion 1
 
Presentació aliments
Presentació alimentsPresentació aliments
Presentació aliments
 
Problemas de diseño usabilidad
Problemas de diseño usabilidadProblemas de diseño usabilidad
Problemas de diseño usabilidad
 
Aspectos de encinos
Aspectos de encinosAspectos de encinos
Aspectos de encinos
 
La lógica se viste de morado conferencia
La lógica se viste de morado conferenciaLa lógica se viste de morado conferencia
La lógica se viste de morado conferencia
 
QUE OFRECE TELL ME MORE
QUE OFRECE TELL ME MOREQUE OFRECE TELL ME MORE
QUE OFRECE TELL ME MORE
 
que esunaconstitucion
que esunaconstitucionque esunaconstitucion
que esunaconstitucion
 
Linea de tiempo
Linea de tiempoLinea de tiempo
Linea de tiempo
 

Semelhante a Comandos SQL: Creación, modificación y consulta de bases de datos

Trabajando con sql (parte 2)
Trabajando con sql (parte 2)Trabajando con sql (parte 2)
Trabajando con sql (parte 2)Juan Vade
 
Tutorial 9 consultar, modificar, insertar y borrar con asp
Tutorial 9   consultar, modificar, insertar y borrar con aspTutorial 9   consultar, modificar, insertar y borrar con asp
Tutorial 9 consultar, modificar, insertar y borrar con aspferixe
 
asp yariela
asp yarielaasp yariela
asp yarielaferixe
 
Objeto De Aprendizaje
Objeto De AprendizajeObjeto De Aprendizaje
Objeto De Aprendizajegviera
 
Objeto De Aprendizaje
Objeto De AprendizajeObjeto De Aprendizaje
Objeto De Aprendizajegviera
 
Bases de Datos Cap-V SQL: Manipulación de datos
Bases de Datos Cap-V SQL: Manipulación de datosBases de Datos Cap-V SQL: Manipulación de datos
Bases de Datos Cap-V SQL: Manipulación de datosVideoconferencias UTPL
 
Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014Henry Cambal
 
Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014Henry Cambal
 
Unidad iii dql
Unidad iii dqlUnidad iii dql
Unidad iii dqlanacmaduro
 
Insercción de datos y selección de datos
Insercción de datos y selección de datosInsercción de datos y selección de datos
Insercción de datos y selección de datosPathy1254
 

Semelhante a Comandos SQL: Creación, modificación y consulta de bases de datos (20)

Trabajando con sql (parte 2)
Trabajando con sql (parte 2)Trabajando con sql (parte 2)
Trabajando con sql (parte 2)
 
Expocion omar
Expocion omarExpocion omar
Expocion omar
 
Oracle sep 01
Oracle sep 01Oracle sep 01
Oracle sep 01
 
Tutorial 9 consultar, modificar, insertar y borrar con asp
Tutorial 9   consultar, modificar, insertar y borrar con aspTutorial 9   consultar, modificar, insertar y borrar con asp
Tutorial 9 consultar, modificar, insertar y borrar con asp
 
asp yariela
asp yarielaasp yariela
asp yariela
 
Operaciones basicas de sql
Operaciones basicas de sqlOperaciones basicas de sql
Operaciones basicas de sql
 
Consultas basicas en sql server
Consultas basicas en sql serverConsultas basicas en sql server
Consultas basicas en sql server
 
My sql
My sqlMy sql
My sql
 
Objeto De Aprendizaje
Objeto De AprendizajeObjeto De Aprendizaje
Objeto De Aprendizaje
 
Objeto De Aprendizaje
Objeto De AprendizajeObjeto De Aprendizaje
Objeto De Aprendizaje
 
Tarea 8 consultas
Tarea 8 consultasTarea 8 consultas
Tarea 8 consultas
 
Bases de Datos Cap-V SQL: Manipulación de datos
Bases de Datos Cap-V SQL: Manipulación de datosBases de Datos Cap-V SQL: Manipulación de datos
Bases de Datos Cap-V SQL: Manipulación de datos
 
Tutorial sql
Tutorial sqlTutorial sql
Tutorial sql
 
Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014
 
Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014
 
Consultas básicas en sql server
Consultas básicas en sql serverConsultas básicas en sql server
Consultas básicas en sql server
 
Sql postgres
Sql postgresSql postgres
Sql postgres
 
Unidad iii dql
Unidad iii dqlUnidad iii dql
Unidad iii dql
 
Insercción de datos y selección de datos
Insercción de datos y selección de datosInsercción de datos y selección de datos
Insercción de datos y selección de datos
 
SENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVERSENTENCIAS DE SQL SERVER
SENTENCIAS DE SQL SERVER
 

Comandos SQL: Creación, modificación y consulta de bases de datos

  • 2. Bases de datos relacionales Servidor de base de datos Base de datos “Demo” Base de datos “Finanzas” Base de datos “Test”
  • 3. En la figura anterior se observa que el database server con acceso a las tres bases de datos: demo, finanzas y test. Con el comando psql finanzas se puede conectar a la base de datos finanzas Para ver una lista de las bases de datos, teclear psql -l
  • 4. Crear una tabla • Vamos a crear una tabla llamada empleado en alguna base de datos, por ejemplo test. test=> CREATE TABLE empleado ( test(> nombre VARCHAR(20), test(> apellido VARCHAR(20), test(> sueldo FLOAT, test(> sexo CHAR(1), test(> edad INTEGER, test(> transaccion TIMESTAMP DEFAULT CURRENT_TIMESTAMP, test(> ingreso DATE);
  • 5. Insertar datos test=> INSERT INTO empleado (nombre, apellido, sueldo, sexo, edad, ingreso) VALUES test-> ('Javier', 'Ramírez', 34452.89, 'M', 23, '4- 06-08'); Observamos que se ponen las columnas en las que se va a insertar, no se puso la columna transaccion ya que esta se inserta por default con la hora y la fecha actuales.
  • 6. Seleccionar Obtener toda la tabla empleado test=> SELECT * FROM empleado; Obtener algunas columnas y todos los renglones de la tabla empleado test=> SELECT apellido, sueldo, ingreso FROM empleado;
  • 7. Seleccionar renglones específicos En SELECT se usa la cláusula WHERE, donde se especifican los renglones que se quieren obtener. Por ejemplo el nombre y apellido de los empleados cuya edad sea mayor ó igual a 25 años. test=> SELECT nombre, apellido FROM empleado test-> WHERE edad >=25; O bien, los que su apellido sea Ramírez test=> SELECT nombre, apellido FROM empleado test-> WHERE apellido = 'Ramírez'; Como se trata de columnas tipo caracter, se usan apóstrofes y debe escribirse exactamente como esté en la base de datos.
  • 8. Removiendo datos con DELETE • Con DELETE podemos mover uno ó bien todos los renglones de una tabla, por ejemplo DELETE FROM empleado; eliminaría todos los datos de la tabla empleado. Si utilizamos la cláusula WHERE se eliminan los renglones que cumplan la condición, por ejemplo: test=> DELETE FROM empleado test-> WHERE ingreso = '2008-12-24’;
  • 9. Modificando datos con UPDATE En una base de datos además de insertar y eliminar datos hay que actualizar. Por ejemplo, la edad del empleado Javier Pérez es de 35 años. test=> UPDATE empleado SET edad = 35 WHERE apellido = 'Pérez'; La cláusula WHERE controla los renglones en los que se llevará a cabo la modificación. Si no se pone esta cláusula, se cambiarían la edad de todos los empleados a 35.
  • 10. Ordenando datos con ORDER BY Cuando hacemos un SELECT, los renglones se despliegan con un orden no determinado. Si se quieren obtener los renglones en un orden específico, es necesario aumentar la cláusula ORDER BY al final del SELECT. test=> SELECT * FROM empleado ORDER BY apellido; Para invertir el orden se usa DESC test=> SELECT * FROM empleado ORDER BY edad DESC; Se puede ordenar por distintas columnas, si en la primera hay dos valores iguales, se usa la siguiente para ver cual va primero.
  • 11. Destruyendo tablas con DROP • Cuando queremos eliminar completamente la tabla escribimos: DROP TABLE empleado; • Si queremos eliminar todos los datos de una tabla pero conservar su estructura utilizamos (no ejecutarla): DELETE FROM empleado;
  • 12. Caracteres especiales Si el empleado que vamos a insertar tiene un apóstrofe en el nombre, por ejemplo: test=> INSERT INTO empleado (nombre, apellido, sueldo, sexo, edad, ingreso) VALUES test-> ('Jack', 'O'Donnell', 34452.89, 'M', 23, '4- 06-08'); Me marca un error: test'> Para resolverlo: 'O''Donnell',se ponen dos apóstrofes ó 'O'Donnell' se pone una diagonal invertida
  • 13. Etiquetado de columnas y Comentarios • El nombre que aparece en la salida de un SELECT hasta arriba es la etiqueta de la columna que corresponde al nombre del atributo. Se puede cambiar usando la palabra clave AS, por ejempo: test=> SELECT nombre AS Razón_Social FROM cuenta; test=> SELECT 1 + 3 AS total; • Con dos guiones -- indica que hasta el final del renglón es un comentario • Con /* al principio y con */ al final indica que todo lo que está contenido es un comentario test=> /*Esto es un comentario test*> y no ejecuta nada*/;
  • 14. Uso de AND/OR AND y OR se usan para conectar condiciones simples. Insertaremos más datos en empleado: test=> INSERT INTO empleado (nombre, apellido, sueldo, sexo, edad, ingreso) VALUES ('María', 'Pérez', 2317.89, 'F', 23, '30-07-2005'); test=> INSERT INTO empleado (nombre, apellido, sueldo, sexo, edad, ingreso) VALUES ('Alejandro', 'Padilla', 4317.86, 'M', 24, '12-08-2006'); test=> INSERT INTO empleado (nombre, apellido, sueldo, sexo, edad, ingreso) VALUES ('Raquel', 'Carmona', 5817.86, 'F', 24, '15-02-2006'); test=> INSERT INTO empleado (nombre, apellido, sueldo, sexo, edad, ingreso) VALUES ('Armando', 'Pinillos', 7317.86, 'M', 24, '13-08-2005'); test=> INSERT INTO empleado (nombre, apellido, sueldo, sexo, edad, ingreso) test-> VALUES ('María', 'Romero', 11317.89, 'F', 23, '30-08-2004');
  • 15. AND se usa para combinar las dos comparaciones que conecta, ejemplo: test=> SELECT * FROM empleado WHERE nombre='María' AND apellido='Pérez'; OR verifica que se cumpla una de las dos comparaciones al menos, ejemplo: test=> SELECT * FROM empleado WHERE sexo = 'F' OR edad = 24; Si se combinan ANDs y ORs en un mismo query es mejor agrupar los ANDs y los ORs usando paréntesis. Los ANDs se evalúan primero. Por ejemplo, si se quieren los de apellido Pérez y que sean hombres ó mujeres si no usamos paréntesis el resultado es incorrecto, ya que se evalúa el AND primero: test=> SELECT * FROM empleado WHERE apellido='Pérez' AND sexo='M' OR sexo='F'; Me da los de apellido Pérez Y son de sexo M pero también todos los de sexo F´, ya que primero se ejecuta el AND y después el OR. Lo correcto es: test=> SELECT * FROM empleado WHERE apellido='Pérez' AND (sexo='M' OR sexo='F'); Este me da los que son de apellido Pérez y que son de sexo M ó F.
  • 16. Between y Like Si queremos aquéllos empleados que están entre 24 y 30 años de edad: test=> SELECT * FROM empleado WHERE edad >= 24 AND edad <= 30; test=> SELECT * FROM empleado WHERE edad BETWEEN 24 AND 30; Para obtener los datos de los empleados cuyo apellido inicia con la letra R: test=> SELECT * FROM empleado WHERE apellido LIKE 'R%'; Obtener los que ingresaron en 2008: test=> SELECT * FROM empleado WHERE ingreso LIKE '2008%';
  • 17. Comparaciones con LIKE Empieza con una D LIKE ‘D%’ Contiene una D LIKE ‘%D%’ Tiene D en 2da posición LIKE ‘_D%’ Empieza con D y tiene una e LIKE ‘D%e%’ No empieza con D NOT LIKE ‘D%’
  • 18. Agregación A veces es necesario resumir cierta información. En lugar de ver renglones, solo se necesita saber cuántos son. Para esto se usan las siguientes palabras clave: COUNT(*) cuenta renglones SUM(nombre_col) total MAX(nombre_col) máximo MIN(nombre_col) mínimo AVG(nombre_col) promedio
  • 19. Ejemplos Contar número de renglones test=> SELECT COUNT(*) FROM empleado; Obtener la suma de los sueldos test=> SELECT SUM(sueldo) FROM empleado; Obtener el sueldo máximo test=> SELECT MAX(sueldo) FROM empleado; Obtener la edad mínima test=> SELECT MIN(edad) FROM empleado; Obtener el sueldo promedio test=> SELECT AVG(sueldo) FROM empleado;
  • 20. GROUP BY En los ejemplos anteriores nos regresó un renglón como resultado y sólo se usó una columna con el agregado. Usando los agregados con GROUP BY se tendrá la aplicación del agregado en una columna, en los renglones agrupados por otra columna. SELECT COUNT(*) FROM empleado, regresa el número de renglones en la tabla. Si queremos contar cuántos son sexo M y cuantos F: test=> SELECT sexo, COUNT(*) FROM empleado GROUP BY sexo; Si por sexo se quiere saber datos del salario y de la edad: test=> SELECT sexo,MIN(edad),MAX(edad),AVG(sueldo) FROM empleado GROUP BY sexo ORDER BY 4 DESC;
  • 21. HAVING Permite probar condiciones en los valores agregados. A menudo se usa con GROUP BY. Con HAVING se pueden incluir o excluir grupos basados en el valor de agregación para ese grupo. En el ejemplo de contar los empleados por sexo, podemos limitar para que despliegue solo aquéllos que sean más de 3, el query que cuenta empleados por sexo es: test=> SELECT sexo, COUNT(*) FROM empleado GROUP BY sexo; Sólo los que sean más de 3 empleados de ese sexo: test=> SELECT sexo, COUNT(*) FROM empleado GROUP BY sexo HAVING COUNT(*)>3;