SlideShare una empresa de Scribd logo
1 de 12
Selección de datos SQL 2005

 Las consultas de selección se utilizan para
 indicar al motor de datos que devuelva
 información de las bases de datos, esta
 información es devuelta en forma de conjunto
 de registros que se pueden almacenar en un
 objeto recordset.
• Consultas básicas
  La sintaxis básica de una consulta de selección es la
  siguiente: SELECT
    Campos
  FROM
    Tabla
  En donde campos es la lista de campos que se deseen
  recuperar y tabla es el origen de los mismos, por
  ejemplo:
  SELECT
    Nombre, Teléfono
  FROM
    Clientes
  Esta sentencia devuelve un conjunto de resultados con
  el campo nombre y teléfono de la tabla clientes.
• Devolver Literales
  En determinadas ocasiones nos puede interesar
  incluir una columna con un texto fijo en una
  consulta de selección, por ejemplo, supongamos
  que tenemos una tabla de empleados y deseamos
  recuperar las tarifas semanales de los electricistas,
  podríamos realizar la siguiente consulta: SELECT
    Empleados.Nombre, 'Tarifa semanal: ',
  Empleados.TarifaHora * 40
  FROM
    Empleados
  WHERE
    Empleados.Cargo = 'Electricista'
• Ordenar los registros
  Adicionalmente se puede especificar el orden en que se desean recuperar los
  registros de las tablas mediante la cláusula ORDER BY Lista de Campos. En donde
  Lista de campos representa los campos a ordenar. Ejemplo: SELECT
    CodigoPostal, Nombre, Telefono
  FROM
    Clientes
  ORDER BY
    Nombre
  Esta consulta devuelve los campos CodigoPostal, Nombre, Telefono de la tabla
  Clientes ordenados por el campo Nombre.
  Se pueden ordenar los registros por mas de un campo, como por ejemplo:
  SELECT
    CodigoPostal, Nombre, Telefono
  FROM
    Clientes
  ORDER BY
    CodigoPostal, Nombre
  Incluso se puede especificar el orden de los registros: ascendente mediante la
  cláusula (ASC - se toma este valor por defecto) ó descendente (DESC)
  SELECT
    CodigoPostal, Nombre, Telefono
  FROM
    Clientes
  ORDER BY
    CodigoPostal DESC , Nombre ASC
• Uso de Indices de las tablas
  Si deseamos que la sentencia SQL utilice un índice para
  mostrar los resultados se puede utilizar la palabra
  reservada INDEX de la siguiente forma: SELECT ... FROM
  Tabla (INDEX=Indice) ...
  Normalmente los motores de las bases de datos
  deciden que índice se debe utilizar para la consulta,
  para ello utilizan criterios de rendimiento y sobre todo
  los campos de búsqueda especificados en la cláusula
  WHERE. Si se desea forzar a no utilizar ningún índice
  utilizaremos la siguiente sintaxis:
  SELECT ... FROM Tabla (INDEX=0) ...
• Consultas con Predicado
  El predicado se incluye entre la cláusula y el primer
  nombre del campo a recuperar, los posibles
  predicados son:
 Predicado                  Descripción
                            Devuelve todos los campos de la
 ALL
                            tabla
                            Devuelve un determinado
 TOP
                            número de registros de la tabla
                            Omite los registros cuyos campos
 DISTINCT                   seleccionados coincidan
                            totalmente
                            Omite los registros duplicados
                            basándose en la totalidad del
 DISTINCTOW
                            registro y no sólo en los campos
                            seleccionados.
• Recuperar Información de una base de Datos Externa
  Para concluir este capítulo se debe hacer referencia a la recuperación de
  registros de bases de datos externas. Es ocasiones es necesario la
  recuperación de información que se encuentra contenida en una tabla que
  no se encuentra en la base de datos que ejecutará la consulta o que en ese
  momento no se encuentra abierta, esta situación la podemos salvar con la
  palabra reservada IN de la siguiente forma: SELECT
    Apellido AS Empleado
  FROM
    Empleados IN'c: databasesgestion.mdb'
  En donde c: databasesgestion.mdb es la base de datos que contiene la
  tabla Empleados. Esta técnica es muy sencilla y común en bases de datos
  de tipo ACCESS en otros sistemas como SQL-SERVER u ORACLE, la cosa es
  más complicada la tener que existir relaciones de confianza entre los
  servidores o al ser necesaria la vinculación entre las bases de datos. Este
  ejemplo recupera la información de una base de datos de SQL-SERVER
  ubicada en otro servidor (se da por supuesto que los servidores están
  lincados):
  SELECT
    Apellido
  FROM
    Servidor1.BaseDatos1.dbo.Empleados
INSERCCION DE DATOS
   • Insertar datos.
      Hasta ahora hemos visto como se almacenan los datos en una
     base de datos y como consultar esos datos almacenados, pero no
     hemos visto como almacenar dichos datos.
       Para almacenar datos en una base de datos debemos insertar
     filas en las tablas. Para ellos SQL pone a nuestra disposición la
     sentencia INSERT.
   • Inserción de filas
      El proceso de inserción de filas consiste en añadir a una tabla una
     o más filas y en cada fila todos o parte de sus campos.
      Podemos distinguir dos formas de insertar filas:
     Inserción individual de filas.
     Inserción multiple de filas.
     La sintaxis de la sentencia INSERT es diferente según cual sea
     nuestro proposito.
      Sólo podremos omitir un campo al efectuar una inserción cuando
     este acwepte valores nulos.
• Inserción individual de filas
  Para realizar la insercción individual de filas SQL
  posee la instrucción INSERT INTO. La insercción
  individual de filas es la que más comunmente
  utilizaremos. Su sintaxis es la siguiente:

             INSERT INTO <nombre_tabla>
             [(<campo1>[,<campo2>,...])]
             values
             (<valor1>,<valor2>,...);
• Como se puede observar la sentencia tiene dos
  partes claramente diferenciadas, por un lado la
  propia INSERT INTO seguida de la lista de campos
  en los que queremos insertar los datos, y por otro
  la lista de valores que queremos insertar en los
  campos. La mejor forma de ver esto es a través de
                                      INSERT INTO tCoches
  un ejemplo.                         (matricula,
                                        marca ,
                                        modelo ,
                                        color ,
                                        numero_kilometros)
                                        values
                                        ('M1111CA',
                                        'RENAULT',
                                        'MEGANE TR100',
                                        'NEGRO DIAMANTE',
                                        78000);
Con esta sentencia INSERT creamos un registro en la tabla
tCoches con los valores especificados, es decir, la matricula tendrá
el valor M-1111-CA, la marca será RENAULT y así sucesivamente.
¿Que ocurriría si ya existiera un coche con la matricula M-1111-
CA? Se producirá un error, porque hemos definido la clave primaria
en el campo matricula, y como hemos visto la clave primaria debe
ser única.
Si omitimos algún par " campo-valor " en la sentencia INSERT,
pueden ocurrir varias cosas:
Que se produzca un error , si el campo no acepta valores nulos.
Que se grave el registro y se deje nulo el campo, cuando el campo
acepte valores nulos.
Que se grave el registro y se tome el valor por defecto, cuando el
campo tenga definido un valor por defecto.
  Que hacer en cada cada momento dependerá del programa.
  Por ejemplo, la siguiente sentencia creará un registro en la tabla
tCoches con el campo numero_kilometros cero, ya que este es su
valor por defecto.
                                                             INSERT INTO tCoches
                                                             (matricula,
                                                             marca ,
                                                             modelo ,
                                                             color)
                                                             values
                                                             ('M1111CA',
                                                             'RENAULT',
                                                             'MEGANE TR100',
                                                             'NEGRO DIAMANTE');
• Inserción múltiple de filas
  La sentencia INSERT permite tambien insertar
  varios registros en una tabla. Pare ello se utiliza una
  combinación de la sentencia INSERT junto a una
  sentencia SELECT. El resultado es que se insertan
  todos los registros devueltos por la consulta.

            INSERT INTO <nombre_tabla>
            [(<campo1>[,<campo2>,...])]
            SELECT
            [(<campo1>[,<campo2>,...])]
            FROM
            <nombre_tabla_origen>;

Más contenido relacionado

La actualidad más candente

Sql Consultas MáS Complejas
Sql Consultas MáS ComplejasSql Consultas MáS Complejas
Sql Consultas MáS Complejasalexmerono
 
Actualización de bases de datos en MySQL
Actualización de bases de datos en MySQLActualización de bases de datos en MySQL
Actualización de bases de datos en MySQLalexmerono
 
Comandos y funciones sql postgres
Comandos y funciones sql postgresComandos y funciones sql postgres
Comandos y funciones sql postgresHIPOLITO GRULLON
 
Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)José Toro
 
PL SQL Diplomado Oracle
PL SQL Diplomado OraclePL SQL Diplomado Oracle
PL SQL Diplomado OracleUzziel Chaidez
 
MANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQLMANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQLEdgar Sandoval
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)José Toro
 
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)José Toro
 
Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)José Toro
 
Curso Básico de Pl Sql Oracle
Curso Básico de Pl Sql OracleCurso Básico de Pl Sql Oracle
Curso Básico de Pl Sql Oracleluisguil
 
Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)José Toro
 

La actualidad más candente (20)

Introduccion al sql query
Introduccion al sql queryIntroduccion al sql query
Introduccion al sql query
 
Sql server 2014 básico
Sql server 2014 básicoSql server 2014 básico
Sql server 2014 básico
 
Sentencia select
Sentencia selectSentencia select
Sentencia select
 
Sentencia select
Sentencia selectSentencia select
Sentencia select
 
Sql Consultas MáS Complejas
Sql Consultas MáS ComplejasSql Consultas MáS Complejas
Sql Consultas MáS Complejas
 
Actualización de bases de datos en MySQL
Actualización de bases de datos en MySQLActualización de bases de datos en MySQL
Actualización de bases de datos en MySQL
 
Comandos y funciones sql postgres
Comandos y funciones sql postgresComandos y funciones sql postgres
Comandos y funciones sql postgres
 
Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)Sesión11 - Paquetes (Oracle)
Sesión11 - Paquetes (Oracle)
 
PL SQL Diplomado Oracle
PL SQL Diplomado OraclePL SQL Diplomado Oracle
PL SQL Diplomado Oracle
 
Operaciones basicas de sql
Operaciones basicas de sqlOperaciones basicas de sql
Operaciones basicas de sql
 
MANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQLMANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQL
 
Resumen sql-oracle
Resumen sql-oracleResumen sql-oracle
Resumen sql-oracle
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)
 
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
 
Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)
 
Curso Básico de Pl Sql Oracle
Curso Básico de Pl Sql OracleCurso Básico de Pl Sql Oracle
Curso Básico de Pl Sql Oracle
 
Sql 2010
Sql 2010Sql 2010
Sql 2010
 
PL/SQL
PL/SQLPL/SQL
PL/SQL
 
SQL
SQLSQL
SQL
 
Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)Sesion06b - Introducción al PL-SQL (Oracle)
Sesion06b - Introducción al PL-SQL (Oracle)
 

Similar a Seleccion de datos_sql_2005

Similar a Seleccion de datos_sql_2005 (20)

Consultas basicas en sql server
Consultas basicas en sql serverConsultas basicas en sql server
Consultas basicas en sql server
 
Fundamentos de BD - Unidad 6 lenguaje sql
Fundamentos de BD - Unidad 6 lenguaje sqlFundamentos de BD - Unidad 6 lenguaje sql
Fundamentos de BD - Unidad 6 lenguaje sql
 
Sentencias sql
Sentencias sqlSentencias sql
Sentencias sql
 
Sentencias Sql
Sentencias SqlSentencias Sql
Sentencias Sql
 
Consultas combinadas
Consultas combinadasConsultas combinadas
Consultas combinadas
 
Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014
 
Consultas sql 2014
Consultas sql 2014Consultas sql 2014
Consultas sql 2014
 
Seleccion de datos
Seleccion de datosSeleccion de datos
Seleccion de datos
 
8 Guía_Fundamentos de Base de Datos (2).docx
8 Guía_Fundamentos de Base de Datos (2).docx8 Guía_Fundamentos de Base de Datos (2).docx
8 Guía_Fundamentos de Base de Datos (2).docx
 
Sql exposición
Sql exposiciónSql exposición
Sql exposición
 
Sql Sentencias
Sql Sentencias Sql Sentencias
Sql Sentencias
 
Expo
ExpoExpo
Expo
 
BD_L8_EXP_ROZIC_CAP9_SQL
BD_L8_EXP_ROZIC_CAP9_SQLBD_L8_EXP_ROZIC_CAP9_SQL
BD_L8_EXP_ROZIC_CAP9_SQL
 
Tutorial sql
Tutorial sqlTutorial sql
Tutorial sql
 
Ti. Sql.Caso1al9.Consultas
Ti. Sql.Caso1al9.ConsultasTi. Sql.Caso1al9.Consultas
Ti. Sql.Caso1al9.Consultas
 
Ejemploddl dml-ok
Ejemploddl dml-okEjemploddl dml-ok
Ejemploddl dml-ok
 
Teoria sql
Teoria sqlTeoria sql
Teoria sql
 
SQL-b.pdf
SQL-b.pdfSQL-b.pdf
SQL-b.pdf
 
Sql b
Sql bSql b
Sql b
 
Sql
SqlSql
Sql
 

Seleccion de datos_sql_2005

  • 1. Selección de datos SQL 2005 Las consultas de selección se utilizan para indicar al motor de datos que devuelva información de las bases de datos, esta información es devuelta en forma de conjunto de registros que se pueden almacenar en un objeto recordset.
  • 2. • Consultas básicas La sintaxis básica de una consulta de selección es la siguiente: SELECT Campos FROM Tabla En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos, por ejemplo: SELECT Nombre, Teléfono FROM Clientes Esta sentencia devuelve un conjunto de resultados con el campo nombre y teléfono de la tabla clientes.
  • 3. • Devolver Literales En determinadas ocasiones nos puede interesar incluir una columna con un texto fijo en una consulta de selección, por ejemplo, supongamos que tenemos una tabla de empleados y deseamos recuperar las tarifas semanales de los electricistas, podríamos realizar la siguiente consulta: SELECT Empleados.Nombre, 'Tarifa semanal: ', Empleados.TarifaHora * 40 FROM Empleados WHERE Empleados.Cargo = 'Electricista'
  • 4. • Ordenar los registros Adicionalmente se puede especificar el orden en que se desean recuperar los registros de las tablas mediante la cláusula ORDER BY Lista de Campos. En donde Lista de campos representa los campos a ordenar. Ejemplo: SELECT CodigoPostal, Nombre, Telefono FROM Clientes ORDER BY Nombre Esta consulta devuelve los campos CodigoPostal, Nombre, Telefono de la tabla Clientes ordenados por el campo Nombre. Se pueden ordenar los registros por mas de un campo, como por ejemplo: SELECT CodigoPostal, Nombre, Telefono FROM Clientes ORDER BY CodigoPostal, Nombre Incluso se puede especificar el orden de los registros: ascendente mediante la cláusula (ASC - se toma este valor por defecto) ó descendente (DESC) SELECT CodigoPostal, Nombre, Telefono FROM Clientes ORDER BY CodigoPostal DESC , Nombre ASC
  • 5. • Uso de Indices de las tablas Si deseamos que la sentencia SQL utilice un índice para mostrar los resultados se puede utilizar la palabra reservada INDEX de la siguiente forma: SELECT ... FROM Tabla (INDEX=Indice) ... Normalmente los motores de las bases de datos deciden que índice se debe utilizar para la consulta, para ello utilizan criterios de rendimiento y sobre todo los campos de búsqueda especificados en la cláusula WHERE. Si se desea forzar a no utilizar ningún índice utilizaremos la siguiente sintaxis: SELECT ... FROM Tabla (INDEX=0) ...
  • 6. • Consultas con Predicado El predicado se incluye entre la cláusula y el primer nombre del campo a recuperar, los posibles predicados son: Predicado Descripción Devuelve todos los campos de la ALL tabla Devuelve un determinado TOP número de registros de la tabla Omite los registros cuyos campos DISTINCT seleccionados coincidan totalmente Omite los registros duplicados basándose en la totalidad del DISTINCTOW registro y no sólo en los campos seleccionados.
  • 7. • Recuperar Información de una base de Datos Externa Para concluir este capítulo se debe hacer referencia a la recuperación de registros de bases de datos externas. Es ocasiones es necesario la recuperación de información que se encuentra contenida en una tabla que no se encuentra en la base de datos que ejecutará la consulta o que en ese momento no se encuentra abierta, esta situación la podemos salvar con la palabra reservada IN de la siguiente forma: SELECT Apellido AS Empleado FROM Empleados IN'c: databasesgestion.mdb' En donde c: databasesgestion.mdb es la base de datos que contiene la tabla Empleados. Esta técnica es muy sencilla y común en bases de datos de tipo ACCESS en otros sistemas como SQL-SERVER u ORACLE, la cosa es más complicada la tener que existir relaciones de confianza entre los servidores o al ser necesaria la vinculación entre las bases de datos. Este ejemplo recupera la información de una base de datos de SQL-SERVER ubicada en otro servidor (se da por supuesto que los servidores están lincados): SELECT Apellido FROM Servidor1.BaseDatos1.dbo.Empleados
  • 8. INSERCCION DE DATOS • Insertar datos. Hasta ahora hemos visto como se almacenan los datos en una base de datos y como consultar esos datos almacenados, pero no hemos visto como almacenar dichos datos. Para almacenar datos en una base de datos debemos insertar filas en las tablas. Para ellos SQL pone a nuestra disposición la sentencia INSERT. • Inserción de filas El proceso de inserción de filas consiste en añadir a una tabla una o más filas y en cada fila todos o parte de sus campos. Podemos distinguir dos formas de insertar filas: Inserción individual de filas. Inserción multiple de filas. La sintaxis de la sentencia INSERT es diferente según cual sea nuestro proposito. Sólo podremos omitir un campo al efectuar una inserción cuando este acwepte valores nulos.
  • 9. • Inserción individual de filas Para realizar la insercción individual de filas SQL posee la instrucción INSERT INTO. La insercción individual de filas es la que más comunmente utilizaremos. Su sintaxis es la siguiente: INSERT INTO <nombre_tabla> [(<campo1>[,<campo2>,...])] values (<valor1>,<valor2>,...);
  • 10. • Como se puede observar la sentencia tiene dos partes claramente diferenciadas, por un lado la propia INSERT INTO seguida de la lista de campos en los que queremos insertar los datos, y por otro la lista de valores que queremos insertar en los campos. La mejor forma de ver esto es a través de INSERT INTO tCoches un ejemplo. (matricula, marca , modelo , color , numero_kilometros) values ('M1111CA', 'RENAULT', 'MEGANE TR100', 'NEGRO DIAMANTE', 78000);
  • 11. Con esta sentencia INSERT creamos un registro en la tabla tCoches con los valores especificados, es decir, la matricula tendrá el valor M-1111-CA, la marca será RENAULT y así sucesivamente. ¿Que ocurriría si ya existiera un coche con la matricula M-1111- CA? Se producirá un error, porque hemos definido la clave primaria en el campo matricula, y como hemos visto la clave primaria debe ser única. Si omitimos algún par " campo-valor " en la sentencia INSERT, pueden ocurrir varias cosas: Que se produzca un error , si el campo no acepta valores nulos. Que se grave el registro y se deje nulo el campo, cuando el campo acepte valores nulos. Que se grave el registro y se tome el valor por defecto, cuando el campo tenga definido un valor por defecto. Que hacer en cada cada momento dependerá del programa. Por ejemplo, la siguiente sentencia creará un registro en la tabla tCoches con el campo numero_kilometros cero, ya que este es su valor por defecto. INSERT INTO tCoches (matricula, marca , modelo , color) values ('M1111CA', 'RENAULT', 'MEGANE TR100', 'NEGRO DIAMANTE');
  • 12. • Inserción múltiple de filas La sentencia INSERT permite tambien insertar varios registros en una tabla. Pare ello se utiliza una combinación de la sentencia INSERT junto a una sentencia SELECT. El resultado es que se insertan todos los registros devueltos por la consulta. INSERT INTO <nombre_tabla> [(<campo1>[,<campo2>,...])] SELECT [(<campo1>[,<campo2>,...])] FROM <nombre_tabla_origen>;