Está en la página 1de 14

GUIA DE ESTUDIO

LENGUAJE SQL
SQL es el lenguaje fundamental de los SGBD relacionales. Se trata de uno de los
lenguajes ms utilizados de la historia de la informtica. Es sin duda el lenguaje
fundamental para manejar una base de datos relacional. SQL es un lenguaje
declarativo en lo que lo importante es definir qu se desea hacer, por encima de
cmo hacerlo (que es la forma de trabajar de los lenguajes de programacin de
aplicaciones como visual BASIC, C o Java). Con este lenguaje se pretenda que
las instrucciones se pudieran escribir como si fueran rdenes humanas; es decir,
utilizar un lenguaje lo ms natural posible. De ah que se le considere un lenguaje
de cuarta generacin. Se trata de un lenguaje que intenta agrupar todas las
funciones que se le pueden pedir a una base de datos, por lo que es el lenguaje
utilizado tanto por administradores como por programadores o incluso usuarios
avanzados.
Componentes de un entorno de ejecucin SQL
Segn la normativa ANSI/ISO cuando se ejecuta SQL, existen los siguientes
elementos a tener en cuenta en todo el entorno involucrado en la ejecucin de
instrucciones SQL:
Un agente SQL. Entendido como cualquier elemento que cause la
ejecucin de instrucciones SQL que sern recibidas por un cliente SQL
Una implementacin SQL. Se trata de un procesador software capaz de
ejecutar las instrucciones pedidas por el agente SQL. Una implementacin
est compuesta por:
Un cliente SQL. Software conectado al agente que funciona como interfaz
entre el agente SQL y el servidor SQL. Sirve para establecer conexiones
entre s mismo y el servidor SQL.
Un servidor SQL (puede haber varios). El software encargado de manejar
los datos a los que la instruccin SQL lanzada por el agente hace
referencia. Es el software que realmente realiza la instruccin, los datos los
devuelve al cliente.

Elementos del lenguaje SQL


El cdigo SQL consta de los siguientes elementos:
Comandos. Las distintas instrucciones que se pueden realizar desde SQL
SELECT. Se trata del comando que permite realizar consultas sobre los
datos de la base de datos. Obtiene datos de la base de datos. A sta parte

del lenguaje se la conoce como DQL (Data Query Language, Lenguaje de


consulta de datos); pero es parte del DML del lenguaje.
DML, Data Manipulation Language (Lenguaje de manipulacin de datos).
Modifica filas (registros) de la base de datos. Lo forman las instrucciones
INSERT, UPDATE, MERGE y DELETE.
DDL, Data Definition Language (Lenguaje de definicin de datos).
Permiten modificar la estructura de las tablas de la base de datos. Lo
forman las instrucciones CREATE, ALTER, DROP, RENAME y
TRUNCATE.
Clusulas. Son palabras especiales que permiten modificar el
funcionamiento de un comando (WHERE, ORDER BY,...)
Operadores. Permiten crear expresiones complejas. Pueden ser
aritmticos (+,-,*,/,...) lgicos (>, <, !=,<>, AND, OR,...)
Funciones. Para conseguir valores complejos (SUM(), DATE(),...)
Instrucciones de lenguaje de definicin de datos (DDL)
El DDL (Data Definition Language, o Data Description Language segn autores),
es la parte del SQL dedicada a la definicin de la base de datos, consta de
sentencias para definir la estructura de la base de datos, permite definir gran parte
del nivel interno de la base de datos.
El lenguaje de definicin de datos (DDL) es un vocabulario usado para definir
estructuras de datos en SQL Use estas instrucciones para crear, modificar o quitar
estructuras de datos en una instancia de SQL.
SQL contiene las siguientes instrucciones
ALTER: Use las instrucciones ALTER para modificar la definicin de
entidades existentes. Por ejemplo, use ALTER TABLE para agregar una
nueva columna a una tabla, o use ALTER DATABASE para establecer las
opciones de una base de datos.

DROP: Utilice las instrucciones DROP para quitar las entidades


existentes. Por ejemplo, utilice DROP TABLE para quitar una tabla de una
base de datos.
CREATE: Utilice las instrucciones CREATE para definir nuevas
entidades. Por ejemplo, utilice CREATE TABLE para agregar una nueva
tabla a una base de datos.

El DML
(Data Manipulation Language), lenguaje de manipulacin de datos, nos
permite recuperar los datos almacenados en la base de datos y tambin incluye
rdenes para permitir al usuario actualizar la base de datos aadiendo nuevos
datos, suprimiendo datos antiguos o modificando datos previamente almacenados.
Comandos DML
COMANDO

DESCRIPCIN

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 operacin.

DELETE

Utilizado para modificar los valores de los campos y registros


especificados.

UPDATE

Utilizado para eliminar registros de una tabla de una base de


datos.

CLAUSULAS:

WHERE

Especifica una condicin que debe cumplirse para que los datos sean
devueltos por la consulta. Admite los operadores lgicos AND y OR.

La clusula WHERE puede usarse para determinar qu registros de las tablas


enumeradas en la clusula FROM aparecern en los resultados de la instruccin
SELECT. Si no se emplea esta clusula, la consulta devolver todas las filas de la
tabla. WHERE es opcional, pero cuando aparece debe ir a continuacin de FROM.
ORDER BY Como caracterstica adicional, se pueden incluir nmeros en la
ordenacin, que sern sustituidos por la columna correspondiente del SELECT en
el orden que indique el nmero.
La ordenacin es el ltimo paso en la ejecucin de una consulta SQL, y para ello
Oracle suele necesitar crear objetos temporales que son creados en el tablespace
Temporal. Por eso es recomendable hacer las ordenaciones del lado de cliente
(siempre que sea posible), ya que el servidor puede cargarse bastante si tiene que
hacer, por ejemplo, 300 ordenaciones de tablas de 2 millones de registros.

OPERADORES LGICOS
Hay tres operadores lgicos en SQL:
AND

Es el "y" lgico. Evalua dos condiciones y devuelve un valor de


verdad slo si ambas son ciertas.

OR

Es el "o" lgico. Evala dos condiciones y devuelve un valor de


verdar si alguna de las dos es cierta.

NOT Negacin lgica. Devuelve el valor contrario de la expresin.

Los operadores aritmticos


Realizan operaciones matemticas con dos expresiones de uno o ms de los
tipos de datos de la categora de tipos de datos numricos. Para obtener ms
informacin sobre las categoras de tipos de datos.
OPERADOR

SIGNIFICADO

+ (sumar)

Suma

- (restar)

Resta

* (multiplicar)

Multiplicacin

/ (dividir)

Divisin

% (Mdulo)

Devuelve el resto entero de una divisin. Por ejemplo, 12 % 5


= 2 porque el resto de 12 dividido entre 5 es 2.

Tambin se pueden utilizar los operadores de suma (+) y resta (-) para realizar
operaciones aritmticas sobre valores datetime y smalldatetime.
Los operadores relacionales vinculan un campo con un valor para que SQL Server
compare cada registro (el campo especificado) con el valor dado.

Los operadores relacionales son los siguientes:


=
Igual
<>
Distinto
>
Mayor
<
Menor
>=
Mayor o igual
<=
Menor o igual

GUIA DE
EJERCICIOS
COMADOS SQL:
DDL:
Create:
1. create database clinicas
2. use clinicas
3.

4.

Create table pacientes(


pacide varchar (15) not null,
pacnom varchar (30) not null,
pacape varchar (30) not null,
pacpadre varchar (30) not null,
pacmadre varchar (30) not
null,
paacfechn date not null,
pacdir varchar (100) not null,
pacobs varchar (100) not null,
primary key(pacide))
ALTER TABLE
`clinicas`.`pacientes` ADD
COLUMN `pacsex`
VARCHAR(1) AFTER `pacobs`;

DML:
1.

2.

insert into pacientes


(pacide,pacnom,pacape,pacpadre,p
acmadre,pacfechn,pacdir,pacobs,pa
csex)values
('1807198900173','Danis
Alfredo','Mejia Romero','Danis
Alfredo','Santos
Maribel',01/01/1988,'Col. La
update pacientes set pacsex='M'
where pacide='1807198800173'
delete from pacientes where
pacide='1807198800173'

3.
4.
5.

select *from pacientes


SELECT *from pacientes where
pacide='1807198800173'
SELECT *from pacientes order by
pacnom asc

PROYECTO PARA UNA CLNICA


Ejemplo de codificacin.
Instrucciones.
1. Hacer un nuevo proyecto
2. Guardar el proyecto en una carpeta llamada Proyecto_clinica
3. Agregar al proyecto una referencia llamada Microsoft ActiveX data
Objects 2.5 Library
4. Agregar un control llamado Microsoft DataGrid Control 6.0 (sp4) (OLEB)
5. Disear el Siguiente Formulario

6. Agregar un modulo

Codificacin del Modulo


Public Const DRIVER_MYSQL As String = "DRIVER={MySQL ODBC 3.51 Driver};"
Public Const OPCIONS_MYSQL As String =
"SERVER=localhost;PORT=3306;DATABASE=clinicas;USER=root;PASSWORD=100;"
Public base As ADODB.Connection
Public tabla As ADODB.Recordset
Public consulta As String, cod As Integer, temp As ADODB.Recordset
Public codigo As Integer, bandera As Boolean
Sub conectar()
Set base = New ADODB.Connection
Set tabla = New ADODB.Recordset
base.CursorLocation = adUseClient
base.Open DRIVER_MYSQL & OPCIONS_MYSQL
End Sub
Sub Limpiar
txtpacide_LostFocus()
Private Sub txtpacide_LostFocus()
Sub limpiar()

temp.Close
txtpacnom.Text = ""
Set temp = New ADODB.Recordset
txtpacape.Text = ""
consulta = "SELECT * FROM pacientes where
txtpacpadre.Text = ""
pacide='" & txtpacide.Text & "'"
txtpacmadre.Text
= ""
Private
Sub CMBGUARDAR_Click()
conectar
txtpacfechn.Text
=
Date
temp.Close
Set temp = New ADODB.Recordset
txtpacdir.Text
=
""
Set temp = New ADODB.Recordset
temp.CursorLocation
= adUseClient
cbpacsex.Text
consulta
= "SELECT=*"F"
FROM pacientes where pacide='"
& txtpacide.Text
& "'"
temp.Open consulta, base
txtpacobs.Text = ""
conectar
If temp.RecordCount > 0 Then
consulta
= "SELECT
* FROM
Set temp
= New
ADODB.Recordset
txtpacnom.Text = temp!pacnom
pacientes"
temp.CursorLocation = adUseClient
txtpacape.Text = temp!pacape
conectar
temp.Open consulta, base
txtpacpadre.Text = temp!pacpadre
Set temp = New =
ADODB.Recordset
If temp.RecordCount
0 Then
txtpacmadre.Text = temp!pacmadre
temp.CursorLocation = adUseClient
temp.Close
txtpacfechn.Text = temp!pacfechn
temp.Open
consulta,
base
consulta
= "insert
into pacientes
txtpacdir.Text = temp!pacdir
txtreg.Text
=
temp.RecordCount
(pacide,pacnom,pacape,pacpadre,pacmadre,pacfechn,pacdir,pacsex,pacobs)values
('" &
cbpacsex.Text
= temp!pacsex
CMBGUARDAR.Caption
=
"Guardar"
txtpacide.Text & "','" & txtpacnom.Text & "','" & txtpacape.Text
& "','"
& txtpacpadre.Text & "','" &
txtpacobs.Text
temp!pacobs
CMBBORRAR.Enabled
False
txtpacmadre.Text
& "','" & =
Format(txtpacfechn.Text,
"yy/mm/dd") &="','"
& txtpacdir.Text & "','" &
CMBGUARDAR.Caption = "Editar"
End Sub & "','" & txtpacobs.Text & "');"
cbpacsex.Text
CMBBORRAR.Enabled = True
base.Execute consulta
Else
limpiar
limpiar
MsgBox "datos guardados correctamente"
End If
Exit Sub
End Sub
Else
consulta = "update pacientes set pacnom='" & txtpacnom.Text & "',pacape='" & txtpacape.Text
& "',pacpadre='" & txtpacpadre.Text & "',pacmadre='" & txtpacmadre.Text & "',pacfechn='" &
Format(txtpacfechn.Text, "yy/mm/dd") & "',pacdir='" & txtpacdir.Text & "',pacsex='" &
Guardar
cbpacsex.Text & "',pacobs='" & txtpacobs.Text & "' where pacide='" & txtpacide.Text & "'"
base.Execute consulta
limpiar
MsgBox "datos actualizados correctamente"
Exit Sub
End If
End Sub

Borrar
Private Sub CMBBORRAR_Click()
temp.Close
Set temp = New ADODB.Recordset
consulta = "SELECT * FROM pacientes where pacide='" & txtpacide.Text & "'"
conectar
Set temp = New ADODB.Recordset
temp.CursorLocation = adUseClient
temp.Open consulta, base
If temp.RecordCount > 0 Then
temp.Close
If MsgBox("Esta seguro de eliminar el registro", vbQuestion + vbYesNo, "Cuidado") = vbYes
Then
consulta = "delete from pacientes where pacide='" & txtpacide.Text & "'"
base.Execute consulta
limpiar
MsgBox "Registro eliminado correctamente"
Exit Sub
End If
End If
End Sub
Ahora realizaremos una bsqueda e imprimir un reporte
1. Disear el siguiente formulario

Escribamos la siguiente codificacin

Form_Load()
Private Sub Form_Load()
Set temp = New ADODB.Recordset
conectar
DataGrid1.Caption = "Lista de Pacientes"
consulta = "SELECT * FROM pacientes"
temp.CursorLocation = adUseClient
temp.Open consulta, base
Set DataGrid1.DataSource = temp
cbbus.Text = "Nombre"
End Sub
Text1_Change()
Private Sub Text1_Change()
If Text1.Text = "" Then
Form_Load
Else
If cbbus.Text = "Nombre" Then
temp.Close
Set DataGrid1.DataSource = Nothing
consulta = "select * from pacientes where pacnom like '%" &
Text1.Text & "%' "
temp.Open consulta, base
Set DataGrid1.DataSource = temp
Else
temp.Close
Set DataGrid1.DataSource = Nothing
consulta = "select * from pacientes where pacide like '%" &
Text1.Text & "%' "
temp.Open consulta, base
Set DataGrid1.DataSource = temp
End If
End If
End Sub

2. Agregamos un Data Report


3. Diseamos el reporte

4. En el botn reporte del formulario de bsqueda de pacientes escribimos


el siguiente cdigo
Set DataReport1.DataSource = temp
DataReport1.Show vbModal

También podría gustarte