Para la fecha : lunes 05/09/11
Impreso
1.- Que es el transaq sql
2.- Sintaxis del transac
En medio magnetico
3.- Que es "sp" con parametros de entrada y de salida
4.- Hacer 22 consultas de la base de datos escogida
domingo, 4 de septiembre de 2011
Tarea 2
para la fecha : martes 30 de agosto
Para el blog
1.- Buscar 5 tutoriales
2.- solucion a las 33 consultas sql de seguimiento de proyectos
3.- Sistema de informacion, control y evaluacion de licitaciones
Para el blog
1.- Buscar 5 tutoriales
2.- solucion a las 33 consultas sql de seguimiento de proyectos
3.- Sistema de informacion, control y evaluacion de licitaciones
CONVENCIONES DE SINTAXIS DE TRANSACT-SQL (TRANSACT-SQL)
En la siguiente tabla se incluyen y describen las convenciones utilizadas en los diagramas de sintaxis de la referencia de Transact-SQL.
Nombres de varias partes
A menos que se especifique lo contrario, todas las referencias de Transact-SQL al nombre de un objeto de base de datos pueden ser un nombre de cuatro partes con el formato siguiente:
server_name.[database_name].[schema_name].object_name
| database_name.[schema_name].object_name
| schema_name.object_name
| object_name
server_name
Especifica un nombre de servidor vinculado o un nombre de servidor remoto.
database_name
Especifica el nombre de una base de datos de SQL Server si el objeto reside en una instancia local de SQL Server. Cuando el objeto está en un servidor vinculado, database_name especifica un catálogo de OLE DB.
schema_name
Especifica el nombre del esquema que contiene el objeto si dicho objeto se encuentra en una base de datos de SQL Server. Si el objeto se encuentra en un servidor vinculado, schema_name especifica un nombre de esquema OLE DB
object_name
Hace referencia al nombre del objeto.
Cuando se hace referencia a un objeto específico, no siempre hay que especificar el servidor, la base de datos y el esquema del SQL Server 2005 Database Engine (Motor de base de datos de SQL Server 2005) para identificar el objeto. No obstante, si no se encuentra el objeto, se muestra un error.
Para omitir los nodos intermedios, utilice puntos para indicar estas posiciones. En la siguiente tabla se muestran los formatos válidos para los nombres de objetos.
Convenciones de los ejemplos de código
A menos que se indique lo contrario, los ejemplos proporcionados en la referencia de Transact-SQL se han probado con SQL Server Management Studio y los valores predeterminados para las siguientes opciones:
- ANSI_NULLS
- ANSI_NULL_DFLT_ON
- ANSI_PADDING
- ANSI_WARNINGS
- CONCAT_NULL_YIELDS_NULL
- QUOTED_IDENTIFIER
La mayoría de los ejemplos de código de la referencia de Transact-SQL se han comprobado en servidores que se ejecutan en un orden que distingue entre mayúsculas y minúsculas. Normalmente, los servidores de prueba ejecutaban la página de códigos ANSI/ISO 1252.
Muchos ejemplos de código utilizan un punto y coma (;) como terminador de instrucciones Transact-SQL. Aunque el punto y coma no es obligatorio, se recomienda su uso.
Muchos ejemplos de código agregan como prefijo a las constantes de cadenas de caracteres Unicode la letra N. Sin el prefijo N, la cadena se convierte a la página de códigos predeterminada de la base de datos. Esta página de códigos predeterminada puede no reconocer determinados caracteres
TRANSACT-SQL
(T-SQL) es una extensión al SQL de Microsoft y Sybase. SQL, que frecuentemente se dice ser un Lenguaje de Búsquedas Estructurado (por sus siglas en inglés), es un lenguage de cómputo estandarizado, desarrollado originalmente por IBM para realizar búsquedas, alterar y definir bases de datos relacionales utilizando estatutos declarativos. T-SQL expande el estándar de SQL para incluir programación procedural, variables locales, varias funciones de soporte para procesamiento de strings, procesamiento de fechas, matemáticas, etc, y cambios a los estatutos DELETE y UPDATE. Estas características adicionales hacen de T-SQL un lenguaje que cumple con las características de un autómata de Turing.
Transact-SQL es fundamental para trabajar con SQL Server. Todas las aplicaciones que se comunican con SQL Server lo hacen enviando instrucciones Transact-SQL al servidor, independientemente de la interfaz de usuario de la aplicación.
A continuación se proporciona una lista de las aplicaciones que pueden generar Transact-SQL:
· Aplicaciones generales de productividad en oficinas.
· Aplicaciones que utilizan una interfaz gráfica de usuario (GUI) para permitir al usuario seleccionar las tablas y columnas cuyos datos desea ver.
· Aplicaciones que utilizan instrucciones del lenguaje general para determinar los datos que el usuario desea ver.
· Aplicaciones de la línea de negocios que almacenan sus datos en bases de datos SQL Server. Estas aplicaciones pueden incluir aplicaciones de otros proveedores o escritas internamente.
· Secuencias de comandos Transact-SQL que se ejecutan con herramientas tales como sqlcmd.
· Aplicaciones creadas con sistemas de desarrollo tales como Microsoft Visual C++, Microsoft Visual Basic o Microsoft Visual J++, y que usan API de base de datos tales como ADO, OLE DB y ODBC.
· Páginas Web que extraen datos de bases de datos SQL Server.
· Sistemas de bases de datos distribuidos desde los que se replican datos SQL Server en varias bases de datos o se ejecutan consultas distribuidas.
· Almacenamientos de datos en los que los datos se extraen de los sistemas de procesamiento de transacciones en línea (OLTP) y se resumen para el análisis dirigido a la toma de decisiones.
Para ver los temas de referencia de Transact-SQL
Para ver la lista de temas en la sección de referencia de Transact-SQL de los Libros en pantalla de SQL Server, siga estos pasos:
- En la barra de herramientas de los Libros en pantalla de SQL Server, haga clic en el botón Sincronizar con tabla de contenido.
- En la ficha Contenido, expanda Referencia de Transact-SQL.
PROCEDIMIENTO ALMACENADO
Un procedimiento almacenado (stored procedure en inglés) es un programa (o procedimiento) el cual es almacenado físicamente en una base de datos. Su implementación varía de un gestor de bases de datos a otro. La ventaja de un procedimiento almacenado es que al ser ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el motor de bases de datos, el cual usualmente corre en un servidor separado. Como tal, posee acceso directo a los datos que necesita manipular y sólo necesita enviar sus resultados de regreso al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes.
Usos típicos para procedimientos almacenados incluyen la validación de datos siendo integrados a la estructura de base de datos (los procedimientos almacenados utilizados para este propósito a menudo son llamados disparadores; triggers en inglés), o encapsular un proceso grande y complejo. El último ejemplo generalmente ejecutará más rápido como un procedimiento almacenado que de haber sido implementado como, por ejemplo, un programa corriendo en el sistema cliente y comunicándose con la base de datos mediante el envío de consultas SQL y recibiendo sus resultados.
Los procedimientos pueden ser ventajosos: Cuando una base de datos es manipulada desde muchos programas externos. Al incluir la lógica de la aplicación en la base de datos utilizando procedimientos almacenados, la necesidad de embeber la misma lógica en todos los programas que acceden a los datos es reducida. Esto puede simplificar la creación y, particularmente, el mantenimiento de los programas involucrados.
Podemos ver un claro ejemplo de estos procedimientos cuando requerimos realizar una misma operación en un servidor dentro de algunas o todas las bases de datos y a la vez dentro de todas o algunas de las tablas de las bases de datos del mismo. Para ello podemos utilizar a los Procedimientos almacenados auto creables que es una forma de generar ciclos redundantes a través de los procedimientos almacenados.
Implementación
Estos procedimientos, se usan a menudo, pero no siempre, para realizar consultas SQL sobre los objetos del banco de datos de una manera abstracta, desde el punto de vista del cliente de la aplicación. Un procedimiento almacenado permite agrupar en forma exclusiva parte de algo específico que se desee realizar o, mejor dicho, el SQL apropiado para dicha acción.Usos
Los usos 'típicos' de los procedimientos almacenados se aplican en la validación de datos, integrados dentro de la estructura del banco de datos. Los procedimientos almacenados usados con tal propósito se llaman comúnmente disparadores, o triggers. Otro uso común es la 'encapsulación' de un API para un proceso complejo o grande que podría requerir la 'ejecución' de varias consultas SQL, tales como la manipulación de un 'dataset' enorme para producir un resultado resumido.También pueden ser usados para el control de gestión de operaciones, y ejecutar procedimientos almacenados dentro de una transacción de tal manera que las transacciones sean efectivamente transparentes para ellos.
Ventajas
La ventaja de un procedimiento almacenado, en respuesta a una petición de usuario, está directamente bajo el control del motor del manejador de bases de datos, lo cual corre generalmente en un servidor separado de manejador de bases de datos aumentando con ello, la rapidez de procesamiento de requerimientos del manejador de bases de datos. El servidor de la base de datos tiene acceso directo a los datos necesarios para manipular y sólo necesita enviar el resultado final al usuario. Los procedimientos almacenados pueden permitir que la lógica del negocio se encuentre como un API en la base de datos, que pueden simplificar la gestión de datos y reducir la necesidad de codificar la lógica en el resto de los programas cliente. Esto puede reducir la probabilidad de que los datos sean corrompidos por el uso de programas clientes defectuosos o erróneos. De este modo, el motor de base de datos puede asegurar la integridad de los datos y la consistencia, con la ayuda de procedimientos almacenados. Algunos afirman que las bases de datos deben ser utilizadas para el almacenamiento de datos solamente, y que la lógica de negocio sólo debería ser aplicada en la capa de negocio de código, a través de aplicaciones cliente que deban acceder a los datos. Sin embargo, el uso de procedimientos almacenados no se opone a la utilización de una capa de negocio.Procedimientos almacenados en MySQL
Desde MySQL 5 los procedimientos almacenados empezaron a ser soportados, como suele suceder en MySQL las sentencias se ejecutan luego de escribir el signo punto y coma (;), por esta razón antes de escribir el procedimiento almacenado la función del punto y coma se asigna a otros caracteres usando la sentencia DELIMITER seguida de un caracter tal como |, de esta manera el procedimiento puede ser escrito usando los punto y comas sin que se ejecute mientras se escribe; después de escrito el procedimiento, se escribe nuevamente la sentencia DELIMITER ; para asignar al punto y coma su función habitual.El siguiente es un ejemplo de procedimiento almacenado en MySQL:
DELIMITER | CREATE PROCEDURE autos(IN velocidad INT,IN marca VARCHAR(50))
BEGINIF velocidad < 120 THEN
INSERT INTO familiares VALUES(velocidad,marca);
ELSEINSERT INTO deportivos VALUES(velocidad,marca);
END IF;
END;
|
22 consultas (sistema de informacion y control de licitaciones)
use BDsistemLicitaciones2
1) Seleccionar todos los datos de Apertura programada
SELECT *
FROM APERTURA_PROGRAMADA
2) Ver la cantidad de usuarios con los que cuenta apertura programada
Select COUNT(*)
from usuario
3) calcular el presupuesto total de la apertura de formularios
select SUM(p.monto_material)+SUM(p.monto_rrhh)
from presupuesto p
4) mostar los codigos donde los costos de rrhh que cuesten exactamente 10000 bs
select p.cod_presupuesto, p.monto_rrhh
from presupuesto p
where p.monto_rrhh = 10000
5) mostar los codigos donde los costos de rrhh exedan los 10000 bs
select p.cod_presupuesto, p.monto_rrhh
from presupuesto p
where p.monto_rrhh > 10000
6) mostrar la fecha de la apertura que tenga el mayor costo de rrhh
select ap.apertura_prog
from APERTURA_PROGRAMADA ap JOIN PRESUPUESTO p on p.cod_apertura = ap.cod_apertura
where p.monto_rrhh in (
select MAX(p.monto_rrhh)
from Presupuesto p
)
7) mostrar la cantidad de presupuestos que sean unicos en costo
select p.monto_rrhh
from presupuesto p
group by (p.monto_rrhh)
having COUNT(*)=1
8) mostrar la gestion y cantidad de los formularios segun su apertura
select f7.gestion, f7.cantidad, ap.apertura_prog
from formulario_7 f7 join apertura_programada ap on f7.cod_apertura=ap.cod_apertura
9) mostrar los usuarios que pueden ver la informacion del formulario 7
select u.nombre
from usuario u join apertura_programada ap on u.cod_apertura=ap.cod_apertura
where ap.cod_apertura in (
select f7.cod_apertura
from formulario_7 f7
)
10)mostrar los cargos agrupados por descricion
select c.descripcion
from cargo c
group by (c.descripcion)
11)mostrar los cargos agrupados por cantidad
select c.cantidad
from cargo c
group by (c.cantidad)
12)mostrar los formularios 6 que se crearon el la fecha 02-02-2011
select *
from formulario_6 f6
where f6.fecha=('02-02-2011')
13)mostrar las aperturas aceptadas
select *
from apertura_programada ap
where ap.estado='aceptada'
14) mostrar los formularios 2 los cualen mencionen una descripcion de 200m2
select *
from formulario_2 f2
where f2.descripcion like '%400m2%'
15)mostrar los formularios 4 que tenga como meta de proyecto refaccionar
select *
from formulario_4
where meta_proyecto like = 'refaccionar%'
16)mostrar los usuarios que tengan un nivel alto
select *
from usuario
where nivel='alto'
17)mostrar los formularios 3 que soliciten cemento
select *
from formulario_3 f3
where f3.producto='cemento'
18) donde el supuesto contenga refaccion
select *
from formulario_3 f3
where f3.supuesto = '%refaccion%'
19)mostrar el nombre y apellidos del usuario cu005
select nombre, ap_pat, ap_mat
from usuario
where cod_usuario='cu005'
20) mostrar los codigos de los formularios 4b que no tengan ninguna justificacion
select cod_form4B
from FORMULARIO_4B
where justificacion='ninguna'
21)mostrar las descripciones de los cargos que sean administrador
select *
from cargo
where descripcion='administrador'
22)determinar los usuarios cuyo id comienza con la palabra lcu
select *
from usuario
where loguin like 'lcu___'
1) Seleccionar todos los datos de Apertura programada
SELECT *
FROM APERTURA_PROGRAMADA
2) Ver la cantidad de usuarios con los que cuenta apertura programada
Select COUNT(*)
from usuario
3) calcular el presupuesto total de la apertura de formularios
select SUM(p.monto_material)+SUM(p.monto_rrhh)
from presupuesto p
4) mostar los codigos donde los costos de rrhh que cuesten exactamente 10000 bs
select p.cod_presupuesto, p.monto_rrhh
from presupuesto p
where p.monto_rrhh = 10000
5) mostar los codigos donde los costos de rrhh exedan los 10000 bs
select p.cod_presupuesto, p.monto_rrhh
from presupuesto p
where p.monto_rrhh > 10000
6) mostrar la fecha de la apertura que tenga el mayor costo de rrhh
select ap.apertura_prog
from APERTURA_PROGRAMADA ap JOIN PRESUPUESTO p on p.cod_apertura = ap.cod_apertura
where p.monto_rrhh in (
select MAX(p.monto_rrhh)
from Presupuesto p
)
7) mostrar la cantidad de presupuestos que sean unicos en costo
select p.monto_rrhh
from presupuesto p
group by (p.monto_rrhh)
having COUNT(*)=1
8) mostrar la gestion y cantidad de los formularios segun su apertura
select f7.gestion, f7.cantidad, ap.apertura_prog
from formulario_7 f7 join apertura_programada ap on f7.cod_apertura=ap.cod_apertura
9) mostrar los usuarios que pueden ver la informacion del formulario 7
select u.nombre
from usuario u join apertura_programada ap on u.cod_apertura=ap.cod_apertura
where ap.cod_apertura in (
select f7.cod_apertura
from formulario_7 f7
)
10)mostrar los cargos agrupados por descricion
select c.descripcion
from cargo c
group by (c.descripcion)
11)mostrar los cargos agrupados por cantidad
select c.cantidad
from cargo c
group by (c.cantidad)
12)mostrar los formularios 6 que se crearon el la fecha 02-02-2011
select *
from formulario_6 f6
where f6.fecha=('02-02-2011')
13)mostrar las aperturas aceptadas
select *
from apertura_programada ap
where ap.estado='aceptada'
14) mostrar los formularios 2 los cualen mencionen una descripcion de 200m2
select *
from formulario_2 f2
where f2.descripcion like '%400m2%'
15)mostrar los formularios 4 que tenga como meta de proyecto refaccionar
select *
from formulario_4
where meta_proyecto like = 'refaccionar%'
16)mostrar los usuarios que tengan un nivel alto
select *
from usuario
where nivel='alto'
17)mostrar los formularios 3 que soliciten cemento
select *
from formulario_3 f3
where f3.producto='cemento'
18) donde el supuesto contenga refaccion
select *
from formulario_3 f3
where f3.supuesto = '%refaccion%'
19)mostrar el nombre y apellidos del usuario cu005
select nombre, ap_pat, ap_mat
from usuario
where cod_usuario='cu005'
20) mostrar los codigos de los formularios 4b que no tengan ninguna justificacion
select cod_form4B
from FORMULARIO_4B
where justificacion='ninguna'
21)mostrar las descripciones de los cargos que sean administrador
select *
from cargo
where descripcion='administrador'
22)determinar los usuarios cuyo id comienza con la palabra lcu
select *
from usuario
where loguin like 'lcu___'
martes, 30 de agosto de 2011
33 Consultas en Sql
1. Listar todos los funcionarios.
select *
from funcionario
2. Listar las unidades que tengan el texto "EDUCACION" en su descripción.
select *
from UNIDAD
where descripcion like '%EDUCACION%'
3. Listar el código del funcionario que tiene como nombre: "LUISA REYES".
select ci
from funcionario
where nombre='LUISA REYES'
4. Listar todos los distritos.
select *
from DISTRITO
5. Listar los proyectos que se iniciaron en fecha "03-30-2010".
select *
from PROYECTO
where fechainicio='03-30-2010'
6. Listar los distritos que tengan el texto "CALIDAD DE VIDA MEDIA".
select *
from DISTRITO
where descripcion like 'CALIDAD DE VIDA MEDIA%'
7. Listar los ítems de funcionarios cuyos telefonos se inicie con “732”.
select f.nombre, t.nroTelefono
from FUNCIONARIO f, TELEFONOF t
where f.item like t.Item and t.nroTelefono like '732%'
8. Listar los proyectos cuyo código termine con “1?”.
select *
from PROYECTO
where codP like '%1'
9. Listar los proyectos cuyo carnet empiece con “0000”.
select *
from PROYECTO
where codP like '0000%'
10. Listar todas las unidades.
select *
from UNIDAD
11. Determinar la cantidad de pasos que siguió el proyecto “000005”
select p.nombre, o.descripcion
from PROYECTO p , OBSERVACIONP o
where p.codP like o.codProy
12. Determinar la cantidad de documentos con extension “aplicable”
select *
from DOCUMENTO
where extencion='aplicable'
13. Determinar la cantidad de documentos tipo “Minuta Descriptiva” y extension “aplicable”
select *
from DOCUMENTO
where extencion='aplicable' and descripcion='minuta descriptiva'
14. Listar todos los proyectos que se iniciaron a partir del ‘20/12/1990’
select *
from PROYECTO
where fechainicio='20/12/1990'
15. Listar todos los documentos correspondientes al proyecto ‘000009’
select p.nombre
from PROYECTO p, SEGUIMIENTO s, DOCUMENTO d
where p.codP like s.codProy and s.codDoc like d.codD
16. Cuantos y cuales son pasos en los que intervino el funcionario 146?.
select d.*
from DOCUMENTO d, SEGUIMIENTO s
where d.codD like s.codDoc and s.Item like '146'
17. Quién es el funcionario 104?
select *
from FUNCIONARIO
where item='104'
18. Cuántos registros tiene la tabla unidad?
select COUNT (*)
from UNIDAD
19. El remanente del proyecto ‘000005’ esta correcto?
Select p.codProy, p.remanente
from PRESUPUESTO p
where p.codProy = '000005'
20. Cuánto se presupuesto en todos los proyectos?
select SUM(p.costofin)
from PRESUPUESTO p
21. Cuántos proyectos se llevan a cabo en el distrito 5? (4 filas)
select p.*
from PROYECTO p, DIST_PROY dp, DISTRITO d
where p.codP like dp.codProy and dp.nroDist='5'
22. Cuántos distritos son del tipo ‘CALIDAD DE VIDA BAJA’?
select *
from DISTRITO
where descripcion like '%baja%'
23. Mostrar los proyectos que se adjudico la empresa ‘Coca Cola’
select p.nombre
from EMPRESA e, ADJUDICACION a, PROYECTO p
where e.nombre = 'COCA-COLA' and a.codProy like p.codP
24. Determinar el monto entre todos los proyectos adjudicados por la empresa ‘000008’?
select SUM(p.costoIni)
from ADJUDICACION a, PROYECTO proy, PRESUPUESTO p
where a.Nit='000008' and a.codProy like proy.codP and proy.codP like p.codProy
25. Cuántos son los proyectos presupuestados con mas de 15.000Bs?
select *
from PRESUPUESTO
where costoIni > 15000
26. Cuántos son los proyectos financiados por el Banco Mundial u ONG?
select COUNT(f.nombre)
from TIPO_FINANCIAMIENTO f, PRESUPUESTO p, PROYECTO proy
where f.nombre='financiado' or f.nombre = 'cooperativo' and f.nrocp like p.nro_cp and p.codProy like proy.codP
27. Mostrar los proyectos financiados por la empresa ‘SOBOCE’?
select p.nombre
from EMPRESA e, ADJUDICACION a, PROYECTO p
where e.nombre = 'SOBOCE' and a.codProy like p.codP
28. Determinar los proyectos con monto superior a 20.000 de costo inicial?
select proy.nombre
from PRESUPUESTO p, PROYECTO proy
where p.costoIni > 20000 and p.codProy=proy.codP
29. Determinar la cantidad de funcionarios de la unidad ’cobranzas’?
select COUNT(f.nombre)
from FUNCIONARIO f, UNIDAD u
where u.nombreU='control' and u.nombreU like f.NombreU
30. Mostrar la unidad en la que se encuentra el funcionario ‘MENDEZ PRIETO VICTOR’?
select f.nombre, u.nombreU, u.descripcion
from FUNCIONARIO f, UNIDAD u
where f.nombre='MENDEZ PRIETO VICTOR' and u.nombreU like f.NombreU
31. Determinar el numero de usuarios cuyo idUsuario empieza con el carácter ‘M’?
select COUNT(u.idUsuario)
from USUARIO u
where u.idUsuario like 'M%'
32. Determinar la cantidad de teléfonos del funcionario104?
select COUNT(*)
from TELEFONOF tf
where tf.item='104'
33. Mostrar los números de teléfono de la empresa 524413?
select te.nroTelefono, te.Nit
from TELEFONOE te
where te.Nit='524413'
Suscribirse a:
Comentarios (Atom)

