SlideShare ist ein Scribd-Unternehmen logo
1 von 27
TECNOLÓGICO NACIONAL DE MÉXICO
Ingeniería en Sistemas Computacionales
Programación de Base de Datos
Unidad III: Programación de Base de Datos
Material de clase desarrollado para la asignatura de Programación de Base de Datos
para Ingeniería en Sistemas Computacionales
PROGRAMACIÓN DE BASE DE DATOS
PROGRAMACIÓN DE BASE DE DATOS
Competencia:
• Manejar un lenguaje de programación visual y la conexión a la base de
datos mediante código SQL embebido.
Introducción
• La Programación del lado del servidor es una tecnología que consiste en
el procesamiento de una petición de un usuario mediante la
interpretación de un conjunto de instrucciones en el servidor de BD para
generar un conjunto de datos procesados como respuesta.
• Todo lo que suceda dentro del servidor es llamado procesamiento del
lado del servidor, o server-side processing.
PROGRAMACIÓN DE BASE DE DATOS
• Cuando tu aplicación necesita interactuar con el servidor (por ejemplo,
para cargar o guardar datos), ésta realiza una petición del lado del cliente
(client-side request) y puede ser desde una aplicación o desde el
navegador. Mientras la aplicación continúa trabajando, el servidor está
ejecutando código del lado del servidor.
• La utilización de las diferentes aplicaciones o servicios de Internet se lleva
a cabo respondiendo al llamado modelo cliente-servidor.
PROGRAMACIÓN DE BASE DE DATOS
• Cuando se utiliza un servicio en Internet, como consultar una base de
datos, transferir un archivo o participar en un foro de discusión, se
establece un proceso en el que entran en juego dos partes:
 Por un lado: El usuario, quien ejecuta una aplicación en procesador
local, el denominado programa cliente. Este programa cliente se
encarga de ponerse en contacto con el procesador remoto para
solicitar el servicio deseado.
 Por otro lado: El procesador remoto por su parte responderá a lo
solicitado mediante un programa que esta ejecutando. Este último se
denomina programa servidor.
• Los términos cliente y servidor se utilizan tanto para referirse a los
programas que cumplen estas funciones, como a las computadoras
donde son ejecutados esos programas.
PROGRAMACIÓN DE BASE DE DATOS
Creación de vistas
• Una vista es una consulta, que refleja el contenido de una o más tablas,
desde la que se puede acceder a los datos como si fuera una tabla. Dos
son las principales razones por las que podemos crear vistas.
 Seguridad, nos pueden interesar que los usuarios tengan acceso a
una parte de la información que hay en una tabla, pero no a toda la
tabla.
 Comodidad, como ya sabemos el modelo relacional no es el más
cómodo para visualizar los datos, lo que nos puede llevar a tener que
escribir complejas sentencias SQL, tener una vista nos simplifica esta
tarea.
PROGRAMACIÓN DE BASE DE DATOS
• Las vistas no tienen una copia física de los datos, son consultas a los
datos que hay en las tablas, por lo que si actualizamos los datos de una
vista, estamos actualizando realmente la tabla, y si actualizamos la tabla
estos cambios serán visibles desde la vista.
• No siempre podremos actualizar los datos de una vista, esto dependerá
de la complejidad de la misma (dependerá de si el conjunto de resultados
tiene acceso a la clave principal de la tabla o no), y del gestor de base de
datos.
• No todos los gestores de bases de datos permiten actualizar vistas,
ORACLE, por ejemplo, no lo permite, mientras que SQL Server sí.
PROGRAMACIÓN DE BASE DE DATOS
Creación de vistas en SQL Server
Para crear una vista debemos utilizar la sentencia CREATE VIEW,
debiendo proporcionar un nombre a la vista y una sentencia
SQL SELECT válida.
Sintaxis:
CREATE VIEW <nombre_vista> AS
(<sentencia_select>);
PROGRAMACIÓN DE BASE DE DATOS
Ejemplo en SQL Server
CREATE VIEW vAlquileres AS (
SELECT nombre, apellidos, folio
FROM tAlquileres, tClientes
WHERE ( tAlquileres.codigo_cliente = tClientes.codigo ))
Consultar datos de la Vista
SELECT * FROM vAlquileres
Eliminar una Vista
DROP VIEW vAlquileres;
Ejemplo de como extraer información de una vista usando C#
PROGRAMACIÓN DE BASE DE DATOS
String consulta = "SELECT * FROM vAlquileres;"
SqlCommand commando = new SqlCommand(consulta, conectar);
connectar.Open();
SqlDataReader reader = command.ExecuteReader();
try {
while (reader.Read()) {
Console.WriteLine(String.Format("{0}, {1} , {2}", reader[0], reader[1], reader[2]));
}
} finally {
reader.Close();
}
Cursores en SQL Server
• En SQL Server un cursor puede definirse como un elemento que representará
a un conjunto de datos determinado por una consulta T-SQL, el cursor
permitirá recorrer fila a fila, leer y eventualmente modificar dicho conjunto de
resultados.
• La creación y utilización de un cursor estará compuesta, como es de esperarse,
por una serie de instrucciones T-SQL, las cuales podrán separarse en grupos
bien diferenciados, los cuales son:
 Declaración,
 Apertura,
 Acceso a datos,
 Cierre y
 Desalojo.
PROGRAMACIÓN DE BASE DE DATOS
DECLARE @Desc AS nvarchar(400)
DECLARE ProdInfo CURSOR FOR SELECT [Description] FROM ProductDesc
OPEN ProdInfo
FETCH NEXT FROM ProdInfo INTO @Desc
WHILE @@fetch_status = 0
BEGIN
PRINT @Description
FETCH NEXT FROM ProdInfo INTO @Description
END
CLOSE ProdInfo
DEALLOCATE ProdInfo
PROGRAMACIÓN DE BASE DE DATOS
Ejemplo del uso de cursores en SQL Server
Creación de Funciones en SQL Server
• Una función definida por el usuario es una rutina de Transact-SQL o Common
Language Runtime (CLR) que acepta parámetros, realiza una acción, como un
cálculo complejo, y devuelve el resultado de esa acción como un valor. El valor
devuelto puede ser un valor escalar (único) o una tabla.
Sintaxis
CREATE [ OR ALTER ] FUNCTION [ schema_name. ] function_name
( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type
[ = default ] [ READONLY ] }
[ ,...n ]
] )
RETURNS return_data_type
PROGRAMACIÓN DE BASE DE DATOS
CREATE FUNCTION dbo.inventario(@ProductID int)
RETURNS numeric(6,4)
AS
-- La function regresa el nivel de Stock de un producto
BEGIN
DECLARE @ret numeric(6,4);
SELECT @ret = SUM(p.Quantity)
FROM Production.ProductInventory p
WHERE p.ProductID = @ProductID
AND p.LocationID = '6';
IF (@ret IS NULL)
SET @ret = 0;
RETURN @ret;
END;
PROGRAMACIÓN DE BASE DE DATOS
Ejemplo del uso de funciones en SQL Server
Triggers en SQL Server
• Un desencadenador (trigger) es una clase especial de procedimiento
almacenado que se ejecuta automáticamente cuando se produce un
evento en el servidor de bases de datos.
SQL Server permite crear varios desencadenadores para una instrucción
específica.
PROGRAMACIÓN DE BASE DE DATOS
• Desencadenadores DML: se ejecutan cuando un usuario intenta
modificar datos mediante un evento de lenguaje de manipulación de
datos (DML). Los eventos DML son instrucciones INSERT, UPDATE o
DELETE de una tabla o vista (puede usar INSERTE o DELETED).
• Desencadenadores DDL: se ejecutan en respuesta a una variedad de
eventos de lenguaje de definición de datos (DDL). Estos eventos
corresponden principalmente a instrucciones CREATE, ALTER y DROP de
Transact-SQL, y a determinados procedimientos almacenados del sistema
que ejecutan operaciones de tipo DDL.
• Desencadenadores logon: se activan en respuesta al evento LOGON que
se genera cuando se establece la sesión de un usuario.
PROGRAMACIÓN DE BASE DE DATOS
Según el tipo de evento que los desencadena se clasifican en:
CREATE [ OR ALTER ] TRIGGER [ schema_name . ]trigger_name
ON { table | view }
[ WITH <dml_trigger_option> [ ,...n ] ]
{ FOR | AFTER | INSTEAD OF }
{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier [ ; ] > }
<dml_trigger_option> ::=
[ ENCRYPTION ]
[ EXECUTE AS Clause ]
<method_specifier> ::=
assembly_name.class_name.method_name
PROGRAMACIÓN DE BASE DE DATOS
Sintaxis de un triguer en SQL Server: funciona sobre un INSERT,
DELETE, o UPDATE a una tabla o vista
USE Gestion
GO
CREATE TRIGGER ActualizaVentasEmp
ON pedidos FOR INSERT
AS
UPDATE empleados SET ventas=ventas + inserted.importe
FROM empleados, inserted
WHERE numemp=inserted.rep;
GO
PROGRAMACIÓN DE BASE DE DATOS
Ejemplo del uso de triggers en SQL Server
Procedimientos Almacenados en SQL Server
• Un procedimiento almacenado de SQL Server es un grupo de una o varias
instrucciones Transact-SQL. Los procedimientos se asemejan a las
construcciones de otros lenguajes de programación, porque pueden:
 Aceptar parámetros de entrada y devolver varios valores en forma de
parámetros de salida al programa que realiza la llamada.
 Contener instrucciones de programación que realicen operaciones en la
base de datos. Entre otras, pueden contener llamadas a otros
procedimientos.
Sintaxis:
CREATE [PROCEDURE|PROC] nombre_procedimiento [#|##] [(
parámetro1,parámetro2,... )]
[{FOR REPLICATION|WITH RECOMPILE}][WITH ENCRYPTION]
AS<bloque de sentencias>
PROGRAMACIÓN DE BASE DE DATOS
-- actualización de precios de productos: se recibe como parámetro
-- el tipo de cambio del dólar; por medio del procesamiento almacenado
-- se modifica el precio en pesos de los productos con base en su
-- valor en dólares.
USE almacen;
GO
CREATE PROCEDURE ProdPrecio
@tCambio numeric(6,4) AS
UPDATE productos set pt_precio = p_precio_dllr * tCambio;
GO
PROGRAMACIÓN DE BASE DE DATOS
Creación de Procedimientos Almacenados en SQL Server
Ejecución de un SP
USE almacen;
GO
EXEC dbo. ProdPrecio @tCambio = 21.57;
Elementos de Transac-SQL
• SQL es un lenguaje de consulta para los sistemas de bases de datos relaciónales,
pero que no posee la potencia de los lenguajes de programación. No permite el uso
de variables, estructuras de control de flujo, bucles y demás elementos
característicos de la programación. No es de extrañar, SQL es un lenguaje de
consulta, no un lenguaje de programación.
• Transact-SQL es el lenguaje de programación que proporciona Microsoft SQL
Server para extender el SQL estándar con otro tipo de instrucciones y elementos
propios de los lenguajes de programación .
• Con Transact-SQL vamos a poder programar las unidades de programa de la base
de datos SQL Server, están son:
 Procedimientos almacenados
 Funciones
 Triggers (disparadores)
 Scripts
PROGRAMACIÓN DE BASE DE DATOS
Tipos de datos numéricos: SQL Server dispone de varios tipos de datos numéricos.
Cuanto mayor sea el número que puedan almacenar mayor será en consecuencia el
espacio utilizado para almacenarlo. Como regla general se recomienda usar el tipo
de dato mínimo posible. Todos los dato numéricos admiten el valor NULL.
 bit: puede almacenar el rango de valores de 1 a 0.
 tinyint: puede almacenar el rango de valores de 0 a 255.
 smallint: puede almacenar el rango de valores -32768 a 32767.
 int: puede almacenar el rango de valores -231 a 231-1 .
 bigint: puede almacenar el rango de valores -263 a 263-1.
 decimal(p,s): puede almacenar datos numéricos decimales sin redondear. Donde p es
la precisión (número total del dígitos) y s la escala (número de valores decimales).
 Money: Almacena valores numéricos monetarios de -263 a 263-1, con una precisión de
hasta diez milésimas de la unidad monetaria.
PROGRAMACIÓN DE BASE DE DATOS
Tipos de datos de carácter
• Char(n): Almacena n caracteres en formato ASCII, un byte por cada letra. Cuando
almacenamos datos en el tipo char, siempre se utilizan los n caracteres indicados, incluso si la
entrada de datos es inferior. Por ejemplo, si en un char(5), guardamos el valor 'A', se
almacena 'A ', ocupando los cinco bytes.
• Varchar(n): Almacena n caracteres en formato ASCII, un byte por cada letra. Cuando
almacenamos datos en el tipo varchar, únicamente se utilizan los caracteres necesarios. Por
ejemplo, si en un varchar(255), guardamos el valor 'A', se almacena 'A', ocupando solo un
byte bytes.
• Varchar(max): Igual que varchar, pero al declararse como max puede almacenar 231-1 bytes.
• Nchar(n): Almacena n caracteres en formato UNICODE, dos bytes por cada letra. Es
recomendable utilizar este tipo de datos cuando los valores que vayamos a almacenar puedan
pertenecer a diferente idiomas.
• Nvarchar(n): Almacena n caracteres en formato UNICODE, dos bytes por cada letra. Es
recomendable utilizar este tipo de datos cuando los valores que vayamos a almacenar puedan
pertenecer a diferente idiomas.
• Nvarchar(max): Igual que varchar, pero al declararse como max puede almacenar 231-1
bytes.
PROGRAMACIÓN DE BASE DE DATOS
Tipos de datos de fecha
• Datetime: Almacena fechas con una precisión de milisegundo. Debe
usarse para fechas muy especificas.
• SmallDatetime: Almacena fechas con precisión de minutos, por lo que
ocupa la mitad de espacio de que el tipo datetime, para tablas que
puedan llegar a tener muchos datos es un factor a tener muy en cuenta.
• TimeStamp: Se utiliza para marcar un registro con la fecha de inserción -
actualización. El tipo timestamp se actualiza automáticamente cada vez
que insertamos o modificamos los datos.
PROGRAMACIÓN DE BASE DE DATOS
DECLARE @bit bit, @tinyint tinyint,
@smallint smallint, @int int,
@decimal decimal(10,3),
@money money
set @bit = 1
print @bit
set @tinyint = 255
print @tinyint
set @smallint = 32767
print @smallint
set @int = 642325
print @int
set @decimal = 56565.234
print @decimal
set @money = 12.34
print @money
PROGRAMACIÓNDEBASEDEDATOS DECLARE @char char,
@varchar varchar(255),
@smallDatetime smallDatetime
set @char = ‘x’
print @char
set @varchar = ‘Tecnológigo’
print @varchar
set @smalldatetime = '1998-12-13 12:43:00‘
print @smalldatetime
Ejemplos de datos
tipo numéricos
Ejemplos de datos
tipo carácter y
tipo fecha
Proyecto de la unidad: Programación de base de datos (Programación del
lado del servidor)
1: En la BD AlumnosDB que ya tiene en la instancia que tiene instalado el
SQL cear una tabla llamada AlumControl, cuya función es contabilizar el
número de alumnos por carrera. Debe contener los campos:
- Carrera; cadena de 5 caracteres (se admiten solo: IIND, IIA, IGE, ISC,
IIAS, IMEC)
- Total; numérico entero (solo admite números >= 0)
2: Por medio de query generar un registro por carrera con las iniciales de la
carrera y con CERO en el campo Total.
3: Eliminar el contenido de la tabla Alumnos.
PROGRAMACIÓN DE BASE DE DATOS
4: generar los triggers necesarios para llevar a cabo el conteo de alumnos:
- Cuando un registro es agregado a la tabla Alumnos se debe sumar 1 a la
carrera correspondiente en la tabla AlumControl.
- Cuando un registro es eliminado de la tabla Alumnos se debe sumar 1 a la
carrera correspondiente en la tabla AlumControl.
- Cuando un registro es modificado de la tabla Alumnos se debe restar 1 a
la carrera correspondiente en la tabla AlumControl y debe sumar 1 a la
nueva carrera en la tabla AlumControl.
5: Generar una pantalla adicional llamada por un botón, en la GUI que
muestre el contenido de la tabla AlumControl a manera de reporte.
6: Verificar por medio de queries en SQL que el contenido de la tabla
AlumControl es correcto.
PROGRAMACIÓN DE BASE DE DATOS
Bibliografía
• Patrick LeBlanc. 2015. Microsoft Visual C# 2013 Step by Step. EE. UU. Octal
Publishing, Inc. ISBN: 978-0-7356-8183-5.
• John Sharp. 2013. Microsoft SQL Server 2012 Step by Step PrePress. EE. UU.
Sevastopol, CA. O’Reilly Media, Inc.
PROGRAMACIÓN DE BASE DE DATOS

Weitere ähnliche Inhalte

Was ist angesagt?

Metodos De Ordenamiento
Metodos De OrdenamientoMetodos De Ordenamiento
Metodos De Ordenamiento
lichic
 
Estructuras de almacenamiento de Oracle 11g R2
Estructuras de almacenamiento de Oracle 11g R2Estructuras de almacenamiento de Oracle 11g R2
Estructuras de almacenamiento de Oracle 11g R2
Carmen Soler
 
Comandos ddl y dml
Comandos ddl y dmlComandos ddl y dml
Comandos ddl y dml
Gerardo
 

Was ist angesagt? (20)

Metodos De Ordenamiento
Metodos De OrdenamientoMetodos De Ordenamiento
Metodos De Ordenamiento
 
Instalacion de un (SGBD)sistema gestor de base de datos.
Instalacion de un (SGBD)sistema gestor de base de datos.Instalacion de un (SGBD)sistema gestor de base de datos.
Instalacion de un (SGBD)sistema gestor de base de datos.
 
Estructuras de almacenamiento de Oracle 11g R2
Estructuras de almacenamiento de Oracle 11g R2Estructuras de almacenamiento de Oracle 11g R2
Estructuras de almacenamiento de Oracle 11g R2
 
Semana 11 servidrores concurrentes
Semana 11 servidrores concurrentes Semana 11 servidrores concurrentes
Semana 11 servidrores concurrentes
 
TRIGGERS O DISPARADORES
TRIGGERS O DISPARADORESTRIGGERS O DISPARADORES
TRIGGERS O DISPARADORES
 
Comandos ddl y dml
Comandos ddl y dmlComandos ddl y dml
Comandos ddl y dml
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensamblador
 
NoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradasNoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradas
 
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Lectores y escritores
Lectores y escritoresLectores y escritores
Lectores y escritores
 
Control de versiones (CVS)
Control de versiones (CVS)Control de versiones (CVS)
Control de versiones (CVS)
 
Diagrama de despliegue
Diagrama de despliegueDiagrama de despliegue
Diagrama de despliegue
 
Seguridad en los Sistemas Distribuidos
Seguridad en los Sistemas DistribuidosSeguridad en los Sistemas Distribuidos
Seguridad en los Sistemas Distribuidos
 
Taller de Base de Datos - Unidad 2 lenguage DDL
Taller de Base de Datos - Unidad 2 lenguage DDLTaller de Base de Datos - Unidad 2 lenguage DDL
Taller de Base de Datos - Unidad 2 lenguage DDL
 
Arquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidosArquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidos
 
Taller de Base de Datos - Unidad 5 transacciones
Taller de Base de Datos - Unidad 5  transaccionesTaller de Base de Datos - Unidad 5  transacciones
Taller de Base de Datos - Unidad 5 transacciones
 
Arquitectura de bases de datos distribuidas
Arquitectura de bases de datos distribuidasArquitectura de bases de datos distribuidas
Arquitectura de bases de datos distribuidas
 
Comandos ddl
Comandos ddlComandos ddl
Comandos ddl
 
Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en java
 

Andere mochten auch

Andere mochten auch (7)

Fundamentos de Telecomunicaciones - Unidad 5 Multiplexación
Fundamentos de Telecomunicaciones - Unidad 5 MultiplexaciónFundamentos de Telecomunicaciones - Unidad 5 Multiplexación
Fundamentos de Telecomunicaciones - Unidad 5 Multiplexación
 
Fundamentos de Telecomunicaciones - Unidad 3 modulacion
Fundamentos de Telecomunicaciones - Unidad 3 modulacionFundamentos de Telecomunicaciones - Unidad 3 modulacion
Fundamentos de Telecomunicaciones - Unidad 3 modulacion
 
Fundamentos de Telecomunicaciones - Unidad 4: Técnicas de Conmutación
Fundamentos de Telecomunicaciones - Unidad 4: Técnicas de ConmutaciónFundamentos de Telecomunicaciones - Unidad 4: Técnicas de Conmutación
Fundamentos de Telecomunicaciones - Unidad 4: Técnicas de Conmutación
 
Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...
Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...
Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...
 
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de Comunicación
Fundamentos de TelecomunicacionesUnidad 5 Dispositivos de ComunicaciónFundamentos de TelecomunicacionesUnidad 5 Dispositivos de Comunicación
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de Comunicación
 
Fundamentos de Telecomunicaciones - Unidad 1 conceptos basicos
Fundamentos de Telecomunicaciones - Unidad 1 conceptos basicosFundamentos de Telecomunicaciones - Unidad 1 conceptos basicos
Fundamentos de Telecomunicaciones - Unidad 1 conceptos basicos
 
10 ejercicios resueltos en cpp
10 ejercicios resueltos en cpp10 ejercicios resueltos en cpp
10 ejercicios resueltos en cpp
 

Ähnlich wie Programacion de base de datos - unidad 3 Programacion de base de datos

Teoria procedimientos almacenados
Teoria procedimientos almacenadosTeoria procedimientos almacenados
Teoria procedimientos almacenados
hirmaroxana13
 
Bases Datos en java
Bases Datos en javaBases Datos en java
Bases Datos en java
jent46
 
IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005
oswchavez
 
Procedimientos almacenados..mañana
Procedimientos almacenados..mañanaProcedimientos almacenados..mañana
Procedimientos almacenados..mañana
ANilez Solrak
 
APLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESAPLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALES
Darwin Durand
 

Ähnlich wie Programacion de base de datos - unidad 3 Programacion de base de datos (20)

Teoria procedimientos almacenados
Teoria procedimientos almacenadosTeoria procedimientos almacenados
Teoria procedimientos almacenados
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
Ms SQL Server
Ms SQL ServerMs SQL Server
Ms SQL Server
 
sesion 01_sql basico.pdf
sesion 01_sql basico.pdfsesion 01_sql basico.pdf
sesion 01_sql basico.pdf
 
Procedimientos almacenadoss
Procedimientos almacenadossProcedimientos almacenadoss
Procedimientos almacenadoss
 
Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de Datos
 
Java y Bases Datos
Java y Bases DatosJava y Bases Datos
Java y Bases Datos
 
Bases Datos en java
Bases Datos en javaBases Datos en java
Bases Datos en java
 
IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005
 
103305862 t-sql
103305862 t-sql103305862 t-sql
103305862 t-sql
 
t-sql
t-sqlt-sql
t-sql
 
Procedimientos almacenados..mañana
Procedimientos almacenados..mañanaProcedimientos almacenados..mañana
Procedimientos almacenados..mañana
 
PROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOSPROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOS
 
APLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALESAPLICACIONES EMPRESARIALES
APLICACIONES EMPRESARIALES
 
Exposición
ExposiciónExposición
Exposición
 
TRANSACT-SQL
TRANSACT-SQLTRANSACT-SQL
TRANSACT-SQL
 
Exposición
ExposiciónExposición
Exposición
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
 
Introduccion a SQL
Introduccion a SQL Introduccion a SQL
Introduccion a SQL
 

Mehr von José Antonio Sandoval Acosta

Mehr von José Antonio Sandoval Acosta (20)

Linea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptxLinea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptx
 
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptxUNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
 
croquis de aulas UAIM topolobampo FEB 2024
croquis de aulas UAIM topolobampo  FEB 2024croquis de aulas UAIM topolobampo  FEB 2024
croquis de aulas UAIM topolobampo FEB 2024
 
Ing. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 MódulosIng. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 Módulos
 
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasIng. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
 
Ing. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujoIng. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujo
 
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionIng. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
 
Manual de prácticas y antología para POO
Manual de prácticas y antología para  POOManual de prácticas y antología para  POO
Manual de prácticas y antología para POO
 
Aplicaciones móviles intro.
Aplicaciones móviles intro.Aplicaciones móviles intro.
Aplicaciones móviles intro.
 
Economia
EconomiaEconomia
Economia
 
ISCA-quimica-Equipo 2.pptx
ISCA-quimica-Equipo 2.pptxISCA-quimica-Equipo 2.pptx
ISCA-quimica-Equipo 2.pptx
 
Plantilla presentación.pptx
Plantilla presentación.pptxPlantilla presentación.pptx
Plantilla presentación.pptx
 
kitchenham.pptx
kitchenham.pptxkitchenham.pptx
kitchenham.pptx
 
Diagrama de Casos de Uso UML
Diagrama de Casos de Uso UMLDiagrama de Casos de Uso UML
Diagrama de Casos de Uso UML
 
Introducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UMLIntroducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UML
 
Diagrama de clases UML
Diagrama de clases UMLDiagrama de clases UML
Diagrama de clases UML
 
Diagrama UML Casos de Uso
Diagrama UML Casos de UsoDiagrama UML Casos de Uso
Diagrama UML Casos de Uso
 
Tema 3 - Comandos básicos.pdf
Tema 3 - Comandos básicos.pdfTema 3 - Comandos básicos.pdf
Tema 3 - Comandos básicos.pdf
 
Tema 1 - Intro.pdf
Tema 1 - Intro.pdfTema 1 - Intro.pdf
Tema 1 - Intro.pdf
 

Kürzlich hochgeladen

4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
nicolascastaneda8
 
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdfMODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
vladimirpaucarmontes
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
gustavoiashalom
 

Kürzlich hochgeladen (20)

QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERUQUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
 
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptx
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
UNIDAD II 2.pdf ingenieria civil lima upn
UNIDAD  II 2.pdf ingenieria civil lima upnUNIDAD  II 2.pdf ingenieria civil lima upn
UNIDAD II 2.pdf ingenieria civil lima upn
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdf
 
413924447-Clasificacion-de-Inventarios-ABC-ppt.ppt
413924447-Clasificacion-de-Inventarios-ABC-ppt.ppt413924447-Clasificacion-de-Inventarios-ABC-ppt.ppt
413924447-Clasificacion-de-Inventarios-ABC-ppt.ppt
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdfMODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
Presentacion de la ganaderia en la región
Presentacion de la ganaderia en la regiónPresentacion de la ganaderia en la región
Presentacion de la ganaderia en la región
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 

Programacion de base de datos - unidad 3 Programacion de base de datos

  • 1. TECNOLÓGICO NACIONAL DE MÉXICO Ingeniería en Sistemas Computacionales Programación de Base de Datos Unidad III: Programación de Base de Datos Material de clase desarrollado para la asignatura de Programación de Base de Datos para Ingeniería en Sistemas Computacionales PROGRAMACIÓN DE BASE DE DATOS
  • 2. PROGRAMACIÓN DE BASE DE DATOS Competencia: • Manejar un lenguaje de programación visual y la conexión a la base de datos mediante código SQL embebido.
  • 3. Introducción • La Programación del lado del servidor es una tecnología que consiste en el procesamiento de una petición de un usuario mediante la interpretación de un conjunto de instrucciones en el servidor de BD para generar un conjunto de datos procesados como respuesta. • Todo lo que suceda dentro del servidor es llamado procesamiento del lado del servidor, o server-side processing. PROGRAMACIÓN DE BASE DE DATOS
  • 4. • Cuando tu aplicación necesita interactuar con el servidor (por ejemplo, para cargar o guardar datos), ésta realiza una petición del lado del cliente (client-side request) y puede ser desde una aplicación o desde el navegador. Mientras la aplicación continúa trabajando, el servidor está ejecutando código del lado del servidor. • La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor. PROGRAMACIÓN DE BASE DE DATOS
  • 5. • Cuando se utiliza un servicio en Internet, como consultar una base de datos, transferir un archivo o participar en un foro de discusión, se establece un proceso en el que entran en juego dos partes:  Por un lado: El usuario, quien ejecuta una aplicación en procesador local, el denominado programa cliente. Este programa cliente se encarga de ponerse en contacto con el procesador remoto para solicitar el servicio deseado.  Por otro lado: El procesador remoto por su parte responderá a lo solicitado mediante un programa que esta ejecutando. Este último se denomina programa servidor. • Los términos cliente y servidor se utilizan tanto para referirse a los programas que cumplen estas funciones, como a las computadoras donde son ejecutados esos programas. PROGRAMACIÓN DE BASE DE DATOS
  • 6. Creación de vistas • Una vista es una consulta, que refleja el contenido de una o más tablas, desde la que se puede acceder a los datos como si fuera una tabla. Dos son las principales razones por las que podemos crear vistas.  Seguridad, nos pueden interesar que los usuarios tengan acceso a una parte de la información que hay en una tabla, pero no a toda la tabla.  Comodidad, como ya sabemos el modelo relacional no es el más cómodo para visualizar los datos, lo que nos puede llevar a tener que escribir complejas sentencias SQL, tener una vista nos simplifica esta tarea. PROGRAMACIÓN DE BASE DE DATOS
  • 7. • Las vistas no tienen una copia física de los datos, son consultas a los datos que hay en las tablas, por lo que si actualizamos los datos de una vista, estamos actualizando realmente la tabla, y si actualizamos la tabla estos cambios serán visibles desde la vista. • No siempre podremos actualizar los datos de una vista, esto dependerá de la complejidad de la misma (dependerá de si el conjunto de resultados tiene acceso a la clave principal de la tabla o no), y del gestor de base de datos. • No todos los gestores de bases de datos permiten actualizar vistas, ORACLE, por ejemplo, no lo permite, mientras que SQL Server sí. PROGRAMACIÓN DE BASE DE DATOS
  • 8. Creación de vistas en SQL Server Para crear una vista debemos utilizar la sentencia CREATE VIEW, debiendo proporcionar un nombre a la vista y una sentencia SQL SELECT válida. Sintaxis: CREATE VIEW <nombre_vista> AS (<sentencia_select>); PROGRAMACIÓN DE BASE DE DATOS Ejemplo en SQL Server CREATE VIEW vAlquileres AS ( SELECT nombre, apellidos, folio FROM tAlquileres, tClientes WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )) Consultar datos de la Vista SELECT * FROM vAlquileres Eliminar una Vista DROP VIEW vAlquileres;
  • 9. Ejemplo de como extraer información de una vista usando C# PROGRAMACIÓN DE BASE DE DATOS String consulta = "SELECT * FROM vAlquileres;" SqlCommand commando = new SqlCommand(consulta, conectar); connectar.Open(); SqlDataReader reader = command.ExecuteReader(); try { while (reader.Read()) { Console.WriteLine(String.Format("{0}, {1} , {2}", reader[0], reader[1], reader[2])); } } finally { reader.Close(); }
  • 10. Cursores en SQL Server • En SQL Server un cursor puede definirse como un elemento que representará a un conjunto de datos determinado por una consulta T-SQL, el cursor permitirá recorrer fila a fila, leer y eventualmente modificar dicho conjunto de resultados. • La creación y utilización de un cursor estará compuesta, como es de esperarse, por una serie de instrucciones T-SQL, las cuales podrán separarse en grupos bien diferenciados, los cuales son:  Declaración,  Apertura,  Acceso a datos,  Cierre y  Desalojo. PROGRAMACIÓN DE BASE DE DATOS
  • 11. DECLARE @Desc AS nvarchar(400) DECLARE ProdInfo CURSOR FOR SELECT [Description] FROM ProductDesc OPEN ProdInfo FETCH NEXT FROM ProdInfo INTO @Desc WHILE @@fetch_status = 0 BEGIN PRINT @Description FETCH NEXT FROM ProdInfo INTO @Description END CLOSE ProdInfo DEALLOCATE ProdInfo PROGRAMACIÓN DE BASE DE DATOS Ejemplo del uso de cursores en SQL Server
  • 12. Creación de Funciones en SQL Server • Una función definida por el usuario es una rutina de Transact-SQL o Common Language Runtime (CLR) que acepta parámetros, realiza una acción, como un cálculo complejo, y devuelve el resultado de esa acción como un valor. El valor devuelto puede ser un valor escalar (único) o una tabla. Sintaxis CREATE [ OR ALTER ] FUNCTION [ schema_name. ] function_name ( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type [ = default ] [ READONLY ] } [ ,...n ] ] ) RETURNS return_data_type PROGRAMACIÓN DE BASE DE DATOS
  • 13. CREATE FUNCTION dbo.inventario(@ProductID int) RETURNS numeric(6,4) AS -- La function regresa el nivel de Stock de un producto BEGIN DECLARE @ret numeric(6,4); SELECT @ret = SUM(p.Quantity) FROM Production.ProductInventory p WHERE p.ProductID = @ProductID AND p.LocationID = '6'; IF (@ret IS NULL) SET @ret = 0; RETURN @ret; END; PROGRAMACIÓN DE BASE DE DATOS Ejemplo del uso de funciones en SQL Server
  • 14. Triggers en SQL Server • Un desencadenador (trigger) es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos. SQL Server permite crear varios desencadenadores para una instrucción específica. PROGRAMACIÓN DE BASE DE DATOS
  • 15. • Desencadenadores DML: se ejecutan cuando un usuario intenta modificar datos mediante un evento de lenguaje de manipulación de datos (DML). Los eventos DML son instrucciones INSERT, UPDATE o DELETE de una tabla o vista (puede usar INSERTE o DELETED). • Desencadenadores DDL: se ejecutan en respuesta a una variedad de eventos de lenguaje de definición de datos (DDL). Estos eventos corresponden principalmente a instrucciones CREATE, ALTER y DROP de Transact-SQL, y a determinados procedimientos almacenados del sistema que ejecutan operaciones de tipo DDL. • Desencadenadores logon: se activan en respuesta al evento LOGON que se genera cuando se establece la sesión de un usuario. PROGRAMACIÓN DE BASE DE DATOS Según el tipo de evento que los desencadena se clasifican en:
  • 16. CREATE [ OR ALTER ] TRIGGER [ schema_name . ]trigger_name ON { table | view } [ WITH <dml_trigger_option> [ ,...n ] ] { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier [ ; ] > } <dml_trigger_option> ::= [ ENCRYPTION ] [ EXECUTE AS Clause ] <method_specifier> ::= assembly_name.class_name.method_name PROGRAMACIÓN DE BASE DE DATOS Sintaxis de un triguer en SQL Server: funciona sobre un INSERT, DELETE, o UPDATE a una tabla o vista
  • 17. USE Gestion GO CREATE TRIGGER ActualizaVentasEmp ON pedidos FOR INSERT AS UPDATE empleados SET ventas=ventas + inserted.importe FROM empleados, inserted WHERE numemp=inserted.rep; GO PROGRAMACIÓN DE BASE DE DATOS Ejemplo del uso de triggers en SQL Server
  • 18. Procedimientos Almacenados en SQL Server • Un procedimiento almacenado de SQL Server es un grupo de una o varias instrucciones Transact-SQL. Los procedimientos se asemejan a las construcciones de otros lenguajes de programación, porque pueden:  Aceptar parámetros de entrada y devolver varios valores en forma de parámetros de salida al programa que realiza la llamada.  Contener instrucciones de programación que realicen operaciones en la base de datos. Entre otras, pueden contener llamadas a otros procedimientos. Sintaxis: CREATE [PROCEDURE|PROC] nombre_procedimiento [#|##] [( parámetro1,parámetro2,... )] [{FOR REPLICATION|WITH RECOMPILE}][WITH ENCRYPTION] AS<bloque de sentencias> PROGRAMACIÓN DE BASE DE DATOS
  • 19. -- actualización de precios de productos: se recibe como parámetro -- el tipo de cambio del dólar; por medio del procesamiento almacenado -- se modifica el precio en pesos de los productos con base en su -- valor en dólares. USE almacen; GO CREATE PROCEDURE ProdPrecio @tCambio numeric(6,4) AS UPDATE productos set pt_precio = p_precio_dllr * tCambio; GO PROGRAMACIÓN DE BASE DE DATOS Creación de Procedimientos Almacenados en SQL Server Ejecución de un SP USE almacen; GO EXEC dbo. ProdPrecio @tCambio = 21.57;
  • 20. Elementos de Transac-SQL • SQL es un lenguaje de consulta para los sistemas de bases de datos relaciónales, pero que no posee la potencia de los lenguajes de programación. No permite el uso de variables, estructuras de control de flujo, bucles y demás elementos característicos de la programación. No es de extrañar, SQL es un lenguaje de consulta, no un lenguaje de programación. • Transact-SQL es el lenguaje de programación que proporciona Microsoft SQL Server para extender el SQL estándar con otro tipo de instrucciones y elementos propios de los lenguajes de programación . • Con Transact-SQL vamos a poder programar las unidades de programa de la base de datos SQL Server, están son:  Procedimientos almacenados  Funciones  Triggers (disparadores)  Scripts PROGRAMACIÓN DE BASE DE DATOS
  • 21. Tipos de datos numéricos: SQL Server dispone de varios tipos de datos numéricos. Cuanto mayor sea el número que puedan almacenar mayor será en consecuencia el espacio utilizado para almacenarlo. Como regla general se recomienda usar el tipo de dato mínimo posible. Todos los dato numéricos admiten el valor NULL.  bit: puede almacenar el rango de valores de 1 a 0.  tinyint: puede almacenar el rango de valores de 0 a 255.  smallint: puede almacenar el rango de valores -32768 a 32767.  int: puede almacenar el rango de valores -231 a 231-1 .  bigint: puede almacenar el rango de valores -263 a 263-1.  decimal(p,s): puede almacenar datos numéricos decimales sin redondear. Donde p es la precisión (número total del dígitos) y s la escala (número de valores decimales).  Money: Almacena valores numéricos monetarios de -263 a 263-1, con una precisión de hasta diez milésimas de la unidad monetaria. PROGRAMACIÓN DE BASE DE DATOS
  • 22. Tipos de datos de carácter • Char(n): Almacena n caracteres en formato ASCII, un byte por cada letra. Cuando almacenamos datos en el tipo char, siempre se utilizan los n caracteres indicados, incluso si la entrada de datos es inferior. Por ejemplo, si en un char(5), guardamos el valor 'A', se almacena 'A ', ocupando los cinco bytes. • Varchar(n): Almacena n caracteres en formato ASCII, un byte por cada letra. Cuando almacenamos datos en el tipo varchar, únicamente se utilizan los caracteres necesarios. Por ejemplo, si en un varchar(255), guardamos el valor 'A', se almacena 'A', ocupando solo un byte bytes. • Varchar(max): Igual que varchar, pero al declararse como max puede almacenar 231-1 bytes. • Nchar(n): Almacena n caracteres en formato UNICODE, dos bytes por cada letra. Es recomendable utilizar este tipo de datos cuando los valores que vayamos a almacenar puedan pertenecer a diferente idiomas. • Nvarchar(n): Almacena n caracteres en formato UNICODE, dos bytes por cada letra. Es recomendable utilizar este tipo de datos cuando los valores que vayamos a almacenar puedan pertenecer a diferente idiomas. • Nvarchar(max): Igual que varchar, pero al declararse como max puede almacenar 231-1 bytes. PROGRAMACIÓN DE BASE DE DATOS
  • 23. Tipos de datos de fecha • Datetime: Almacena fechas con una precisión de milisegundo. Debe usarse para fechas muy especificas. • SmallDatetime: Almacena fechas con precisión de minutos, por lo que ocupa la mitad de espacio de que el tipo datetime, para tablas que puedan llegar a tener muchos datos es un factor a tener muy en cuenta. • TimeStamp: Se utiliza para marcar un registro con la fecha de inserción - actualización. El tipo timestamp se actualiza automáticamente cada vez que insertamos o modificamos los datos. PROGRAMACIÓN DE BASE DE DATOS
  • 24. DECLARE @bit bit, @tinyint tinyint, @smallint smallint, @int int, @decimal decimal(10,3), @money money set @bit = 1 print @bit set @tinyint = 255 print @tinyint set @smallint = 32767 print @smallint set @int = 642325 print @int set @decimal = 56565.234 print @decimal set @money = 12.34 print @money PROGRAMACIÓNDEBASEDEDATOS DECLARE @char char, @varchar varchar(255), @smallDatetime smallDatetime set @char = ‘x’ print @char set @varchar = ‘Tecnológigo’ print @varchar set @smalldatetime = '1998-12-13 12:43:00‘ print @smalldatetime Ejemplos de datos tipo numéricos Ejemplos de datos tipo carácter y tipo fecha
  • 25. Proyecto de la unidad: Programación de base de datos (Programación del lado del servidor) 1: En la BD AlumnosDB que ya tiene en la instancia que tiene instalado el SQL cear una tabla llamada AlumControl, cuya función es contabilizar el número de alumnos por carrera. Debe contener los campos: - Carrera; cadena de 5 caracteres (se admiten solo: IIND, IIA, IGE, ISC, IIAS, IMEC) - Total; numérico entero (solo admite números >= 0) 2: Por medio de query generar un registro por carrera con las iniciales de la carrera y con CERO en el campo Total. 3: Eliminar el contenido de la tabla Alumnos. PROGRAMACIÓN DE BASE DE DATOS
  • 26. 4: generar los triggers necesarios para llevar a cabo el conteo de alumnos: - Cuando un registro es agregado a la tabla Alumnos se debe sumar 1 a la carrera correspondiente en la tabla AlumControl. - Cuando un registro es eliminado de la tabla Alumnos se debe sumar 1 a la carrera correspondiente en la tabla AlumControl. - Cuando un registro es modificado de la tabla Alumnos se debe restar 1 a la carrera correspondiente en la tabla AlumControl y debe sumar 1 a la nueva carrera en la tabla AlumControl. 5: Generar una pantalla adicional llamada por un botón, en la GUI que muestre el contenido de la tabla AlumControl a manera de reporte. 6: Verificar por medio de queries en SQL que el contenido de la tabla AlumControl es correcto. PROGRAMACIÓN DE BASE DE DATOS
  • 27. Bibliografía • Patrick LeBlanc. 2015. Microsoft Visual C# 2013 Step by Step. EE. UU. Octal Publishing, Inc. ISBN: 978-0-7356-8183-5. • John Sharp. 2013. Microsoft SQL Server 2012 Step by Step PrePress. EE. UU. Sevastopol, CA. O’Reilly Media, Inc. PROGRAMACIÓN DE BASE DE DATOS