Precentacion de sql visual

Precentacion de sql visual
Visual Basic es un lenguaje de programación dirigido por eventos,
desarrollado por Alan Cooper para Microsoft. Este lenguaje de
programación es un dialecto de BASIC, con importantes agregados. Su
primera versión fue presentada en 1991, con la intención de simplificar la
programación utilizando un ambiente de desarrollo completamente gráfico
que facilitara la creación de interfaces gráficas y, en cierta medida,
también la programación misma.
El lenguaje de consulta estructurado o SQL (por sus siglas en inglés
structured query language) es un lenguaje declarativo de acceso a bases
de datos relacionales que permite especificar diversos tipos de
operaciones en ellas. Una de sus características es el manejo del álgebra
y el cálculo relacional que permiten efectuar consultas con el fin de
recuperar de forma sencilla información de interés de bases de datos, así
como hacer cambios en ella.
Aquí tienes el código completo para Visual Basic 2005 o superior y usando una
base de datos de SQL Server.
Para insertar los datos, te lo muestro de dos formas: usando un objeto
SqlCommand 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.
Module Module1 Sub Main() ejemploSQL() Console.ReadLine()
End Sub Sub ejemploSQL() Dim sql As New AccesoDatosSQL
Dim t As Integer = sql.TotalRegistros() Console.WriteLine("El total
de 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 insertar
datos " & t + 1) Console.WriteLine("El nuevo ID es: {0}", id) '
Usando un dataAdapter 'id = sql.InsertarAdapter("Guillermo",
"Som", _ ' "guille@nombres.com", DateTime.Now, _ ' "Prueba de
insertar 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 End
Module
'------------------------------------------------------------------------------ ' Instrucciones SQL desde ADO.NET con Visual Basic y SQL
Server (25/May/08) ' ' ©Guillermo 'guille' Som, 2008 '------------------------------------------------------------------------------ Option
Strict On Imports Microsoft.VisualBasic Imports System Imports System.Data Imports System.Data.SqlClient Public
Class AccesoDatosSQL Public NombreTabla As String = "Tabla1" Public Function CadenaConexion() As String Dim csb
As New SqlConnectionStringBuilder csb.DataSource = "(local)SQLEXPRESS" csb.InitialCatalog = "prueba_SQL"
csb.IntegratedSecurity = True Return csb.ConnectionString End Function Public Function Insertar(ByVal nombre As
String, _ 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 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 ' Usando un DataAdapter sel = "SELECT * FROM " & NombreTabla Dim
da As New SqlDataAdapter(sel, sCon) da.MissingSchemaAction = MissingSchemaAction.AddWithKey Dim cb As New
SqlCommandBuilder(da) Dim dt As New DataTable da.Fill(dt) Dim dr As DataRow = dt.NewRow dr("Nombre") = nombre
dr("Apellidos") = apellidos dr("Email") = email dr("Fecha") = fecha.ToString("dd/MM/yyyy") dr("Descripcion") = descripcion
dt.Rows.Add(dr) da.Update(dt) Return CInt(dr("ID")) End Function Public Sub Eliminar(ByVal id As Integer) Dim sCon As
String = CadenaConexion() Dim sel As String = "DELETE FROM " & NombreTabla & " WHERE ID = @ID" Using con As
New 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, _ ByVal
nombre 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) Dim
cmd 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 As
Integer = cmd.ExecuteNonQuery() con.Close() Console.WriteLine("Filas actualizadas: {0}", t) End Using End Sub Public
Function 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
El lenguaje SQL está compuesto por comandos, cláusulas,
operadores y funciones de agregado. Estos elementos se
combinan en las instrucciones para crear, actualizar y manipular
las bases de datos.
Comandos
Existen 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 y
extraer datos de la base de datos.
Comandos DLL
Comando Descripción
CREATE Utilizado para crear nuevas tablas, campos e índices
DROP Empleado para eliminar tablas e índices
ALTER
Utilizado para modificar las tablas agregando campos o cambiando la definición de
los campos.
Comandos DML
Comando Descripción
SELECT
Utilizado para consultar registros de la base de datos que satisfagan un criterio
determinado
INSERT 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 especificados
DELETE Utilizado para eliminar registros de una tabla de una base de datos
Cláusulas
Las cláusulas son condiciones de modificación utilizadas
para definir los datos que desea seleccionar o manipular.
Cláusula Descripción
FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros
WHERE
Utilizada para especificar las condiciones que deben reunir los registros que se
van a seleccionar
GROUP BY Utilizada para separar los registros seleccionados en grupos específicos
HAVING Utilizada para expresar la condición que debe satisfacer cada grupo
ORDER BY
Utilizada para ordenar los registros seleccionados de acuerdo con un orden
específico
Operador Uso
AND
Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si
ambas son ciertas.
OR
Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de
las dos es cierta.
NOT Negación lógica. Devuelve el valor contrario de la expresión.
Funciones de Agregado
Las funciones de agregado se usan dentro de una cláusula
SELECT en grupos de registros para devolver un único
valor que se aplica a un grupo de registros.
Función Descripción
AVG Utilizada para calcular el promedio de los valores de un campo determinado
COUNT Utilizada para devolver el número de registros de la selección
SUM Utilizada para devolver la suma de todos los valores de un campo determinado
MAX Utilizada para devolver el valor más alto de un campo especificado
MIN Utilizada para devolver el valor más bajo de un campo especificado
Operador Uso
< Menor que
> Mayor que
<> Distinto de
<= Menor ó Igual que
>= Mayor ó Igual que
= Igual que
BETWEEN Utilizado para especificar un intervalo de valores.
LIKE Utilizado en la comparación de un modelo
In
Utilizado para especificar registros de una base de datos
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
record set. Este conjunto de registros es modificable.
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 consulta devuelve un record set con el campo
nombre y teléfono de la tabla clientes.
Adicionalmente se puede especificar el orden en que se desean recuperar
los registros de las tablas mediante la clausula ORDER BY Lista de
Campos. En donde Lista de campos representa los campos a ordenar.
Ejemplo:
SELECT CodigoPostal, Nombre, Teléfono FROM Clientes ORDER BY
Nombre;
Esta consulta devuelve los campos CodigoPostal, Nombre, Teléfono 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, Teléfono FROM Clientes ORDER BY
CodigoPostal, Nombre;
Incluso se puede especificar el orden de los registros: ascendente
mediante la clausula (ASC -se toma este valor por defecto) o descendente
(DESC)
SELECT CodigoPostal, Nombre, Teléfono FROM Clientes ORDER BY
CodigoPostal DESC , Nombre ASC;
Consultas con Predicado
El predicado se incluye entre la clausula y el primer
nombre del campo a recuperar, los posibles
predicados son:
Predicado Descripción
ALL Devuelve todos los campos de la tabla
TOP Devuelve un determinado número de registros de la tabla
DISTINCT Omite los registros cuyos campos seleccionados coincidan totalmente
DISTINCTROW
Omite los registros duplicados basándose en la totalidad del registro y no
sólo en los campos seleccionados.
En el capítulo anterior se vio la forma de recuperar los registros de las
tablas, las formas empleadas devolvían todos los registros de la
mencionada tabla. A lo largo de este capítulo se estudiarán las
posibilidades de filtrar los registros con el fin de recuperar solamente
aquellos que cumplan una condiciones preestablecidas.
Antes de comenzar el desarrollo de este capítulo hay que recalcar tres
detalles de vital importancia. El primero de ellos es que cada vez que se
desee establecer una condición referida a un campo de texto la condición
de búsqueda debe ir encerrada entre comillas simples; la segunda es que
no se posible establecer condiciones de búsqueda en los campos memo
y; la tercera y última hace referencia a las fechas. Las fechas se deben
escribir 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 sirve
la separación habitual de la barra (/), hay que utilizar el guión (-) y además
la fecha debe ir encerrada entre almohadillas (#).
<expresión1> Operador <expresión2> Resultado
Verdad AND Falso Falso
Verdad AND Verdad Verdad
Falso AND Verdad Falso
Falso AND Falso Falso
Verdad OR Falso Verdad
Verdad OR Verdad Verdad
Falso OR Verdad Verdad
Falso OR Falso Falso
Verdad XOR Verdad Falso
Verdad XOR Falso Verdad
Falso XOR Verdad Verdad
Falso XOR Falso Falso
Verdad Eqv Verdad Verdad
Verdad Eqv Falso Falso
Falso Eqv Verdad Falso
Falso Eqv Falso Verdad
Verdad Imp Verdad Verdad
Verdad Imp Falso Falso
Verdad Imp Null Null
Falso Imp Verdad Verdad
Falso Imp Falso Verdad
Falso Imp Null Verdad
Null Imp Verdad Verdad
Null Imp Falso Null
Null Imp Null Null
El último operador denominado Is se emplea para comparar dos variables de
tipo objeto <Objeto1> Is <Objeto2>. este operador devuelve verdad si los
dos objetos son iguales
SELECT * FROM Empleados WHERE Edad > 25 AND Edad < 50;
SELECT * FROM Empleados WHERE (Edad > 25 AND Edad < 50) OR
Sueldo = 100;
SELECT * FROM Empleados WHERE NOT Estado = 'Soltero';
SELECT * FROM Empleados WHERE (Sueldo > 100 AND Sueldo < 500) OR
Provincia = 'Madrid' AND Estado = 'Casado');
1 de 18

Recomendados

Funciones de sql serverFunciones de sql server
Funciones de sql serverEmily_Fdez
16.4K vistas12 diapositivas
SqlSql
SqlCesar David Fernandez Grueso
2.2K vistas15 diapositivas
Sql 2010Sql 2010
Sql 2010Paola Daza
291 vistas39 diapositivas

Más contenido relacionado

La actualidad más candente

Sql ddlSql ddl
Sql ddlVictor Guevara
690 vistas13 diapositivas
SQL-DDLSQL-DDL
SQL-DDLbdatos
6.9K vistas25 diapositivas

La actualidad más candente(19)

Unidad v  integridad relacionalUnidad v  integridad relacional
Unidad v integridad relacional
Orlando Verdugo1.6K vistas
Sql ddlSql ddl
Sql ddl
Victor Guevara690 vistas
2. Manejo de la sintaxis del lenguaje2. Manejo de la sintaxis del lenguaje
2. Manejo de la sintaxis del lenguaje
Laura Folgado Galache13.2K vistas
SQL-DDLSQL-DDL
SQL-DDL
bdatos6.9K vistas
Vistas (1)Vistas (1)
Vistas (1)
liliana amparo guerrero laban926 vistas
Guia n5 tam 2009 1Guia n5 tam 2009 1
Guia n5 tam 2009 1
Manuel Hormechea1.2K vistas
Sql básico  - compendioSql básico  - compendio
Sql básico - compendio
Jose Diaz Silva1.6K vistas
Elemento n3Elemento n3
Elemento n3
Marlene Pallo795 vistas
Unidad 6 Lenguaje Sql 2Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2
Sergio Sanchez2.6K vistas
Seleccion de datos_sql_2005Seleccion de datos_sql_2005
Seleccion de datos_sql_2005
Santiago Petter Andonayre Veliz105 vistas
Aprenda SQL ServerAprenda SQL Server
Aprenda SQL Server
Silva Alvarado Fabian25.3K vistas
SQL: DDL, DML y SQLSQL: DDL, DML y SQL
SQL: DDL, DML y SQL
Carmen Soler23K vistas
Como realizar consultas en sql (Unidad 3)Como realizar consultas en sql (Unidad 3)
Como realizar consultas en sql (Unidad 3)
Orlando Verdugo632 vistas
Unidad vi vii dml selectUnidad vi vii dml select
Unidad vi vii dml select
Orlando Verdugo603 vistas
Parte 08 my sqlParte 08 my sql
Parte 08 my sql
rosmeriramos601 vistas

Destacado(20)

Escenarios de formación   resultadosEscenarios de formación   resultados
Escenarios de formación resultados
Darwin Candro Moneris365 vistas
Informatica rozamientoInformatica rozamiento
Informatica rozamiento
marytaxiguano1997389 vistas
Aprendamos robotica 02Aprendamos robotica 02
Aprendamos robotica 02
danisant92207 vistas
FuncionesFunciones
Funciones
cristiangarcia06230 vistas
Dolor de rodillasDolor de rodillas
Dolor de rodillas
ormasepo79 vistas
Module 2 VocabularyModule 2 Vocabulary
Module 2 Vocabulary
Candice Rutherford3.9K vistas
Algunas fotografías de la visita.Algunas fotografías de la visita.
Algunas fotografías de la visita.
Ian Vila Jofré316 vistas
Grupo identitario rastafarismoGrupo identitario rastafarismo
Grupo identitario rastafarismo
Dayana Marcela Gutierrez Ochoa564 vistas
Unidades de medida de la informacion.Unidades de medida de la informacion.
Unidades de medida de la informacion.
AnaisCavagnaro860 vistas
Cuestionario N-1: Base De DatosCuestionario N-1: Base De Datos
Cuestionario N-1: Base De Datos
Alexandra Pedraza Jaimes184 vistas
Biffy ClyroBiffy Clyro
Biffy Clyro
Dayane Ramirez Gomez209 vistas
Hipertensión arterialHipertensión arterial
Hipertensión arterial
p4n1116 vistas
Presentacion planta panelaPresentacion planta panela
Presentacion planta panela
djtaleror273 vistas
Práctica 0Práctica 0
Práctica 0
inorg_iq_eq_3127 vistas
Los secretos mejor guardados de MadridLos secretos mejor guardados de Madrid
Los secretos mejor guardados de Madrid
La Gatera de la Villa 784 vistas
Trabajo plástica.dibujosTrabajo plástica.dibujos
Trabajo plástica.dibujos
soniaquinta338 vistas
Happy kids presentacionHappy kids presentacion
Happy kids presentacion
Johanna Rios325 vistas

Similar a Precentacion de sql visual

Lenguaje estructurado sqlLenguaje estructurado sql
Lenguaje estructurado sqlDiego Sánchez
222 vistas18 diapositivas
Cheat_MySQL.docxCheat_MySQL.docx
Cheat_MySQL.docxdcam4
1 vista3 diapositivas
Sql presentacionSql presentacion
Sql presentacionM. Angel Esteban
4.6K vistas211 diapositivas
Unidad 2-lenguaje-sqlUnidad 2-lenguaje-sql
Unidad 2-lenguaje-sqlclaudia_m
547 vistas10 diapositivas
Bdii 04 sqlBdii 04 sql
Bdii 04 sqlRody Paredes
91 vistas33 diapositivas

Similar a Precentacion de sql visual(20)

Lenguaje estructurado sqlLenguaje estructurado sql
Lenguaje estructurado sql
Diego Sánchez222 vistas
Cheat_MySQL.docxCheat_MySQL.docx
Cheat_MySQL.docx
dcam41 vista
Sql presentacionSql presentacion
Sql presentacion
M. Angel Esteban4.6K vistas
Unidad 2-lenguaje-sqlUnidad 2-lenguaje-sql
Unidad 2-lenguaje-sql
claudia_m547 vistas
Bdii 04 sqlBdii 04 sql
Bdii 04 sql
Rody Paredes91 vistas
Arreglos, Procedimientos y FuncionesArreglos, Procedimientos y Funciones
Arreglos, Procedimientos y Funciones
Cesar David Fernandez Grueso24.8K vistas
Base de datosBase de datos
Base de datos
Josue Sánchez264 vistas
SlideshareSlideshare
Slideshare
ROXANAANDRANGO182 vistas
Sentencia selectSentencia select
Sentencia select
AnthonyLeonRuiz204 vistas
Introduccion ddlIntroduccion ddl
Introduccion ddl
yehisam322 vistas
Introduccion ddlIntroduccion ddl
Introduccion ddl
yehisam234 vistas
AmnelAmnel
Amnel
Amnelyiyi258 vistas
Ado.NetAdo.Net
Ado.Net
Personal906 vistas
Consultas sqlConsultas sql
Consultas sql
juan198305 vistas
04-SQL.pdf04-SQL.pdf
04-SQL.pdf
ssuser94849920 vistas
SQL Parte 1.pdfSQL Parte 1.pdf
SQL Parte 1.pdf
davidvargas6665 vistas
SQL Parte 1.pdfSQL Parte 1.pdf
SQL Parte 1.pdf
davidvargas6664 vistas
Introduccion ddlIntroduccion ddl
Introduccion ddl
usamn133 vistas

Precentacion de sql visual

  • 2. Visual Basic es un lenguaje de programación dirigido por eventos, desarrollado por Alan Cooper para Microsoft. Este lenguaje de programación es un dialecto de BASIC, con importantes agregados. Su primera versión fue presentada en 1991, con la intención de simplificar la programación utilizando un ambiente de desarrollo completamente gráfico que facilitara la creación de interfaces gráficas y, en cierta medida, también la programación misma.
  • 3. El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structured query language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en ellas. Una de sus características es el manejo del álgebra y el cálculo relacional que permiten efectuar consultas con el fin de recuperar de forma sencilla información de interés de bases de datos, así como hacer cambios en ella.
  • 4. Aquí tienes el código completo para Visual Basic 2005 o superior y usando una base de datos de SQL Server. Para insertar los datos, te lo muestro de dos formas: usando un objeto SqlCommand 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.
  • 5. Module Module1 Sub Main() ejemploSQL() Console.ReadLine() End Sub Sub ejemploSQL() Dim sql As New AccesoDatosSQL Dim t As Integer = sql.TotalRegistros() Console.WriteLine("El total de 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 insertar datos " & t + 1) Console.WriteLine("El nuevo ID es: {0}", id) ' Usando un dataAdapter 'id = sql.InsertarAdapter("Guillermo", "Som", _ ' "guille@nombres.com", DateTime.Now, _ ' "Prueba de insertar 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 End Module
  • 6. '------------------------------------------------------------------------------ ' Instrucciones SQL desde ADO.NET con Visual Basic y SQL Server (25/May/08) ' ' ©Guillermo 'guille' Som, 2008 '------------------------------------------------------------------------------ Option Strict On Imports Microsoft.VisualBasic Imports System Imports System.Data Imports System.Data.SqlClient Public Class AccesoDatosSQL Public NombreTabla As String = "Tabla1" Public Function CadenaConexion() As String Dim csb As New SqlConnectionStringBuilder csb.DataSource = "(local)SQLEXPRESS" csb.InitialCatalog = "prueba_SQL" csb.IntegratedSecurity = True Return csb.ConnectionString End Function Public Function Insertar(ByVal nombre As String, _ 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 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 ' Usando un DataAdapter sel = "SELECT * FROM " & NombreTabla Dim da As New SqlDataAdapter(sel, sCon) da.MissingSchemaAction = MissingSchemaAction.AddWithKey Dim cb As New SqlCommandBuilder(da) Dim dt As New DataTable da.Fill(dt) Dim dr As DataRow = dt.NewRow dr("Nombre") = nombre dr("Apellidos") = apellidos dr("Email") = email dr("Fecha") = fecha.ToString("dd/MM/yyyy") dr("Descripcion") = descripcion dt.Rows.Add(dr) da.Update(dt) Return CInt(dr("ID")) End Function Public Sub Eliminar(ByVal id As Integer) Dim sCon As String = CadenaConexion() Dim sel As String = "DELETE FROM " & NombreTabla & " WHERE ID = @ID" Using con As New 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, _ ByVal nombre 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) Dim cmd 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 As Integer = cmd.ExecuteNonQuery() con.Close() Console.WriteLine("Filas actualizadas: {0}", t) End Using End Sub Public Function 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
  • 7. El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos. Comandos Existen 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 y extraer datos de la base de datos.
  • 8. Comandos DLL Comando Descripción CREATE Utilizado para crear nuevas tablas, campos e índices DROP Empleado para eliminar tablas e índices ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos. Comandos DML Comando Descripción SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado INSERT 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 especificados DELETE Utilizado para eliminar registros de una tabla de una base de datos
  • 9. Cláusulas Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular. Cláusula Descripción FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar GROUP BY Utilizada para separar los registros seleccionados en grupos específicos HAVING Utilizada para expresar la condición que debe satisfacer cada grupo ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico
  • 10. Operador Uso AND Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas. OR Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta. NOT Negación lógica. Devuelve el valor contrario de la expresión.
  • 11. Funciones de Agregado Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros para devolver un único valor que se aplica a un grupo de registros. Función Descripción AVG Utilizada para calcular el promedio de los valores de un campo determinado COUNT Utilizada para devolver el número de registros de la selección SUM Utilizada para devolver la suma de todos los valores de un campo determinado MAX Utilizada para devolver el valor más alto de un campo especificado MIN Utilizada para devolver el valor más bajo de un campo especificado
  • 12. Operador Uso < Menor que > Mayor que <> Distinto de <= Menor ó Igual que >= Mayor ó Igual que = Igual que BETWEEN Utilizado para especificar un intervalo de valores. LIKE Utilizado en la comparación de un modelo In Utilizado para especificar registros de una base de datos
  • 13. 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 record set. Este conjunto de registros es modificable. 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 consulta devuelve un record set con el campo nombre y teléfono de la tabla clientes.
  • 14. Adicionalmente se puede especificar el orden en que se desean recuperar los registros de las tablas mediante la clausula ORDER BY Lista de Campos. En donde Lista de campos representa los campos a ordenar. Ejemplo: SELECT CodigoPostal, Nombre, Teléfono FROM Clientes ORDER BY Nombre; Esta consulta devuelve los campos CodigoPostal, Nombre, Teléfono 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, Teléfono FROM Clientes ORDER BY CodigoPostal, Nombre; Incluso se puede especificar el orden de los registros: ascendente mediante la clausula (ASC -se toma este valor por defecto) o descendente (DESC) SELECT CodigoPostal, Nombre, Teléfono FROM Clientes ORDER BY CodigoPostal DESC , Nombre ASC;
  • 15. Consultas con Predicado El predicado se incluye entre la clausula y el primer nombre del campo a recuperar, los posibles predicados son: Predicado Descripción ALL Devuelve todos los campos de la tabla TOP Devuelve un determinado número de registros de la tabla DISTINCT Omite los registros cuyos campos seleccionados coincidan totalmente DISTINCTROW Omite los registros duplicados basándose en la totalidad del registro y no sólo en los campos seleccionados.
  • 16. En el capítulo anterior se vio la forma de recuperar los registros de las tablas, las formas empleadas devolvían todos los registros de la mencionada tabla. A lo largo de este capítulo se estudiarán las posibilidades de filtrar los registros con el fin de recuperar solamente aquellos que cumplan una condiciones preestablecidas. Antes de comenzar el desarrollo de este capítulo hay que recalcar tres detalles de vital importancia. El primero de ellos es que cada vez que se desee establecer una condición referida a un campo de texto la condición de búsqueda debe ir encerrada entre comillas simples; la segunda es que no se posible establecer condiciones de búsqueda en los campos memo y; la tercera y última hace referencia a las fechas. Las fechas se deben escribir 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 sirve la separación habitual de la barra (/), hay que utilizar el guión (-) y además la fecha debe ir encerrada entre almohadillas (#).
  • 17. <expresión1> Operador <expresión2> Resultado Verdad AND Falso Falso Verdad AND Verdad Verdad Falso AND Verdad Falso Falso AND Falso Falso Verdad OR Falso Verdad Verdad OR Verdad Verdad Falso OR Verdad Verdad Falso OR Falso Falso Verdad XOR Verdad Falso Verdad XOR Falso Verdad Falso XOR Verdad Verdad Falso XOR Falso Falso Verdad Eqv Verdad Verdad Verdad Eqv Falso Falso Falso Eqv Verdad Falso Falso Eqv Falso Verdad Verdad Imp Verdad Verdad Verdad Imp Falso Falso Verdad Imp Null Null Falso Imp Verdad Verdad Falso Imp Falso Verdad Falso Imp Null Verdad Null Imp Verdad Verdad Null Imp Falso Null Null Imp Null Null
  • 18. El último operador denominado Is se emplea para comparar dos variables de tipo objeto <Objeto1> Is <Objeto2>. este operador devuelve verdad si los dos objetos son iguales SELECT * FROM Empleados WHERE Edad > 25 AND Edad < 50; SELECT * FROM Empleados WHERE (Edad > 25 AND Edad < 50) OR Sueldo = 100; SELECT * FROM Empleados WHERE NOT Estado = 'Soltero'; SELECT * FROM Empleados WHERE (Sueldo > 100 AND Sueldo < 500) OR Provincia = 'Madrid' AND Estado = 'Casado');