COMANDOS SQL - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

COMANDOS SQL

Description:

En la figura anterior se observa que el database server con acceso a las tres ... y ORs en un mismo query es mejor agrupar los ANDs y los ORs usando par ntesis. ... – PowerPoint PPT presentation

Number of Views:161
Avg rating:3.0/5.0
Slides: 22
Provided by: tine4
Category:
Tags: comandos | sql | ors

less

Transcript and Presenter's Notes

Title: COMANDOS SQL


1
COMANDOS SQL
2
Bases de datos relacionales
Base de datos Finanzas
Servidor de base de datos
Base de datos Demo
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.
  • testgt CREATE TABLE empleado (
  • test(gt nombre VARCHAR(20),
  • test(gt apellido VARCHAR(20),
  • test(gt sueldo FLOAT,
  • test(gt sexo CHAR(1),
  • test(gt edad INTEGER,
  • test(gt transaccion TIMESTAMP DEFAULT
    CURRENT_TIMESTAMP,
  • test(gt ingreso DATE)

5
Insertar datos
  • testgt INSERT INTO empleado (nombre, apellido,
    sueldo, sexo, edad, ingreso) VALUES
  • test-gt ('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
  • testgt SELECT FROM empleado
  • Obtener algunas columnas y todos los renglones de
    la tabla empleado
  • testgt 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.
  • testgt SELECT nombre, apellido FROM empleado
  • test-gt WHERE edad gt25
  • O bien, los que su apellido sea Ramírez
  • testgt SELECT nombre, apellido FROM empleado
  • test-gt 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
  • testgt DELETE FROM empleado
  • test-gt 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.
  • testgt 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.
  • testgt SELECT FROM empleado ORDER BY apellido
  • Para invertir el orden se usa DESC
  • testgt 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
  • testgt INSERT INTO empleado (nombre, apellido,
    sueldo, sexo, edad, ingreso) VALUES
  • test-gt ('Jack', 'O'Donnell', 34452.89, 'M', 23,
    '4-06-08')
  • Me marca un error test'gt
  • 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
  • testgt SELECT nombre AS Razón_Social FROM cuenta
  • testgt 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
  • testgt /Esto es un comentario
  • testgt y no ejecuta nada/

14
Uso de AND/OR
  • AND y OR se usan para conectar condiciones
    simples.
  • Insertaremos más datos en empleado
  • testgt INSERT INTO empleado (nombre, apellido,
    sueldo, sexo, edad, ingreso)
  • VALUES ('María', 'Pérez', 2317.89, 'F', 23,
    '30-07-2005')
  • testgt INSERT INTO empleado (nombre, apellido,
    sueldo, sexo, edad, ingreso)
  • VALUES ('Alejandro', 'Padilla', 4317.86, 'M', 24,
    '12-08-2006')
  • testgt INSERT INTO empleado (nombre, apellido,
    sueldo, sexo, edad, ingreso)
  • VALUES ('Raquel', 'Carmona', 5817.86, 'F', 24,
    '15-02-2006')
  • testgt INSERT INTO empleado (nombre, apellido,
    sueldo, sexo, edad, ingreso)
  • VALUES ('Armando', 'Pinillos', 7317.86, 'M', 24,
    '13-08-2005')
  • testgt INSERT INTO empleado (nombre, apellido,
    sueldo, sexo, edad, ingreso)
  • test-gt VALUES ('María', 'Romero', 11317.89, 'F',
    23, '30-08-2004')

15
  • AND se usa para combinar las dos comparaciones
    que conecta, ejemplo
  • testgt SELECT FROM empleado WHERE
    nombre'María' AND apellido'Pérez'
  • OR verifica que se cumpla una de las dos
    comparaciones al menos, ejemplo
  • testgt 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
  • testgt 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
  • testgt 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
  • testgt SELECT FROM empleado WHERE edad gt 24
    AND edad lt 30
  • testgt SELECT FROM empleado WHERE edad BETWEEN
    24 AND 30
  • Para obtener los datos de los empleados cuyo
    apellido inicia con la letra R
  • testgt SELECT FROM empleado WHERE apellido LIKE
    'R'
  • Obtener los que ingresaron en 2008
  • testgt 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 De
  • 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
  • testgt SELECT COUNT() FROM empleado
  • Obtener la suma de los sueldos
  • testgt SELECT SUM(sueldo) FROM empleado
  • Obtener el sueldo máximo
  • testgt SELECT MAX(sueldo) FROM empleado
  • Obtener la edad mínima
  • testgt SELECT MIN(edad) FROM empleado
  • Obtener el sueldo promedio
  • testgt 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
  • testgt SELECT sexo, COUNT() FROM empleado GROUP
    BY sexo
  • Si por sexo se quiere saber datos del salario y
    de la edad
  • testgt 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
  • testgt SELECT sexo, COUNT() FROM empleado GROUP
    BY sexo
  • Sólo los que sean más de 3 empleados de ese sexo
  • testgt SELECT sexo, COUNT() FROM empleado GROUP
    BY sexo HAVING COUNT()gt3
Write a Comment
User Comments (0)
About PowerShow.com