Presentacio Sql 1
Upcoming SlideShare
Loading in...5
×
 

Presentacio Sql 1

on

  • 5,390 views

Primera parte de una mini guia sobre consultas sql para PRINCIPIANTES

Primera parte de una mini guia sobre consultas sql para PRINCIPIANTES

Statistics

Views

Total Views
5,390
Views on SlideShare
5,332
Embed Views
58

Actions

Likes
3
Downloads
380
Comments
0

6 Embeds 58

http://www.dfsi.augustobriga.com 19
http://www.slideshare.net 17
http://informatikanela.blogspot.com 10
http://iesaugustobriga.juntaextremadura.net 7
http://ejercicio7.multimedia4irm.herobo.com 4
http://informatikanela.blogspot.mx 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Presentacio Sql 1 Presentacio Sql 1 Presentation Transcript

  • SQL
  • Introducción a SQL (Structured Query Language)
    • Estándares definidos por ANSI
    • (American National Standard Institute):
      • SQL-86
      • SQL-89
      • SQL-92
      • SQL-99
    Prácticamente todos los motores de bases de datos cumplen con el estándar ANSI SQL-92. Vamos a utilizar ese.
  • Componentes del lenguaje SQL-92
    • Sentencias DDL (Data Definition Language)
      • creación/eliminación de tablas, claves primarias, claves externas, vistas, índices
      • otorgar / denegar permisos (Grant/Revoke)
    • Sentencias DML (Data Manipulation Language)
      • Select
      • Insert
      • Update
      • Delete
    • Control de transacciones
      • Begin Transaction, Commit, Rollback
    • SQL almacenado
      • Procedures, Functions, Triggers
  • Select: sintaxis Select <columna(s)> From <tabla(s)> Es la sentencia utilizada para consultar el contenido de una o más tablas . El resultado del Select es SIEMPRE una tabla Su forma más simple es
  • Select: <columnas> Select cod, nombre, precio From Articulo Select * From Articulo Select precio, cod, nombre From Articulo Select precio, cod From Articulo
  • Select: <columnas>: alias de columnas Select cod, cod as codigo From Articulo Select cod as codigo de articulo From Articulo Server: Msg 170, Level 15, State 1, Line 1 Line 1: Incorrect syntax near 'de'. Select cod as [codigo de articulo] From Articulo
  • Select Select <columna 1 > [ AS <alias 1 > ] , <columna 2 > [ AS <alias 2 > ] , … <columna N > [ AS <alias 3 > ] From <tabla> Donde columna N puede ser el nombre de una columna o * para mostrar todas las columnas. Por ahora ...
  • Select: <columnas> : operaciones entre columnas Select cod, total, cant From Compra Select cod, total, cant, total/cant as [precio unit] From Compra Select cod, total, cant, (total/cant) * (1.0) as [precio unit] From Compra Select cod, total, cant, (total *1.0) / cant as [precio unit] From Compra
  • Select: <columnas> : fechas Select factura, fecha From Factura Select factura, DATEPART ( day , fecha ) as dia, DATEPART ( month , fecha ) as mes, DATEPART ( year , fecha ) as año From Factura Select factura, Convert ( Char (10), fecha ,105) as fecha From Factura
  • Palabra clave distinct Select codCiudad From Cliente Select distinct codCiudad From Cliente Select nombre, codCiudad From Cliente Select distinct nombre, codCiudad From Articulo
  • Select Select [ distinct ] <columna 1 > [ AS <alias 1 > ] , <columna 2 > [ AS <alias 2 > ] , … <columna N > [ AS <alias 3 > ] From <tabla>
    • Donde columna N puede ser:
    • Una columna que exista en la tabla indicada en el From
    • Una operación sobre las columnas de la tabla del From
    • * (todas las columnas de la tabla del from)
    • La palabra clave distinct elimina duplicados en el resultado
    Por ahora ...
  • Select: Ejercicio Select cod, nombre, precio, precio * 1.21 As [precio lista] From Articulo precio : valor sin IVA Mostrar, de cada artículo, el codigo, nombre, precio sin iva y precio con IVA. Llamar al precio con IVA “precio lista”.
  • Select: cláusula Where Select <columna(s)> From <tabla(s)> [ Where <condicion(es)> ] La sentencia Select puede tener una cláusula Where Where se utiliza para poner una o más condiciones. Los corchetes se incluyen aquí para indicar que la claúsula Where es opcional. No deben colocarse en el código SQL.
  • Select: cláusula Where Select * From Compra Select * From Compra Where factura = 23 Select factura, total, cant From Compra Select factura, total, cant From Compra Where factura = 23
  • Operadores Lógicos: And, Or, Not Select * From Empleado Where sexo = 'M' Select * From Empleado Where codciudad = 2 Select * From Empleado Where sexo = 'M' And codciudad = 2 Select * From Empleado Where sexo = 'M' Or codciudad = 2
  • Operadores Lógicos: And, Or, Not Select * From Empleado Where sexo = 'M' Select * From Empleado Where sexo = 'M' And Not codciudad = 2 Select * From Empleado Where sexo = 'M' Or Not codciudad = 2 Select * From Empleado Where Not sexo = 'M'
  • Operadores aritméticos Select * From Articulo Where cod = 11 Select * From Articulo Where cod <> 11 Select * From Articulo Where cod > 12 Select * From Articulo Where cod >= 12
  • Operadores LIKE y NOT LIKE Select * From Articulo Where nombre= 'Silla' Select * From Articulo Where nombre LIKE 'Silla%' Select * From Articulo Where nombre NOT LIKE 'Silla%'
  • Operadores LIKE y NOT LIKE Select * From Articulo Where nombre = '%jardin' Select * From Articulo Where nombre LIKE '%jardin' El símbolo de porcentaje (%) equivale a cualquier cadena de 0 ó más caracteres, pero sólo cuando se utilizan los operadores LIKE o NOT LIKE.
  • Operadores LIKE y NOT LIKE Select * From Articulo Where nombre NOT LIKE '%jardin' Select * From Articulo Where Not nombre NOT LIKE '%jardin' Select * From Articulo Where nombre LIKE '%jardin' “ todos los artículos de jardin ” “ excluir los artículos que no sean de jardín ” “ los artículos que no sean de jardín ”
  • Tratamiento de valores nulos Select * From Empleado Where esJefe > 10 Select * From Empleado Where esJefe < 10 Select * From Empleado Where esJefe = NULL Cualquier comparación (=, >, <, >=, <=) que incluya un valor NULL NUNCA será evaluada como verdadera
  • Tratamiento de valores nulos Select * From Empleado Where esJefe <> NULL Select * From Empleado Where esJefe IS NULL Para manejar los valores nulos utilizar SIEMPRE IS NULL ó IS NOT NULL Select * From Empleado Where esJefe IS NOT NULL
  • Claúsula where: manejo de fechas Select factura, fecha From Factura Select factura, fecha From Factura Where fecha > '1/1/2005' And fecha < '1/3/2005' Cuando en la base de datos se guarda un valor de tipo TIMESTAMP, es preciso manejarlo como tal (considerar horas, minutos y segundo)
  • Claúsula where: manejo de fechas Select factura, fecha From Factura Where fecha >= '1/1/2005' And fecha < '1/2/2005' “ mostrar las ventas ocurridas el 1 de enero de 2005 ” Select factura, fecha From Compra Where DATEPART ( day , fecha ) = 1 And DATEPART ( month , fecha ) = 1 And DATEPART ( year , fecha ) = 2005
  • Select: Ejercicio Select * From Materia Where codigo LIKE '71.%‘ Or nombre IS NULL Mostrar toda la información posible de las materias cuyo código comience con 71. o cuya descripción no se conozca
  • Select: cláusula Where Select < columnas > From <tabla> [ Where <condicion> ]
    • Donde <condicion> puede ser (por ejemplo):
    • columna 1 = valor
    • columna 1 >= valor
    • columna 1 <> valor
    • column LIKE ' valor% ‘
    • <condicion 1 > AND <condicion 2 >
    • <condicion 1 > OR <condicion 2 >
    • <condicion 1 > AND NOT <condicion 2 >
    • DATEPART(year,columna 1 ) = valor
    Por ahora ...
  • Select: cláusula Order by Select <columna(s)> From <tabla(s)> [ Where <condicion(es)> ] [ Order by <criterio(s)> ] La sentencia Select puede tener una cláusula Order by Order by se utiliza para poner una o más criterios de ordenación de las filas de la tabla resultado.
  • Select: cláusula Order by Select * From Empleado Order by legajo ASC Select * From Empleado Order by legajo DESC Select * From Empleado Order by legajo
  • Select: cláusula Order by Select * From Empleado Order by sexo Select * From Empleado Order by Sexo ASC, codCiudad DESC
  • Select: cláusula Order by Select <columna(s)> From <tabla(s)> [ Where <condicion(es)> ] [ Order by <columna 1 > [ ASC | DESC ] , <columna 2 > [ ASC | DESC ] , ... <columna N > [ ASC | DESC ] ] Por ahora ...
  • Select: Ejercicio Select * From Ventas Order by Año, ventas$ Desc Mostrar las ventas por provincia y por año, ordenando en primera medida por el año en forma ascendente, y luego ordenar las provincias en forma descendente por el valor de las ventas.
  • Insert: sintaxis Insert Into <tabla> Values (valor 1 , valor 2 , valor 3 , ..., valor N ) Es la sentencia utilizada para agregar filas a una tabla. Con esta sintaxis, una sentencia Insert coloca una sola fila en una tabla. Para colocar varias filas, será necesario hacer un Insert para cada una. Su forma más simple es
  • Insert: sintaxis Insert Into Empleado Values (12, Fernando, 23/07/1986) Server: Msg 128, Level 15, State 1, Line 1 The name 'Fernando' is not permitted in this context. Only constants, expressions, or variables allowed here. Column names are not permitted.
  • Insert: sintaxis Insert Into Empleado Values (12, 'Fernando' , 23/07/1986) Encerrar entre comillas simples los valores constantes de tipo texto ó fecha .
  • Insert: sintaxis Insert Into Empleado Values (12, 'Fernando' , '23/07/1986' ) Encerrar entre comillas simples los valores constantes de tipo texto ó fecha .
  • Insert: sintaxis Insert Into Empleado Values (12, ' Fernando ' ) Server: Msg 213, Level 16, State 4, Line 1 Insert Error: Column name or number of supplied values does not match table definition.
  • Insert: sintaxis Insert Into <tabla> Values (valor 1 , valor 2 , valor 3 , ..., valor N ) La sintaxis Sólo puede utilizarse cuando se van a dar valores para todas las columnas de la tabla. Cuando se desean proveer menos valores, es preciso utilizar la sintaxis: Insert Into <tabla> (col 1 , col 2 , …, col N ) Values (valor 1 , valor 2 , ..., valor N )
  • Insert: sintaxis Insert Into Empleado ( legajo , nombre ) Values (12, ' Fernando ' )
  • Insert: sintaxis Insert Into Empleado ( nombre , legajo ) Values (12, ' Fernando ' ) Server: Msg 245, Level 16, State 1, Line 1 Syntax error converting the varchar value 'Fernando' to a column of data type int. El orden de las columnas indicadas a continuación de la tabla debe corresponderse con los valores.
  • Insert: sintaxis Insert Into Empleado (nombre, fec_nac) Values ( 'Fernando' , '23/07/1986' ) Es preciso dar valores para todas las columnas que no acepten nulos. Server: Msg 515, Level 16, State 2, Line 1 Cannot insert the value NULL into column 'Legajo', table 'GDatos.dbo.Empleado'; column does not allow nulls . INSERT fails. The statement has been terminated.
  • Insert: Ejercicio Insert Into Cliente Values (14, 'Patricia',0, NULL) q_compras : cantidad de compras que hizo un cliente. fec_uc : fecha de última compra Dar de alta a un nuevo cliente, Patricia, con ID 14 (todavía no realizó ninguna compra) Insert Into Cliente(cod,nombre,q_compras) Values (14, 'Patricia',0) o
  • Delete: sintaxis Delete From <tabla> [ Where <condición> ] Es la sentencia utilizada para eliminar filas de una tabla .
  • Delete: sintaxis Delete From Empleado Si no se especifica una condición Where, se eliminarán todas las filas de la tabla (usar con cuidado)
  • Delete: sintaxis Delete From Empleado Una buena práctica es, antes de ejecutar una sentencia Delete, cambiar la palabar Delete por Select *. De esta forma, podemos preveer qué filas se van a eliminar. Select * From Empleado
  • Delete: sintaxis Delete From Empleado Where Empleado = 11 La cláusula Where de la sentencia Delete tiene la misma sintaxis que en la sentencia Select . Select * From Empleado Where Empleado = 11
  • Delete: Ejercicio Delete From Compra Where fec_uc < '01/01/2005' And q_compras <= 5 q_compras : cantidad de compras que hizo un cliente. fec_uc : fecha de última compra Eliminar de la tabla todos los clientes que no hayan realizado ninguna compra entre el 1 de enero de 2005 y hoy, salvo aquellos que hayan realizado más de 5 compras.
  • Update: sintaxis Update <tabla> Set col 1 = valor 1 , col 2 = valor 2 , ... col N = valor N [ Where <condición> ] Es la sentencia utilizada para actualizar filas de una tabla . No es necesario indicar valores para todas las columnas de la tabla; basta con aquellas que se quieren actualizar.
  • Update Update Compra Set cant = NULL Si no se incluye una cláusula Where, se actualizan todas las filas de la tabla
  • Update Update Compra Set cant = NULL Where cod = 4 Con una cláusula Where, es posible modificar solamente algunas filas
  • Update Update Compra Set total = total * 2 El valor a colocar puede depender del valor anterior.
  • Update Update Compra Set cant = NULL, total = total * 2 Where cod = 4 Puede actualizarse el valor de más de una columna simultáneamente.
  • Update: Ejercicio Update Compra Set fec_uc = ‘03/08/07', q_compras = q_compras + 1 Where cod = 13 q_compras : cantidad de compras que hizo un cliente. fec_uc : fecha de última compra Supongamos que el cliente 13 ( Claudia ) realiza hoy, 3 de agosto de 2007, una compra. Actualizar la tabla Cliente .