Precentacion de sql visual

254 views

Published on

  • Be the first to comment

  • Be the first to like this

Precentacion de sql visual

  1. 1. Visual Basic es un lenguaje de programación dirigido por eventos,desarrollado por Alan Cooper para Microsoft. Este lenguaje deprogramación es un dialecto de BASIC, con importantes agregados. Suprimera versión fue presentada en 1991, con la intención de simplificar laprogramación utilizando un ambiente de desarrollo completamente gráficoque facilitara la creación de interfaces gráficas y, en cierta medida,también la programación misma.
  2. 2. El lenguaje de consulta estructurado o SQL (por sus siglas en inglésstructured query language) es un lenguaje declarativo de acceso a basesde datos relacionales que permite especificar diversos tipos deoperaciones en ellas. Una de sus características es el manejo del álgebray el cálculo relacional que permiten efectuar consultas con el fin derecuperar de forma sencilla información de interés de bases de datos, asícomo hacer cambios en ella.
  3. 3. Aquí tienes el código completo para Visual Basic 2005 o superior y usando unabase de datos de SQL Server.Para insertar los datos, te lo muestro de dos formas: usando un objetoSqlCommand y un SqlDataAdapter.Recuerda que los datos están en una base de datos de SQL Server que estáen la instancia SQLEXPRESS del equipo local.
  4. 4. Module Module1 Sub Main() ejemploSQL() Console.ReadLine()End Sub Sub ejemploSQL() Dim sql As New AccesoDatosSQLDim t As Integer = sql.TotalRegistros() Console.WriteLine("El totalde registros es: {0}", t) Console.WriteLine() Dim id As Integer Usando un command id = sql.Insertar("Guillermo", "Som", _"guille@nombres.com", DateTime.Now, _ "Prueba de insertardatos " & t + 1) Console.WriteLine("El nuevo ID es: {0}", id) Usando un dataAdapter id = sql.InsertarAdapter("Guillermo","Som", _ "guille@nombres.com", DateTime.Now, _ "Prueba deinsertar datos " & t + 1) Console.WriteLine("El nuevo ID es: {0}",id) Actualizar el ID 2 id = 2 sql.Actualizar(id, "Guillermo nº" & id,"Som", _ "guille@nombres.com", DateTime.Now) End Sub EndModule
  5. 5. ------------------------------------------------------------------------------ Instrucciones SQL desde ADO.NET con Visual Basic y SQLServer (25/May/08) ©Guillermo guille Som, 2008 ------------------------------------------------------------------------------ OptionStrict On Imports Microsoft.VisualBasic Imports System Imports System.Data Imports System.Data.SqlClient PublicClass AccesoDatosSQL Public NombreTabla As String = "Tabla1" Public Function CadenaConexion() As String Dim csbAs New SqlConnectionStringBuilder csb.DataSource = "(local)SQLEXPRESS" csb.InitialCatalog = "prueba_SQL"csb.IntegratedSecurity = True Return csb.ConnectionString End Function Public Function Insertar(ByVal nombre AsString, _ ByVal apellidos As String, _ ByVal email As String, _ ByVal fecha As DateTime, _ ByVal descripcion As String)As Integer Dim sCon As String = CadenaConexion() Dim sel As String sel = "INSERT INTO " & NombreTabla & _"(Nombre, Apellidos, Email, Fecha, Descripcion) " & _ "VALUES " & _ "(@Nombre, @Apellidos, @Email, @Fecha,@Descripcion) " & _ "SELECT @@Identity" Using con As New SqlConnection(sCon) Dim cmd As New SqlCommand(sel,con) cmd.Parameters.AddWithValue("@Nombre", nombre) cmd.Parameters.AddWithValue("@Apellidos", apellidos)cmd.Parameters.AddWithValue("@Email", email) cmd.Parameters.AddWithValue("@Fecha", fecha)cmd.Parameters.AddWithValue("@Descripcion", descripcion) con.Open() Dim t As Integer = CInt(cmd.ExecuteScalar())con.Close() Return t End Using End Function Public Function InsertarAdapter(ByVal nombre As String, _ ByVal apellidosAs String, _ ByVal email As String, _ ByVal fecha As DateTime, _ ByVal descripcion As String) As Integer Dim sCon AsString = CadenaConexion() Dim sel As String Usando un DataAdapter sel = "SELECT * FROM " & NombreTabla Dimda As New SqlDataAdapter(sel, sCon) da.MissingSchemaAction = MissingSchemaAction.AddWithKey Dim cb As NewSqlCommandBuilder(da) Dim dt As New DataTable da.Fill(dt) Dim dr As DataRow = dt.NewRow dr("Nombre") = nombredr("Apellidos") = apellidos dr("Email") = email dr("Fecha") = fecha.ToString("dd/MM/yyyy") dr("Descripcion") = descripciondt.Rows.Add(dr) da.Update(dt) Return CInt(dr("ID")) End Function Public Sub Eliminar(ByVal id As Integer) Dim sCon AsString = CadenaConexion() Dim sel As String = "DELETE FROM " & NombreTabla & " WHERE ID = @ID" Using con AsNew SqlConnection(sCon) Dim cmd As New SqlCommand(sel, con) cmd.Parameters.AddWithValue("@ID", id)con.Open() cmd.ExecuteNonQuery() con.Close() End Using End Sub Public Sub Actualizar(ByVal id As Integer, _ ByValnombre As String, _ ByVal apellidos As String, _ ByVal email As String, _ ByVal fecha As DateTime) Dim sCon As String= CadenaConexion() Dim sel As String sel = "UPDATE " & NombreTabla & _ " SET Nombre = @Nombre, Apellidos =@Apellidos, Email = @Email, Fecha = @Fecha" & _ " WHERE ID = @ID" Using con As New SqlConnection(sCon) Dimcmd As New SqlCommand(sel, con) cmd.Parameters.AddWithValue("@ID", id)cmd.Parameters.AddWithValue("@Nombre", nombre) cmd.Parameters.AddWithValue("@Apellidos", apellidos)cmd.Parameters.AddWithValue("@Email", email) cmd.Parameters.AddWithValue("@Fecha", fecha) con.Open() Dim t AsInteger = cmd.ExecuteNonQuery() con.Close() Console.WriteLine("Filas actualizadas: {0}", t) End Using End Sub PublicFunction TotalRegistros() As Integer Dim sCon As String = CadenaConexion() Dim sel As String = "SELECT COUNT(*)FROM " & NombreTabla Using con As New SqlConnection(sCon) Dim cmd As New SqlCommand(sel, con) con.Open()Dim t As Integer = CInt(cmd.ExecuteScalar()) con.Close() Return t End Using End Function End Class
  6. 6. El lenguaje SQL está compuesto por comandos, cláusulas,operadores y funciones de agregado. Estos elementos secombinan en las instrucciones para crear, actualizar y manipularlas bases de datos.ComandosExisten dos tipos de comandos SQL:los DLL que permiten crear y definir nuevas bases de datos,campos e índices.los DML que permiten generar consultas para ordenar, filtrar yextraer datos de la base de datos.
  7. 7. Comandos DLLComando DescripciónCREATE Utilizado para crear nuevas tablas, campos e índicesDROP Empleado para eliminar tablas e índicesALTERUtilizado para modificar las tablas agregando campos o cambiando la definición delos campos.Comandos DMLComando DescripciónSELECTUtilizado para consultar registros de la base de datos que satisfagan un criteriodeterminadoINSERT Utilizado para cargar lotes de datos en la base de datos en una única operación.UPDATE Utilizado para modificar los valores de los campos y registros especificadosDELETE Utilizado para eliminar registros de una tabla de una base de datos
  8. 8. CláusulasLas cláusulas son condiciones de modificación utilizadaspara definir los datos que desea seleccionar o manipular.Cláusula DescripciónFROM Utilizada para especificar la tabla de la cual se van a seleccionar los registrosWHEREUtilizada para especificar las condiciones que deben reunir los registros que sevan a seleccionarGROUP BY Utilizada para separar los registros seleccionados en grupos específicosHAVING Utilizada para expresar la condición que debe satisfacer cada grupoORDER BYUtilizada para ordenar los registros seleccionados de acuerdo con un ordenespecífico
  9. 9. Operador UsoANDEs el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo siambas son ciertas.OREs el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna delas dos es cierta.NOT Negación lógica. Devuelve el valor contrario de la expresión.
  10. 10. Funciones de AgregadoLas funciones de agregado se usan dentro de una cláusulaSELECT en grupos de registros para devolver un únicovalor que se aplica a un grupo de registros.Función DescripciónAVG Utilizada para calcular el promedio de los valores de un campo determinadoCOUNT Utilizada para devolver el número de registros de la selecciónSUM Utilizada para devolver la suma de todos los valores de un campo determinadoMAX Utilizada para devolver el valor más alto de un campo especificadoMIN Utilizada para devolver el valor más bajo de un campo especificado
  11. 11. Operador Uso< Menor que> Mayor que<> Distinto de<= Menor ó Igual que>= Mayor ó Igual que= Igual queBETWEEN Utilizado para especificar un intervalo de valores.LIKE Utilizado en la comparación de un modeloInUtilizado para especificar registros de una base de datos
  12. 12. Las consultas de selección se utilizan para indicar almotor de datos que devuelva información de las bases dedatos, esta información es devuelta en forma de conjuntode registros que se pueden almacenar en un objetorecord set. Este conjunto de registros es modificable.Consultas básicasLa sintaxis básica de una consulta de selección es lasiguiente:SELECT Campos FROM Tabla;En donde campos es la lista de campos que se deseenrecuperar y tabla es el origen de los mismos, por ejemplo:SELECT Nombre, Teléfono FROM Clientes;Esta consulta devuelve un record set con el camponombre y teléfono de la tabla clientes.
  13. 13. Adicionalmente se puede especificar el orden en que se desean recuperarlos registros de las tablas mediante la clausula ORDER BY Lista deCampos. En donde Lista de campos representa los campos a ordenar.Ejemplo:SELECT CodigoPostal, Nombre, Teléfono FROM Clientes ORDER BYNombre;Esta consulta devuelve los campos CodigoPostal, Nombre, Teléfono de latabla Clientes ordenados por el campo Nombre.Se pueden ordenar los registros por mas de un campo, como por ejemplo:SELECT CodigoPostal, Nombre, Teléfono FROM Clientes ORDER BYCodigoPostal, Nombre;Incluso se puede especificar el orden de los registros: ascendentemediante la clausula (ASC -se toma este valor por defecto) o descendente(DESC)SELECT CodigoPostal, Nombre, Teléfono FROM Clientes ORDER BYCodigoPostal DESC , Nombre ASC;
  14. 14. Consultas con PredicadoEl predicado se incluye entre la clausula y el primernombre del campo a recuperar, los posiblespredicados son:Predicado DescripciónALL Devuelve todos los campos de la tablaTOP Devuelve un determinado número de registros de la tablaDISTINCT Omite los registros cuyos campos seleccionados coincidan totalmenteDISTINCTROWOmite los registros duplicados basándose en la totalidad del registro y nosólo en los campos seleccionados.
  15. 15. En el capítulo anterior se vio la forma de recuperar los registros de lastablas, las formas empleadas devolvían todos los registros de lamencionada tabla. A lo largo de este capítulo se estudiarán lasposibilidades de filtrar los registros con el fin de recuperar solamenteaquellos que cumplan una condiciones preestablecidas.Antes de comenzar el desarrollo de este capítulo hay que recalcar tresdetalles de vital importancia. El primero de ellos es que cada vez que sedesee establecer una condición referida a un campo de texto la condiciónde búsqueda debe ir encerrada entre comillas simples; la segunda es queno se posible establecer condiciones de búsqueda en los campos memoy; la tercera y última hace referencia a las fechas. Las fechas se debenescribir siempre en formato mm-dd-aa en donde mm representa el mes,dd el día y aa el año, hay que prestar atención a los separadores -no sirvela separación habitual de la barra (/), hay que utilizar el guión (-) y ademásla fecha debe ir encerrada entre almohadillas (#).
  16. 16. <expresión1> Operador <expresión2> ResultadoVerdad AND Falso FalsoVerdad AND Verdad VerdadFalso AND Verdad FalsoFalso AND Falso FalsoVerdad OR Falso VerdadVerdad OR Verdad VerdadFalso OR Verdad VerdadFalso OR Falso FalsoVerdad XOR Verdad FalsoVerdad XOR Falso VerdadFalso XOR Verdad VerdadFalso XOR Falso FalsoVerdad Eqv Verdad VerdadVerdad Eqv Falso FalsoFalso Eqv Verdad FalsoFalso Eqv Falso VerdadVerdad Imp Verdad VerdadVerdad Imp Falso FalsoVerdad Imp Null NullFalso Imp Verdad VerdadFalso Imp Falso VerdadFalso Imp Null VerdadNull Imp Verdad VerdadNull Imp Falso NullNull Imp Null Null
  17. 17. El último operador denominado Is se emplea para comparar dos variables detipo objeto <Objeto1> Is <Objeto2>. este operador devuelve verdad si losdos objetos son igualesSELECT * FROM Empleados WHERE Edad > 25 AND Edad < 50;SELECT * FROM Empleados WHERE (Edad > 25 AND Edad < 50) ORSueldo = 100;SELECT * FROM Empleados WHERE NOT Estado = Soltero;SELECT * FROM Empleados WHERE (Sueldo > 100 AND Sueldo < 500) ORProvincia = Madrid AND Estado = Casado);

×