Entradas

Consultas dinámicas

Imagen
Consultas dinámicas SQL En esta oportunidad vamos a ver que son las consultas dinámicas, para que sirven y como se usan. ¿Primeramente, por que usar una consulta dinámica? Muchas veces nos encontramos con problemas los cuales requieren que sucedan cosas que una consulta normal de SQL pueda resolver, por ejemplo imaginemos que tenemos un SELECT donde se requiera que el condicional WERE sea de una forma o de otra dependiendo de un parámetro o un cálculo, veamos el siguiente ejemplo: 1.- Supongamos el siguiente esquema 2.- Con la siguiente información 3.- Ahora queremos hacer una consulta a la tabla facturas que dependiendo de una condición filtre por cliente o filtre por iva dependiendo de un parámetro asignado use MiBd --Parámetros necesarios, declaración de variables declare  @tipo_filtro varchar (1),  @parametro1 varchar (20), @where varchar (255), @query varchar (max) -- ####################################### --...

Conocer la cantidad de un carácter específico en una cadena de texto

Imagen
Conocer la cantidad de un carácter  específico presentes en una cadena de  texto Supongamos que tenemos la necesidad de contar cuantos caracteres de un tipo especifico se repite en una expresión de texto, para ellos hay varias soluciones, el día de hoy probaremos la forma que según yo es la mas fácil y practica. Para poder contar los caracteres de un solo tipo presentes en una expresión podemos hacerlo realizando un recorrido con un while, carácter por carácter y si concuerda con el que estamos buscando entonces se le sumaría uno a una variable que podríamos llamar contador por ejemplo, pero afortunadamente existe una forma que considero la mas fácil, el truco es tener la cantidad de caracteres que tiene una cadena de texto y luego restarle la misma cantidad de caracteres pero omitiendo los caracteres que coincidan con el que deseamos buscar. Para entenderlo de una mejor forma haremos la respectiva explicación en transact de la siguiente forma: queremos contar...

Funciones para análisis Lag y Lead

Imagen
Funciones LAG y LEAD A partir de SQL Server 2017 se incorporan nuevas funciones que simplifican la forma de como  podemos analizar algunos registros, unas de estas funciones (LAG y LEAD) sirven para consultar registros anteriores o posteriores a el registro donde estamos posicionados en un momento, esto es muy útil en algunas ocasiones cuando queremos tomar un valor que viene de otras filas y relacionarlo en un  calculo. Para poder demostrarlo hagamos un pequeño ejemplo de la siguiente manera: 1.- En nuestro Management Studio creemos una tabla con la siguiente estructura: CREATE TABLE [dbo].[HistoricoPrecios]( [Cod_producto] [varchar](20) NOT NULL, [PrecioActual] [decimal](18, 4) NOT NULL, [PrecioAnterior] [decimal](18, 4) NOT NULL, [PrecioSiguiente] [decimal](18, 4) NOT NULL ) ON [PRIMARY] GO Una vez creada la tabla procedemos a insertar regustros en ella de la siguiente manera: insert into HistoricoPrecios(Cod_producto,PrecioActual,PrecioAnte...

Relaciones entre tablas

Imagen
Relaciones entre tablas Los datos que se metan en las tablas deben ser lógicos y capaces de someterse a revisiones de integridad, por lo que una base de datos como Sql Server es capaz de proveernos de muchas cosas para garantizar que los datos que se alojen en las tablas sean coherentes y no se meta allí cualquier cosa que se nos ocurra, una de las cosas mas importantes que hay que tener en cuenta es la relación de las tablas. Imagine el siguiente ejemplo: Supongamos que hago una consulta a estas dos tablas de la siguiente manera: En nuestro management studio presionamos el botón Nueva consulta (New query), escribimos el código siguiente y presionamos el botón ejecutar (execute). --1) Insertamos registros en las tablas Factura y RenglonFactura insert into factura(Id,Cliente_Id,Observación,Fecha,SubTotal,iva,Total) values (1,'001','',cast('20190101' as datetime),100,12,112) insert into RenglonFactura(Factura_Id,Renglon_id ,Cod_...

Campos claves, llaves principales o llaves primarias

Imagen
Campos claves, llaves principales o llaves  primarias Al momento de crear una tabla es muy importante saber que debemos almacenar los datos de la forma mas integra posible, y una de las cosas que debemos evitar es la duplicidad de los datos por muchas razones. Imagine que en una empresa que otorga crédito a sus clientes tenga una tabla mal creada y esta tabla permite la duplicidad de los datos, entonces viene el cliente Pedro y solicita un crédito para comprar unos productos y por cosas de mala integridad es creado dos veces en esta tabla, resulta que a la misma persona le puede aparecer dos estados, uno que debe el crédito y otro que no, es justamente esto la principal función de los campos tipo llaves principales, se encarga de mantener un registro único ya sea atado a su número de identificación o algún numero de afiliado o algo así que si se intenta incluir de nuevo y este ya exista impida su creación por segunda vez, es decir, no va a permitir duplicidad de registro...

Validando la existencia de tablas en la base de datos

Validando la existencia de tablas en la base de datos Muchas veces necesitamos saber si existe una tabla en base de datos para tomar una acción, ya sea eliminarla, modificarla o agregarla, para saber si existe empleamos una instrucción que nos provee SQL Server la cual nos brinda información acerca de la estructura que tenemos (esquema de base de datos), esta instrucción es INFORMATION_SCHEMA, y se usa de la siguiente manera: Select * from INFORMATION_SCHEMA . TABLES Esto nos muestra todas las tablas existentes en nuestra base de datos, basta entonces con usar la instrucción where para ver si existe específicamente lo que queremos encontrar, de la siguiente manera: Select * from INFORMATION_SCHEMA . TABLES where table_name = 'Categorias' Este código nos ubica unicamente la tabla “Categorias” si existe en la base de datos. Si quisiera buscar mas de un registro entonces debo emplear la instrucción IN en el where : Select * from INFORM...

Explorando la base de datos y creando tablas

Imagen
EXPLORANDO LA BASE DE DATOS La base de datos que creamos podemos explorarla expandiendo el árbol, en ella podemos ver varias cosas que tiene, a medida que vayamos avanzando veremos las partes mas importantes que la componen. Diagramas de bases de datos (Database diagrams): Es el diagrama interactivo que se dibuja mediante vamos avanzando en la creación de todas las partes de la base de datos, en el podemos ver una representación gráfica de todos los elementos, mas adelante al crear las tablas, procedimientos almacenados, vistas y otros veremos como podemos crear este diagrama y como interactuar con ellos. Tablas :  Es la parte donde se va a guardar nuestros datos, aquí nos vamos a extender un poco por que es tal vez el elemento mas importante que contiene nuestra base de datos, es el sentido de tener un base de datos, por ello debemos saber la forma mas optima y practica de crear esto. Como creamos una tabla?  1.- Por la interfaz: hacemos click con...