SlideShare une entreprise Scribd logo
1  sur  18
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');

Contenu connexe

Tendances

Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Sergio Sanchez
 
Unidad v integridad relacional
Unidad v  integridad relacionalUnidad v  integridad relacional
Unidad v integridad relacional
Orlando Verdugo
 
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Sergio Sanchez
 
Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2
Sergio Sanchez
 
Creación indices y constraints en bases de datos de sql server
Creación indices y constraints en bases de datos de sql serverCreación indices y constraints en bases de datos de sql server
Creación indices y constraints en bases de datos de sql server
RONALLE
 
Como realizar consultas en sql (Unidad 3)
Como realizar consultas en sql (Unidad 3)Como realizar consultas en sql (Unidad 3)
Como realizar consultas en sql (Unidad 3)
Orlando Verdugo
 
Unidad vi vii dml select
Unidad vi vii dml selectUnidad vi vii dml select
Unidad vi vii dml select
Orlando Verdugo
 

Tendances (19)

Breve resumen sobre consultas básicas en MySQL
Breve resumen sobre consultas básicas en MySQLBreve resumen sobre consultas básicas en MySQL
Breve resumen sobre consultas básicas en MySQL
 
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
 
Unidad v integridad relacional
Unidad v  integridad relacionalUnidad v  integridad relacional
Unidad v integridad relacional
 
Sql ddl
Sql ddlSql ddl
Sql ddl
 
2. Manejo de la sintaxis del lenguaje
2. Manejo de la sintaxis del lenguaje2. Manejo de la sintaxis del lenguaje
2. Manejo de la sintaxis del lenguaje
 
SQL-DDL
SQL-DDLSQL-DDL
SQL-DDL
 
Vistas (1)
Vistas (1)Vistas (1)
Vistas (1)
 
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
 
Guia n5 tam 2009 1
Guia n5 tam 2009 1Guia n5 tam 2009 1
Guia n5 tam 2009 1
 
Sql básico - compendio
Sql básico  - compendioSql básico  - compendio
Sql básico - compendio
 
Elemento n3
Elemento n3Elemento n3
Elemento n3
 
Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2
 
Seleccion de datos_sql_2005
Seleccion de datos_sql_2005Seleccion de datos_sql_2005
Seleccion de datos_sql_2005
 
Aprenda SQL Server
Aprenda SQL ServerAprenda SQL Server
Aprenda SQL Server
 
Creación indices y constraints en bases de datos de sql server
Creación indices y constraints en bases de datos de sql serverCreación indices y constraints en bases de datos de sql server
Creación indices y constraints en bases de datos de sql server
 
SQL: DDL, DML y SQL
SQL: DDL, DML y SQLSQL: DDL, DML y SQL
SQL: DDL, DML y SQL
 
Como realizar consultas en sql (Unidad 3)
Como realizar consultas en sql (Unidad 3)Como realizar consultas en sql (Unidad 3)
Como realizar consultas en sql (Unidad 3)
 
Unidad vi vii dml select
Unidad vi vii dml selectUnidad vi vii dml select
Unidad vi vii dml select
 
Parte 08 my sql
Parte 08 my sqlParte 08 my sql
Parte 08 my sql
 

En vedette

0 dieño curricular base ena ts-efi_ene_ene_sol_ter_dcb_c
0  dieño curricular base ena ts-efi_ene_ene_sol_ter_dcb_c0  dieño curricular base ena ts-efi_ene_ene_sol_ter_dcb_c
0 dieño curricular base ena ts-efi_ene_ene_sol_ter_dcb_c
guindi3
 
Aprendamos robotica 02
Aprendamos robotica 02Aprendamos robotica 02
Aprendamos robotica 02
danisant92
 
Presentación vivian rocio_rivera_ramirez
Presentación vivian rocio_rivera_ramirezPresentación vivian rocio_rivera_ramirez
Presentación vivian rocio_rivera_ramirez
vivian1994
 
Dolor de rodillas
Dolor de rodillasDolor de rodillas
Dolor de rodillas
ormasepo
 
Algunas fotografías de la visita.
Algunas fotografías de la visita.Algunas fotografías de la visita.
Algunas fotografías de la visita.
Ian Vila Jofré
 
Unidades de medida de la informacion.
Unidades de medida de la informacion.Unidades de medida de la informacion.
Unidades de medida de la informacion.
AnaisCavagnaro
 
Hipertensión arterial
Hipertensión arterialHipertensión arterial
Hipertensión arterial
p4n1
 
2.agregar preguntas de_selección_de_opciones
2.agregar preguntas de_selección_de_opciones2.agregar preguntas de_selección_de_opciones
2.agregar preguntas de_selección_de_opciones
DeliaGerez
 
Trabajo plástica.dibujos
Trabajo plástica.dibujosTrabajo plástica.dibujos
Trabajo plástica.dibujos
soniaquinta
 

En vedette (20)

Escenarios de formación resultados
Escenarios de formación   resultadosEscenarios de formación   resultados
Escenarios de formación resultados
 
0 dieño curricular base ena ts-efi_ene_ene_sol_ter_dcb_c
0  dieño curricular base ena ts-efi_ene_ene_sol_ter_dcb_c0  dieño curricular base ena ts-efi_ene_ene_sol_ter_dcb_c
0 dieño curricular base ena ts-efi_ene_ene_sol_ter_dcb_c
 
Informatica rozamiento
Informatica rozamientoInformatica rozamiento
Informatica rozamiento
 
Aprendamos robotica 02
Aprendamos robotica 02Aprendamos robotica 02
Aprendamos robotica 02
 
Presentación vivian rocio_rivera_ramirez
Presentación vivian rocio_rivera_ramirezPresentación vivian rocio_rivera_ramirez
Presentación vivian rocio_rivera_ramirez
 
Funciones
FuncionesFunciones
Funciones
 
Dolor de rodillas
Dolor de rodillasDolor de rodillas
Dolor de rodillas
 
Module 2 Vocabulary
Module 2 VocabularyModule 2 Vocabulary
Module 2 Vocabulary
 
Algunas fotografías de la visita.
Algunas fotografías de la visita.Algunas fotografías de la visita.
Algunas fotografías de la visita.
 
Grupo identitario rastafarismo
Grupo identitario rastafarismoGrupo identitario rastafarismo
Grupo identitario rastafarismo
 
Unidades de medida de la informacion.
Unidades de medida de la informacion.Unidades de medida de la informacion.
Unidades de medida de la informacion.
 
Cuestionario N-1: Base De Datos
Cuestionario N-1: Base De DatosCuestionario N-1: Base De Datos
Cuestionario N-1: Base De Datos
 
Biffy Clyro
Biffy ClyroBiffy Clyro
Biffy Clyro
 
Hipertensión arterial
Hipertensión arterialHipertensión arterial
Hipertensión arterial
 
Presentacion planta panela
Presentacion planta panelaPresentacion planta panela
Presentacion planta panela
 
Práctica 0
Práctica 0Práctica 0
Práctica 0
 
Los secretos mejor guardados de Madrid
Los secretos mejor guardados de MadridLos secretos mejor guardados de Madrid
Los secretos mejor guardados de Madrid
 
2.agregar preguntas de_selección_de_opciones
2.agregar preguntas de_selección_de_opciones2.agregar preguntas de_selección_de_opciones
2.agregar preguntas de_selección_de_opciones
 
Trabajo plástica.dibujos
Trabajo plástica.dibujosTrabajo plástica.dibujos
Trabajo plástica.dibujos
 
Happy kids presentacion
Happy kids presentacionHappy kids presentacion
Happy kids presentacion
 

Similaire à Precentacion de sql visual

Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
yehisam
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
yehisam
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
usamn
 

Similaire à Precentacion de sql visual (20)

Lenguaje estructurado sql
Lenguaje estructurado sqlLenguaje estructurado sql
Lenguaje estructurado sql
 
Cheat_MySQL.docx
Cheat_MySQL.docxCheat_MySQL.docx
Cheat_MySQL.docx
 
Sql presentacion
Sql presentacionSql presentacion
Sql presentacion
 
Unidad 2-lenguaje-sql
Unidad 2-lenguaje-sqlUnidad 2-lenguaje-sql
Unidad 2-lenguaje-sql
 
Bdii 04 sql
Bdii 04 sqlBdii 04 sql
Bdii 04 sql
 
Arreglos, Procedimientos y Funciones
Arreglos, Procedimientos y FuncionesArreglos, Procedimientos y Funciones
Arreglos, Procedimientos y Funciones
 
Base de datos
Base de datosBase de datos
Base de datos
 
Slideshare
SlideshareSlideshare
Slideshare
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)
 
Sentencia select
Sentencia selectSentencia select
Sentencia select
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 
Amnel
AmnelAmnel
Amnel
 
Ado.Net
Ado.NetAdo.Net
Ado.Net
 
Consultas sql
Consultas sqlConsultas sql
Consultas sql
 
04-SQL.pdf
04-SQL.pdf04-SQL.pdf
04-SQL.pdf
 
04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdf04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdf
 
SQL Parte 1.pdf
SQL Parte 1.pdfSQL Parte 1.pdf
SQL Parte 1.pdf
 
SQL Parte 1.pdf
SQL Parte 1.pdfSQL Parte 1.pdf
SQL Parte 1.pdf
 
Introduccion ddl
Introduccion ddlIntroduccion ddl
Introduccion ddl
 

Precentacion de sql visual

  • 1.
  • 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');