Sie sind auf Seite 1von 43

c  

|
|
|| 
|

|
|   | |
||||||
 |  ||
|||||| | | ||
||||||
 ||
|||||| ||
|
| ||
||||||    ||
||||||  
||
||||||  ||
|
|

 ||
||||||
 
||
||||||||
|||||| ||
||||||
||
|
|

| | !||
||||||   
 | |
"||
|||||| !||

| 
|
ASP es una tecnología desarrollada por MS para crear páginas web de contenido dinámico apoyándose en
scripts ejecutados en el servidor. Básicamente una página ASP es una mezcla entre una página HTML y un
programa que da como resultado una página HTML que es enviada al cliente (navegador).

Estos scripts o programas pueden en ASP ser escritos en uno de estos dos lenguajes de programación
VBScript o JavaScript, pero el más extendido es VBScript, por eso centraremos todo este manual en VBScript y
todas las posibilidades que él tiene.

ASP es una tecnología que pertenece a la parte servidor, por esto no es necesario que el cliente o navegador
la soporte ya que se ejecuta en el servidor, sí que deberemos buscar un servidor que nos soporte este tipo de
tecnología para que nuestras páginas corran correctamente.

Hay que destacar que ASP es una tecnología propietaria de


  , y que el uso de esta tecnología implica
el uso de los productos de Microsoft: | |  
| y |
 en el servidor.

 |
 ||
La ventaja que tiene ASP sobre otros lenguajes de programación que se ejecutan en el servidor (como
podrían ser los script CGI Perl), es que nos permite intercalar las sentencias ASP en las paginas HTML, es un
concepto algo complicado de entender si no se ha visto nunca como funciona unas paginas PHP o ASP.
Vamos a ver un ejemplo sencillo para comprenderlo mejor. En azul está el à  y en verde el
à 
. Seguiremos este criterio durante todo el manual.


à


 



!

" "
#$ #$

%
&
$"'( "
"()

*"+,-
$"'( (..( "()
/
%

!


^  
 

El código ASP ejecutado tiene dos partes: la primera imprime "Parte de ASP" y la segunda es un bucle que se
ejecuta 10 veces de 0 a 9, por cada vez que se ejecuta se escribe una línea, la variable  contiene el número de
línea que se está escribiendo.

No importa si no entiende muy bien el programa este ejemplo solo es para ilustrar como se intercala el código
HTML y el código ASP.



|
La sintaxis del VBScript es muy parecida a la de Visual Basic, ya que de hecho VBScript es un subconjunto de
Visual Basic.

Las características más destacables son:

r| No hay distinción entre mayúsculas y minúsculas.

r| Las instrucciones terminan con un retorno de carro.

r| No es necesario definir las variables antes de usarlas, pero por claridad lo haremos.

r| Las cadenas de texto se delimitan entre comillas dobles. (

r| Los comentarios empiezan con una comilla simple  y terminan al final de línea.
r| —
|
r| ´na variable es un contenedor de información, en el que podemos meter números enteros, números
decimales, carácteres... el contenido de las variables se puede leer y se puede cambiar durante la
ejecución de una página ASP.
r| En ASP no es necesario definir las variables antes de usarlas. Tampoco tienen tipos, es decir que una
misma variable puede contener un número y luego puede contener carácteres.
r| 
à


 


!
%
&00à

+1
+223
à+((
$"'.( "(..( "(.à)
%
!

r|
r| ^  
 
r| En este ejemplo hemos definido tres variables, ,  y à y con la instrucción $"
hemos impreso el valor que contenían, insertando un salto de línea entre ellas.
r|

r| Existen 2 tipos de variables, las variables locales que solo pueden ser usadas dentro de funciones y las
variables globales que tienen su ámbito de uso fuera de las funciones.

r| 

|
r|

r| Los operadores de VBScript son muy parecidos a los de Visual Basic puesto que es un lenguaje que
procede de este último. Si usted conoce este lenguaje le resultaran familiares y fáciles de reconocer.
r| Estos son los operadores que se pueden aplicar a las variables y constantes numéricas.
r|

!     





+ Suma '45 Suma dos números

- Resta 6- Resta dos números

* Multiplicación 572 Multiplica dos números

/ División 3 8 Divide dos números

% Módulo 69 Devuelve


es 1
el resto de dividir ambos números, en este ejemplo el resultado

^ Exponente 8:3 Eleva 8 a 4.

r|

r| 
à


 


!
%
&0
+8
+2
$"'4.( "()
$"'.( "()
$"'7.( "()
$"' .( "()
$"':.( "()
%
!

r|
r| ^  
 

r|  
|
r|

r| Los operadores de comparación son usados para comparar valores y así poder tomar decisiones.
r|

!     !!|


 |"

= Igual +  es igual 

<> Distinto    es distinto 

< Menor que    es menor que 

> Mayor que   es mayor que 

<= Menor o igual  +  es menor o igual que 

>= Mayor o igual +  es mayor o igual que 

r|

r| 
à


 


!
%
&0
+8
+2
à+2
$"''+).( "()
$"'' ).( "()
$"'' ).( "()
$"'').( "()
$"''+à).( "()
$"'' +à).( "()
%
!

r|
r| ^  
 

r| ë #
|
r|

r| Los operadores lógicos son usados para evaluar varias comparaciones, combinando los posibles valores
de estas.
r|

!     !!|


 |"

And Y '69)'9 3) Devuelve verdadero cuando ambas condiciones son verdaderas.
Devuelve verdadero cuando al menos una de las dos es
Or O '69)"'9 3) verdadera.

Xor XOR '69)/"'9 3) Devuelve verdadero cuando solo una de las dos es verdadera.

Not No '69) Niega el valor de la expresión.

r|

r| 
à


 


!
%
&00à
+8
+2
à+2
$"'''+)'à)).( "()
$"'''+)"'+à)).( "()
$"''' +à)).( "()
%
!


r| 

|
r| Las sentencias condicionales nos permiten ejecutar o no unas ciertas instrucciones dependiendo del
resultado de evaluar una condición. Las más frecuentes son la instrucción * y la instrucción à.
r| Sentencia *
r| %
*àà 
 àà"à
àà à"

 àà"à
àà *
*
%
r|

r| La sentencia * ejecuta una serie de instrucciones u otras dependiendo de la condición que le


pongamos. Probablemente sea la instrucción más importante en cualquier lenguaje de programación.
r| 
à


 


!
%
&0
+8
+2
* 
$"'(";()

$"'(";()
*
%
!

r|
r| ^  
 
r| En este ejemplo la condición no es verdadera por lo que se ejecuta la parte de código correspondiente al
.
r|

r| Sentencia àà
r| 
à


 


!
%
&à
à+(""(

ààà
à(""(#;1
$"'( <"à()
$"'(<"""()
à((#;9
$"'( <"à()
$"'(<"()
à#;2
$"'( <"à"<"()
$"'(""!()
à
%
!

r|
r| ^  
 
r|

r| Con la sentencia àà podemos ejecutar unas u otras instrucciones dependiendo del valor
de una variable, en el ejemplo anterior, dependiendo del valor de la variable à se ejecuta el
bloque 1 cuando el valor es "arriba", el bloque 2 cuando el valor es "abajo" y el bloque 3 si no es
ninguno de los valores anteriores.

r| V|
r| Los bucles nos permiten iterar conjuntos de instrucciones, es decir repetir la ejecución de un conjunto de
instrucciones mientras se cumpla una condición.
r| Sentencia 
r| %
àà 
"ààà"

%
r|

r| Mientras la condición sea cierta se reiterará la ejecución de las instrucciones que están dentro del
.
r| 
à


 


!
=à #$
%
&
+,
 1,
$"'(<"(..( "()
+41

%
> #$
!

r|
r| ^  
 
r| En el siguiente ejemplo, el valor de  al comienzo es ,, durante la ejecución del bucle, se va sumando 1
al valor de  de manera que cuando  vale 1, ya no se cumple la condición y se termina la ejecución
del bucle.
r|

r| Sentencia *"
r| %
*"<"+à*
"ààà"
/
%
r|
r| 
à


 


!
=à #$
%
&
*"+,-
$"'(<"(..( "()
/
%
> #$
!

r|
r| ^  
 
r|

r| Con la instrucción *" indicamos un rango de valores entre los que se moverá la variable de iteración,
desde el valor indicado al principio hasta el valor que se indica al final, en este caso del , al -. Dentro de
la instrucción *" se ejecutarán las instrucciones tomando  los valores del rango.
r| 
|
r| La única manera que tenemos en ASP para producir una salida es usando el objeto del servidor
$, este objeto tiene varios métodos y concretamente el método "'à 
/) nos permite producir una salida que ira al navegador.
r| $"
r| %
$"'à/)
%
r|

r| Si la variable a imprimir no es de texto, tampoco hay ningún problema porque esta es convertida al
instante a texto.
r| Existe también otra manera más corta de imprimir el valor de una variable, usando la forma reducida
%+<"% que equivaldría a la instrucción %$"'<")%
r| 
à


 


!
%
&/00*à
/+(<"/(
+3'23'
*à+
$"'(/ "()
$"'/.( "()
$"'(?"@(..( "()
$"'(?*à@(.*à.( "()
%
 %+%
!


|||
Dado el uso del lenguaje ASP el tratamiento de cadenas es muy importante, existen bastantes funciones para
el manejo de cadenas, a continuación explicaremos las más usadas.

1.| 'à). Nos devuelve el número de carácteres de una cadena.


2.| 'à0""). Divide una cadena en varias usando un carácter separador.
3.| 'à0à0). Devuelve una subcadena de otra, empezando por
à y de longitud .
4.| "'à). Elimina los espacios iniciales y finales de una cadena.
5.| "'à10à9). Busca la cadena2 dentro de cadena1 indicándonos la posición en la
que se encuentra.
6.| "à'/0à10à9). Reemplaza la à1 por la à9 en el
texto.
7.| *'à0). Devuelve los  caracteres de à empezando por la izquierda.


à


 


!
%
&"0
$"''(1923'().( "()
+,
"+'("(0(()

$"'"',).( "()
$"'"'1).( "()
$"'"'9).( "()
$"'"'2).( " "()



$"''(&<<à"(0-02).( " "()

*"'(A()+(A(
$"'(= " "()
*

$"'"'(#à""*"(0("().( " "()

$"'"à'(?Bà"<"0à<""(0(<"(0("()
.( "()

%
!


 

||$
|
El uso de procedimientos y funciones nos da la capacidad de agrupar varias instrucciones bajo un solo
nombre y poder llamarlas a estas varias veces desde diferentes sitios, ahorrándonos la necesidad de escribirlas de
nuevo.

Procedimiento
%
C"'""10""90)
"àà 1D
"àà 9D
"àà 2D
"àà 3D

%

Para llamar a un procedimiento tenemos dos sintaxis distintas:

Sin paréntesis
C"""10""9


Con paréntesis
àC"'""10""9)


Las funciones son iguales que los procedimientos pero estas nos permiten devolver un valor.

Función
%
*àC"'""10""90)
"àà 1D
"àà 9D
"àà 2D
"àà 3D

C"+E"""
*à
%


à


 


!
%

*àF"à'0)
&
+'4) 9
F"à+
*à

$"'F"à'305).( "()
$"'F"à'29390'93'32).( "()

%
!


: 3.03/5
 »  » 
» $
||ë
 
 |

ë
  %|
El uso de librerías es tremendamente útil, nos permiten agrupar varias funciones y variables en un mismo
fichero, de manera que luego podemos incluir esta librería en distintas páginas y disponer de esas funciones
fácilmente.


à

%
Aà" 
%
 >GC =H+(41(àà""II >GC #$
 "
%


  
%
 "
 >GC =H+(1(I >GC #$

"@J;K"à
%

%

 

Ahora vamos a crear 2 páginas que usan la librería definida anteriormente para conseguir que las dos paginas
tengan la misma cabecera y pie de pagina.
La instrucción para incluir una librería en nuestra página es  Là *+(" 
""M(


à


 


!
Là*+("",1(
%àAà" %

I1
#$ #$ #$ #$ #$

A #$ #$
Ià #$ #$

* #$ #$

%à  %
!


^  
 

à


 


!
Là*+("",1(
%àAà" %

"I #$ #$
à #$ #$
"à"!àà"à" #$ #$

%à  %
!


^  
 

|
c  ||
|
|   | |
|||||#
  
||"$%| & '|
||||| |
|| "$%|
||||| | |"$%|
|||||#
 
| "$%|
|
||| |"|
|||||
 |
|(|  |
|||||
 ||)  |
|||||*
 || +
|
|||||$)
 || |
 |
|||||$)
 ||
|

 
||&'|$  (|
Cada cierto tiempo se produce una revolución en la tecnología empleada en el desarrollo de aplicaciones. El
primer gran cambio que vivimos, por lo menos yo, fue el paso de la programación en MSDOS a la programación
Windows (Win16), más tarde con la evolución de los sistemas operativos, el segundo cambio, las aplicaciones
Win32, y ahora estamos viviendo la tercera de las revoluciones, lo que Microsoft llama .NET Framework o más
comúnmente .NET.

Microsoft lanza esta nueva tecnología como respuesta a tecnología Java de Sun. El Framework .NET tiene
grandes similitudes con la plataforma Java, por eso todos aquellos que estén familiarizados con Java comprenderán
en seguida el funcionamiento de .NET.

Centrándonos en el concepto Framework .NET, como el término en inglés dice (Framework = Armazón) es un
marco en donde nuestras aplicaciones correrán. Nuestras aplicaciones ya no corren directamente bajo el sistema
operativo si no que corren bajo este armazón o marco.

Elementos principales .NET Framework:

r| CLR (Common Language Runtime)


r| El conjunto de clases del .NET Framework
r| ASP.NET
r| Los servicios Web
r| Remoting
r| Windows Forms

El ë es el motor de ejecución de las aplicaciones .NET, lo que en Java sería la máquina virtual de Java,
este motor se encarga de ejecutar todo el código .NET para ello a de ser en dicho lenguaje. El CLR es el encargado
de convertir este lenguaje intermedio en leguaje máquina del procesador, esto normalmente se hace en tiempo real
por un compilador JIT (Just-In-Time) que lleva incorporado el CLR.

El ||||&'|$  ( es la piedra angular de cualquier desarrollador de .NET, es un


rico conjunto de clases, interfaces, tipos que simplifican y optimizan el desarrollo de aplicaciones .NET además de
proporcionar acceso a la funcionalidad del sistema. Como desarrolladores el dominio de este conjunto de clases es
vital para un buen desarrollo en .NET.

&' es la parte del .NET Framework dedicada al desarrollo web. A través del servidor web (IIS)
nuestras aplicaciones ASP.NET se ejecutarán bajo el CLR y podremos usar el conjunto de clases del .NET Framework
para desarrollarlas, obteniendo así una versatilidad y una potencia nunca antes conseguida en las aplicaciones ASP.

También son destacables los  !



| , que nos permitirán comunicarnos a través de Internet entre
diferentes ordenadores, incluso entre distintos sistemas. Así como .NET 
# que nos permite tener objetos
en máquinas remotas e invocarlos desde otras máquinas. Y las 
| $ , parte del .NET Framework que
permite crear aplicaciones en el más clásico de los sentidos.

—
|# ||&'|
ASP.NET se ha construid bajo los siguientes principios:

r| Facilidad de desarrollo
r| Alto rendimiento y escalabilidad
r| Mejorada fiabilidad
r| Fácil distribución e instalación

Suena bastante bien, aparentemente todo el mundo busca estas metas, vamos a ver cómo se ha intentado
acercar a cada una de ellas.

Facilidad de desarrollo

ASP.NET introduce un nuevo concepto, los "server controls", que permiten a modo de etiquetas HTML tener
controles manejados por el servidor que identifican el navegador usado adaptándose para cada navegador. Tareas
tediosas como la validación de datos se convierten en fáciles y sencillas.

Posibilidad de elección del lenguaje de programación, puedes elegir el lenguaje de programación que más te
guste, por defecto lleva integrado C#, VB.NET y J#, pero podrías usar otro lenguaje.

Independencia de la herramienta de desarrollo. Puedes utilizar desde el Notepad, hasta la sofistica y potente
Visual Studio .NET, pasando por la gratuita Web Matriz.

Y lo mejor de todo es la rica biblioteca de clases que lleva incorporada, ya no necesitarás obtener
componentes de otras empresas para por ejemplo enviar un email, hacer "upload" de un fichero o generar gráficos
en tiempo de ejecución.

Alto rendimiento y escalabilidad

El código es compilado para ser ejecutado en el CLR. Puedes optar por tenerlo en el servidor precompilado o
dejar que el servidor lo compile la primera vez que lo ejecute. El resultado es de 3 a 5 veces superior en velocidad
que las antiguas páginas ASP.

Rico sistema de cache. El uso adecuado del potente caché incorporado aumenta considerablemente el
rendimiento y la escalabilidad de la aplicación. La caché te permitirá cachear desde páginas completas a partes
completas, pasando por conjuntos de datos extraídos de la base de datos.

ASP.NET está preparado para poder tener granjas de servidores web para sitios con alto volumen de tráfico y
repartir la carga entre distintos servidores.

Mejora de la fiabilidad

ASP.NET es capaz de detectar perdidas de memoria, problemas con bloqueos y protección ante caídas. Entre
otras cosas, es capaz de detectar aplicaciones web que pierden memoria, arrancando otro proceso limpio con una
nueva instancia de la aplicación para cerrar la que pierde memoria liberando así la memoria perdida.

Fácil distribución e instalación

´na aplicación ASP.NET se instala tan fácilmente como copiando los ficheros que la componen. No es
necesario registrar ningún componente, tan solo copiar los ficheros al web.

Puedes recompilar la aplicación o enviar nuevos ficheros sin necesidad de reiniciar la aplicación ni el servidor
web.

—
|
|&'|
En este curso vamos a emplear la herramienta de desarrollo Visual Studio .NET por ser la mejor y la que más
facilidades nos proporciona a la hora de desarrollar aplicaciones ASP.NET

Visual Studio .NET no es gratis, sin embargo Microsoft ofrece una herramienta con menos capacidades pero
gratuita, esta herramienta se llama ASP.NET Web Matrix y se puede descargar desde la web de Microsoft.

  


||&'|
Antes de empezar a crear la aplicación vamos a ver si tenemos los requisitos mínimos para empezar.

?re-requisitos

Empezaremos por el sistema operativo, necesitaremos W2000 Profesional SP3, W2000 Server SP3, Windows
XP Profesional o W2003 Server. No sirven W95, W98 o XP Home, porque no llevan IIS (Internet Information
Services).

Puede ser que aún teniendo uno de los sistemas operativos necesarios no tengamos instalado el IIS, que por
defecto no viene en la configuración por defecto de instalación. Si es así, instalaremos el IIS.

En Î   


Î  Î 
 
 

Î  Î 
 
    Î, y
elegiremos instalar IIS.
Si hemos instalado el IIS  de haber instalado el .NET Framework, deberemos activar el Framework
en el IIS para que funcionen las páginas ASP.NET, para ello abriremos una ventana de comandos y teclearemos lo
siguiente:

A@NA@
A@NàA@N=CCNà"*CN>""ON<1,26,'
A@N=CCNà"*CN>""ON<1,26,'‘ 


Dependiendo de la de versión del .NET Framework el directorio (v1.0.3705) puede variar, en este caso es la
versión 1.0 de .NET.

Si instalamos el .NET Framework después del IIS no tendremos que hacer esto puesto que la instalación de
.NET lo hace automáticamente.

@rear un proyecto AS? 

Es muy importante antes de ejecutar el siguiente paso tener el IIS instalado y corriendo. Lo podemos poner
en marcha desde "Panel de Control" -> "Herramientas Administrativas" -> "Internet Information Services".

Suponiendo que hemos instalado el Visual Studio .NET, lo abrimos y pulsamos sobre el botón de nuevo
proyecto.

´na vez con el |


, seleccionamos "Visual C# Projects" -> ASP.NET Web Application y ponemos el
nombre del proyecto que vamos a crear, en este ejemplo "WebEstiloEjemplos".
Pulsamos el botón "Ok". Si todo va bien se creará el web.


: 4.88/5
 » ^ » 
»  ||
 |&|

|||$ |
´na vez que tenemos generada la aplicación ASP.NET, vamos a crear un Web Form que es la base de
cualquier página web .NET.

Primero crearemos un directorio dentro del proyecto para tener los ejemplos ordenados, el directorio lo
llamaremos "ejem01". Para ello pulsaremos el botón derecho sobre el nombre de proyecto y seleccionaremos Î Î
Î
Î
´na vez creado el directorio "ejem01", pasamos a añadir nuestro primer Web Form. Seleccionamos con el
ratón el directorio "ejem01", pulsamos el botón derecho y seleccionaremos Î Î  Î   
Î, como se
puede ver en la imagen.
Nos aparecerá un cuadro de diálogo en el que se nos preguntará el nombre del web form (página web), en
este ejemplo le daremos "Ejemplo01.aspx".

La estructura de proyecto que nos tiene que quedar ha de ser esta.

)
|  || !
 |
´na vez creado nuestro Web Form, ya podemos añadir controles de servidor, primero hacemos doble clic
sobre el fichero "Ejemplo01.aspx". Nos aparecerá una página en blanco con una cuadrícula en la que añadiremos los
controles.
Para añadir controles tan solo hay que arrastrarlos desde la ventana "Toolbox" a al Web Form en blanco.

Añadiremos un "TextBox", una "Label" y un "Button". Y cambiaremos los nombres (Propiedades -> Atributo
(ID) en negrita) por "txtNombre", "lblNombre" y "btnEnviar", respectivamente. Así mismo cambiaremos la
propiedad "Text" de "lblNombre" por "Su nombre es: ".

Si estamos acostumbrados a manejarnos con HTML es muy posible que queramos retocar un poco la página
añadiendo algún que otro elemento, para ello hacemos clic sobre la vista HTML del documento.

En este caso vamos a añadir un título <H1> y algunos retornos de carro <BR> y obtenemos algo como esto:

Ejemplo01.aspx
PQ +(àL(A+(,1/à(
<"+(*(
="+(,1,1(P
&GAR   ?# =A( 2A && 3," C(
 
 
&
 ,1 
 à+(à"*E 6,(+(KC$
G$(
 à+(AL(+(AG&F
CK?
K(
 à+(J< à"(+(<F*A à"(
 à+(@ àà"*à  '(+(<F" à(
 
&
 ! F G ==GC=CK+(K" !(
 *"+(,1(+(("+("<"(
 1,1 1
 @//+(/C"("+("<"( @// "
 @+(C"("+("<"( "@ @ "
 "
 @+(<"("+("<"(/+(#( @ *"
 !
 

*|| +V,
|
En el apartado anterior hemos visto cómo añadir controles de servidor a un Web Form y el código HTML que
se genera, ahora vamos a ver el código C# que hay "detrás" de esos controles.

Para ello pulsaremos F7 y veremos el código C# que lleva esta página, que es el siguiente:

 !D
 !AàD
 !AD
 !&D
 !&"D
 !D
 !  D
 !?=D
 !?=A"D
 !?=A"D

à,1
S
  "!
  "!à"*",1
  "!
àà,1@ !?= 
S
"à !?=A"/#//C"D
"à !?=A" C"D
"à !?=A"#<"D

"<< F 'à"0 !<
")
S
  "àB"
T

L">"&""à
<"""à<G='<
")
S
 
 AG&KC@à";"!
C>"&"
 
=BA')D
G=')D
T

  "!
 $;"*"&""*!
 à*à"
  "!
"<<=BA')
S
 4+ !<"' F )D
T
L"
T
T

Vamos a explicar un poco la estructura de este fichero de código C#.

Primero vemos que hay una sección "using" en la que se especifican qué espacios de nombre vamos a usar
en este fichero. Los espacios de nombre sirven para agrupar clases, las cuales tiene normalmente funcionalidades
comunes. Así por ejemplo, hemos incluido el espacio de nombres !?=A" para
trabajar con controles web de servidor. Este espacio de nombres (namespace) contiene todas las clases
relacionadas con los controles de servidor.

Seguidamente pasamos a especificar en qué espacio de nombres estará la clase que vamos a definir, todas
las clases deben pertenecer a un espacio de nombres. En este caso indicamos que el espacio de nombres
(namespace) en el que se incluirá nuestra clase es ,1.

A continuación definimos la clase que se asociará con la página web, la clase que manejará todo el
funcionamiento de la página web Ejem01.apsx.
La clase se llama Ejemplo01 y como pertenece al espacio de nombres WebEstiloEjemplos.ejem01, su nombre real
es ,1,1 , si os dais cuenta coincide con el atributo =" de
la página Ejemplo01.aspx que se encuentra en la cabecera de dicha página, de esta forma es cómo se enlaza la
página aspx con la clase de código C# que se ejecutará.

´na vez dentro de la clase, definimos los atributos que contiene, en este caso son 3 correspondientes a los 3
controles de servidor que hemos arrastrado antes desde la barra de herramientas. ´na caja de texto (TextBox)
llamada /C", una etiqueta (Label) llamada C" y un botón (Button) llamado <".

Luego hay un método que se llama F () que se ejecuta cuando se carga la página y que por
ahora está vacío.

Y para finalizar hay una región de código que la genera el diseñador de Visual Studio .NET que de momento
no vamos a entrar a comentar y que es mejor, como advierte, que no toquemos.
)
|!||| |
Ahora vamos a añadir un evento a un control de servidor, dicho evento ejecutará código C# para realizar una
acción en concreto.

Primero vamos a la vista de diseño, en la que podremos ver la caja de texto, la etiqueta y el botón.
Seguidamente añadiremos un evento al botón para que cuando sea pulsado se ejecute una acción en el servidor.
Para añadir el evento de clic al botón pulsaremos doble clic sobre el botón en la ventana de diseño del formulario.
Esto nos llevará a la ventana de edición de código C#, en la que se nos habrá creado un método
<"FAàO') que se habrá asociado con el evento clic del botón.

En este método escribiremos el código que queremos que se ejecute cuando se pulsa clic sobre el botón
"Enviar". Sencillamente vamos a agregar a la etiqueta el valor de la caja de texto.

"<<<"FAàO'à"0 !<
")
S
C"/4+/C"/D
T

Con lo que tendremos el siguiente código:

 !D
 !AàD
 !AD
 !&D
 !&"D
 !D
 !  D
 !?=D
 !?=A"D
 !?=A"D

à,1
S
  "!
  "!à"*",1
  "!
àà,1@ !?= 
S
"à !?=A"/#//C"D
"à !?=A" C"D
"à !?=A"#<"D

"<< F 'à"0 !<
")
S
  "àB"
T

L">"&""à
<"""à<G='<
")
S
 
 AG&KC@à";"!
C>"&"
 
=BA')D
G=')D
T

  "!
 $;"*"&""*!
 à*à"
  "!
"<<=BA')
S
<"AàO4+ !<"'<"FAàO)D
 4+ !<"' F )D

T
L"

"<<<"FAàO'à"0 !<
")
S
C"/4+/C"/D
T
T
T

: 3.19/5
 » ^ » 
»  ||
 |&|

!|| #
|
Así como los controles de servidor pueden tener eventos, también las páginas disparan eventos. El más
habitual de los eventos es el que se produce cuando la página se carga, es el evento "Load". Este evento es
disparado siempre que se carga la página.

En el siguiente ejemplo tenemos una etiqueta que se actualiza cada vez que se carga la página con la hora
actual del servidor.

Ejemplo02.aspx
PQ +(àL(A+(,9/à(
<"+(*(
="+(,9,9(P
&GAR   ?# =A( 2A && 3," C(
 
 
&
 ,9 
 +(KC$
G$(A+(à"*E 6,(
 +(AG&F
CK?
K(A+(AL(
 +(<F*A à"(à+(J< à"(
 +(<F" à(à+(@ àà"*à  '(
 
&
 ! F G ==GC=CK+(K" !(
 *"+(,9(+(("+("<"(
 1,9 1
 @ +("("+("<"( @ 
 *"
 !
 

El correspondiente código C# asociado a la página.

Ejemplo02.aspx.cs
 !D
 !AàD
 !AD
 !&D
 !&"D
 !D
 !  D
 !?=D
 !?=A"D
 !?=A"D

à,9
S
  "!
 à
 A;"*à< 
  "!
àà,9@ !?= 
S
"à !?=A" "D

"<< F 'à"0 !<
")
S
 A ;àà<B;à"I
"/+("à@(4&C " "')D
T

L">"&""à
<"""à<G='<
")
S
 
 AG&KC@à";"!
C>"&"
 
=BA')D
G=')D
T

  "!
 $;"*"&""*!
 à*à"
  "!
"<<=BA')
S
 4+ !<"' F )D

T
L"
T
T
|

|
c  c
||
|
|#
  
||, -||
r| |#
  
||, -||
r| |
||)  ||
r| |
 |, -|#||
r| |
 |, -|##||
|
||| |, -||
r| |*|| |, -||
r| ||| |, -||
r| ||||
r| || ||
|
|
| ||
r| |%  | | ||
r| |.  | ||
r| |
| 
||
r| |
|  ||
 
|| -ë|
Por  !"#$   .

MySQL es un gestor de base de datos sencillo de usar y increíblemente rápido. También es uno de los
motores de base de datos más usados en Internet, la principal razón de esto es que es gratis para aplicaciones no
comerciales.

Las características principales de MySQL son:

r| ||# ||||. ´na base de datos es un conjunto de datos y un gestor de base de


datos es una aplicación capaz de manejar este conjunto de datos de manera eficiente y cómoda.

r| ||||| 
. ´na base de datos relacional es un conjunto de datos que están
almacenados en tablas entre las cuales se establecen unas relaciones para manejar los datos de una
forma eficiente y segura. Para usar y gestionar una base de datos relacional se usa el lenguaje estándar
de programación SQL.

r| |!| . El código fuente de MySQL se puede descargar y está accesible a cualquiera, por otra
parte, usa la licencia GPL para aplicaciones no comerciales.

r| |||||| 
, segura y fácil de usar. Gracias a la colaboración de muchos usuarios,
la base de datos se ha ido mejorando optimizándose en velocidad. Por eso es una de las bases de datos
más usadas en Internet.

r| 
||# |
||  |.||.

El objetivo de este tutorial es mostrar el uso del programa cliente mysql para crear y usar una sencilla base
de datos. mysql (algunas veces referido como "monitor mysql") es un programa interactivo que permite
conectarnos a un servidor MySQL, ejecutar algunas consultas, y ver los resultados. mysql puede ser usado también
en modo batch: es decir, se pueden colocar toda una serie de consultas en un archivo, y posteriormente decirle a
mysql que ejecute dichas consultas.

Este tutorial asume que mysql está instalado en alguna máquina y que disponemos de un servidor MySQL al
cuál podemos conectarnos. Si este no es el caso, tenemos que contactar con nuestro administrador MySQL. (Si
nosotros somos los administradores, es necesario consultar la documentación de MySQL que se refiere a la
instalación y configuración del servidor MySQL).

Para ver la lista de opciones proporcionadas por mysql, lo invocamos con la opción --help:

!;

A continuación se describe el proceso completo de creación y uso de una base de datos en MySQL. Si se está
interesado sólo en el acceso y uso de una base de datos existente, se pueden omitir las secciones que describen
como crear la base de datos y las tablas correspondientes.

Puesto que es imposible que se describan a detalle muchos de los tópicos cubiertos en este artículo, se
recomienda que se consulte el manual de MySQL para obtener más información al respecto.

 || !
 | -ë|
Por  !"#$   .
Para conectarse al servidor, usualmente necesitamos de un nombre de usuario (login) y de una contraseña
(password), y si el servidor al que nos deseamos conectar está en una máquina diferente de la nuestra, también
necesitamos indicar el nombre o la dirección IP de dicho servidor. ´na vez que conocemos estos tres valores,
podemos conectarnos de la siguiente manera:

!;C"& "<"C"&?"

Cuando ejecutamos este comando, se nos pedirá que proporcionemos también la contraseña para el nombre
de usuario que estamos usando.

Si la conexión al servidor MySQL se pudo establecer de manera satisfactoria, recibiremos el mensaje de


bienvenida y estaremos en el prompt de mysql:

!;à
""@777777

à! U "AD"N
R"! U àà''52"<"<"@29231

!D"N*"!Nàà"**"

!;

Este prompt nos indica que mysql está listo para recibir comandos.

Algunas instalaciones permiten que los usuarios se conecten de manera anónima al servidor corriendo en la
máquina local. Si es el caso de nuestra máquina, debemos de ser capaces de conectarnos al servidor invocando a
mysql sin ninguna opción:

!;

Después de que nos hemos conectado de manera satisfactoria, podemos desconectarnos en cualquier
momento al escribir "quit", "exit", o presionar CONTROL+D.

La mayoría de los ejemplos siguientes asume que estamos conectados al servidor, lo cual se indica con el
prompt de mysql.


: 4.67/5
 »  !" » 
 !" » 


|| -ë|



| -ë|
Por  !"#$   .

En este momento debimos de haber podido conectarnos ya al servidor MySQL, aún cuando no hemos
seleccionado alguna base de datos para trabajar. Lo que haremos a continuación es escribir algunos comandos para
irnos familiarizando con el funcionamiento de mysql.

!;  AE$ =GC')0A?$$CF&


D
444
VE$ =GC')VA?$$CF&
V
444
V29231V9,,91,,1V
444
1"',,2à)

!;

Este comando ilustra distintas cosas acerca de mysql:

r| ´n comando normalmente consiste de un sentencia SQL seguida por un punto y coma.


r| Cuando emitimos un comando, mysql lo manda al servidor para que lo ejecute, nos muestra los resultados
y regresa el prompt indicando que está listo para recibir más consultas.
r| mysql muestra los resultados de la consulta como una tabla (filas y columnas). La primera fila contiene
etiquetas para las columnas. Las filas siguientes muestran los resultados de la consulta. Normalmente las
etiquetas de las columnas son los nombres de los campos de las tablas que estamos usando en alguna
consulta. Si lo que estamos recuperando es el valor de una expresión (como en el ejemplo anterior) las
etiquetas en las columnas son la expresión en sí.
r| mysql muestra cuántas filas fueron regresadas y cuanto tiempo tardó en ejecutarse la consulta, lo cual
puede darnos una idea de la eficiencia del servidor, aunque estos valores pueden ser un tanto imprecisos
ya que no se muestra la hora del CP´, y porque pueden verse afectados por otros factores, tales como la
carga del servidor y la velocidad de comunicación en una red.
r| Las palabras clave pueden ser escritas usando mayúsculas y minúsculas.

Las siguientes consultas son equivalentes:

!;  AE$ =GC')0A?$$CF&


D
!;à<"')0à""FD
!;  A<" G')0à""F&
D

Aquí está otra consulta que demuestra como se pueden escribir algunas expresiones matemáticas y
trigonométricas:

!;  A =C' =') 3)0'341)7'D


444
V =C' =') 3)V'341)7'V
444
V,6,61,6V9'V
444

Aunque hasta este momento se han escrito sentencias sencillas de una sóla línea, es posible escribir más de
una sentencia por línea, siempre y cuando estén separadas por punto y coma:

!;  AE$ =GC')D  ACG')D


44
VE$ =GC')V
44
V29231V
44
1"',,1à)

44
VCG')V
44
V9,,91,9813@95@,3V
44
1"',,1à)


: 1.34/5
 »  !" » 
 !" » 


|| -ë|



| -ë||
Por  !"#$   .

´n comando no necesita ser escrito en una sóla línea, así que los comandos que requieran de varias líneas no
son un problema. mysql determinará en dónde finaliza la sentencia cuando encuentre el punto y coma, no cuando
encuentre el fin de línea.

Aquí está un ejemplo que muestra un consulta simple escrita en varias líneas:

!;  A
? $')0
A?$$CF&
D
444
V? $')VA?$$CF&
V
444
VQàV9,,9,-13V
444
1"',,,à)

!;

En este ejemplo debe notarse como cambia el prompt (de mysql> a ->) cuando se escribe una consulta en
varias líneas. Esta es la manera en cómo mysql indica que está esperando a que finalice la consulta. Sin embargo si
deseamos no terminar de escribir la consulta, podemos hacerlo al escribir \c como se muestra en el siguiente
ejemplo:

!;  A
? $')0
Nà
!;

De nuevo, se nos regresa el comando el prompt mysql> que nos indica que mysql está listo para una nueva
consulta.

En la siguiente tabla se muestran cada uno de los prompts que podemos obtener y una breve descripción de
su significado para mysql:

 | 
#

|

mysql> Listo para una nueva consulta.

-> Esperando la línea siguiente de una consulta multi-línea.

'> Esperando la siguiente línea para completar una cadena que comienza con una comilla sencilla ( ' ).

"> Esperando la siguiente línea para completar una cadena que comienza con una comilla doble ( " ).

Los comandos multi-línea comúnmente ocurren por accidente cuando tecleamos ENTER, pero olvidamos
escribir el punto y coma. En este caso mysql se queda esperando para que finalicemos la consulta:

!;  A? $')




Si esto llega a suceder, muy probablemente mysql estará esperando por un punto y coma, de manera que si
escribimos el punto y coma podremos completar la consulta y mysql podrá ejecutarla:
!;  A? $')
D
44
V? $')V
44
V"QàV
44
1"',,,à)

!;

Los prompts '> y "> ocurren durante la escritura de cadenas. En mysql podemos escribir cadenas utilizando
comillas sencillas o comillas dobles (por ejemplo, 'hola' y "hola"), y mysql nos permite escribir cadenas que ocupen
múltiples líneas. De manera que cuando veamos el prompt '> o "> , mysql nos indica que hemos empezado a
escribir una cadena, pero no la hemos finalizado con la comilla correspondiente.

Aunque esto puede suceder si estamos escribiendo una cadena muy grande, es más frecuente que
obtengamos alguno de estos prompts si inadvertidamente escribimos alguna de estas comillas.

Por ejemplo:

!;  A7>$GF$"+( 


C& 2,D
(

Si escribimos esta consulta SELECT y entonces presionamos ENTER para ver el resultado, no sucederá nada.
En lugar de preocuparnos porque la consulta ha tomado mucho tiempo, debemos notar la pista que nos da mysql
cambiando el prompt. Esto nos indica que mysql está esperando que finalicemos la cadena iniciada ("Lupita).

En este caso, ¿qué es lo que debemos hacer? . La cosa más simple es cancelar la consulta. Sin embargo, no
basta con escribir \c, ya que mysql interpreta esto como parte de la cadena que estamos escribiendo. En lugar de
esto, debemos escribir antes la comilla correspondiente y después \c :

!;  A7>$GF$"+( 


C& 2,D
((Nà
!;

El prompt cambiará de nuevo al ya conocido mysql>, indicándonos que mysql está listo para una nueva
consulta.

Es sumamente importante conocer lo que significan los prompts '> y ">, ya que si en algún momento nos
aparece alguno de ellos, todas la líneas que escribamos a continuación serán consideradas como parte de la cadena,
inclusive cuando escribimos Q´IT. Esto puede ser confuso, especialmente si no sabemos que es necesario escribir la
comilla correspondiente para finalizar la cadena, para que podamos escribir después algún otro comando, o
terminar la consulta que deseamos ejecutar.


: 4.5/5
 »  !" » 
 !" » V|| |

* |||||
Por  !"#$   .

Ahora que conocemos como escribir y ejecutar sentencias, es tiempo de acceder a una base de datos.

Supongamos que tenemos diversas mascotas en casa (nuestro pequeño zoológico) y deseamos tener
registros de los datos acerca de ellas. Podemos hacer esto al crear tablas que guarden esta información, para que
posteriormente la consulta de estos datos sea bastante fácil y de manera muy práctica. Esta sección muestra como
crear una base de datos, crear una tabla, incorporar datos en una tabla, y recuperar datos de las tablas de diversas
maneras.

La base de datos "zoológico" será muy simple (deliveradamente), pero no es difícil pensar de situaciones del
mundo real en la cual una base de datos similar puede ser usada.

Primeramente usaremos la sentencia SHOW para ver cuáles son las bases de datos existentes en el servidor
al que estamos conectados:

!; G&

#
 D
44
V&V
44
V!;V
VV
44
9"',,,à)

!;

Es probable que la lista de bases de datos que veamos sea diferente en nuestro caso, pero seguramente las
bases de datos "mysql" y "test" estarán entre ellas. En particular, la base de datos "mysql" es requerida, ya que
ésta tiene la información de los privilegios de los usuarios de MySQL. La base de datos "test" es creada durante la
instalación de MySQL con el propósito de servir como área de trabajo para los usuarios que inician en el aprendizaje
de MySQL.

Se debe anotar también que es posible que no veamos todas las bases de datos si no tenemos el privilegio
SHOW DATABASES. Se recomienda revisar la sección del manual de MySQL dedicada a los comandos GRANT y
REVOKE.

Si la base de datos "test" existe, hay que intentar accesar a ella:


!;? 
&à
!;

Observar que ´SE, al igual que Q´IT, no requieren el uso del punto y coma, aunque si se usa éste, no hay
ningún problema. El comando ´SE es especial también de otra manera: éste debe ser usado en una sóla línea.

Podríamos usar la base de datos "test" (si tenemos acceso a ella) para los ejemplos que vienen a
continuación, pero cualquier cosa que hagamos puede ser eliminada por cualquier otro usuario que tenga acceso a
esta base de datos. Por esta razón, es recomendable que preguntemos al administrador MySQL acerca de la base de
datos que podemos usar. Supongamos que deseamos tener una base de datos llamada "zoologico" (nótese que no
se está acentuando la palabra) a la cual sólo nosotros tengamos acceso, para ello el administrador necesita ejecutar
un comando como el siguiente:

!;K$
C
Bà7GC"?"QA"
=&C=>=&#RA"WD

En donde MiNombre´suario es el nombre de usuario asignado dentro del contexto de MySQL, MiComputadora
es el nombre o la dirección IP de la computadora desde la que nos conectamos al servidor MySQL, y MiContraseña
es la contraseña que se nos ha asignado, igualmente, dentro del ambiente de MySQL exclusivamente. Ambos,
nombre de usuario y contraseña no tienen nada que ver con el nombre de usuario y contraseña manejados por el
sistema operativo (si es el caso).


: 4.6/5
 »  !" » 
 !" » V|| |

 |||||
Por  !"#$   .

Si el administrador creó la base de datos al momento de asignar los permisos, podemos hacer uso de ella. De
otro modo, nosotros debemos crearla:

!;? Bà
$$G$1,3-@?OBà
!;

El mensaje anterior indica que la base de datos no ha sido creada, por lo tanto necesitamos crearla.
!;A$
&

#
BàD
U"!GX01"**à',,,à)

!;? Bà
&à
!;

Bajo el sistema operativo ´nix, los nombres de las bases de datos son sensibles al uso de mayúsculas y
minúsculas (no como las palabras clave de SQL), por lo tanto debemos de tener cuidado de escribir correctamente
el nombre de la base de datos. Esto es cierto también para los nombres de las tablas.

Al crear una base de datos no se selecciona ésta de manera autómatica; debemos hacerlo de manera
explícita, por ello usamos el comando ´SE en el ejemplo anterior.

La base de datos se crea sólo una vez, pero nosotros debemos seleccionarla cada vez que iniciamos una
sesión con mysql. Por ello es recomendable que se indique la base de datos sobre la que vamos a trabajar al
momento de invocar al monitor de MySQL. Por ejemplo:


!;àBà

""@777777
à! U "AD"N
R"! U àà16"<"<"@29228

!D"N*"!Nàà"**"

!;

Observar que "zoologico" no es la contraseña que se está proporcionando desde la línea de comandos, sino el
nombre de la base de datos a la que deseamos acceder. Si deseamos proporcionar la contraseña en la línea de
comandos después de la opción "-p", debemos de hacerlo sin dejar espacios (por ejemplo, -phola123, no como -p
hola123). Sin embargo, escribir nuestra contraseña desde la línea de comandos no es recomendado, ya que es
bastante inseguro.

 ||
Por  !"#$   .

Crear la base de datos es la parte más fácil, pero en este momento la base de datos está vacía, como lo
indica el comando SHOW TABLES:

!; G
#  D
!',,,à)

La parte un tanto complicada es decidir la estructura que debe tener nuestra base de datos: qué tablas se
necesitan y qué columnas estarán en cada tabla.

En principio, necesitamos una tabla que contenga un registro para cada una de nuestras mascotas. Ésta
puede ser una tabla llamada mascotas, y debe contener por lo menos el nombre de cada uno de nuestros
animalitos. Ya que el nombre en sí no es muy interesante, la tabla debe contener alguna otra información. Por
ejemplo, si más de una persona en nuestra familia tiene una mascota, es probable que tengamos que guardar la
información acerca de quien es el dueño de cada mascota. Así mismo, también sería interesante contar con alguna
información más descriptiva tal como la especie, y el sexo de cada mascota.

¿Y que sucede con la edad?. Esto puede ser también de interés, pero no es una buena idea almacenar este
dato en la base de datos. La edad cambia conforme pasa el tiempo, lo cual significa que debemos de actualizar los
registros frecuentemente. En vez de esto, es una mejor idea guardar un valor fijo, tal como la fecha de nacimiento.
Entonces, cuando necesitemos la edad, la podemos calcular como la diferencia entre la fecha actual y la fecha de
nacimiento. MySQL proporciona funciones para hacer operaciones entre fechas, así que no hay ningún problema.

Al almacenar la fecha de nacimiento en lugar de la edad tenemos algunas otras ventajas:

Podemos usar la base de datos para tareas tales como generar recordatorios para cada cumpleaños próximo
de nuestras mascotas. Podemos calcular la edad en relación a otras fechas que la fecha actual. Por ejemplo, si
almacenamos la fecha en que murió nuestra mascota en la base de datos, es fácil calcular que edad tenía nuestro
animalito cuando falleció. Es probable que estemos pensando en otro tipo de información que sería igualmente útil
en la tabla "mascotas", pero para nosotros será suficiente por ahora contar con información de nombre, propietario,
especie, nacimiento y fallecimiento.

´saremos la sentencia CREATE TABLE para indicar como estarán conformados los registros de nuestras
mascotas.

!;A$

# à'
"E
$A
$'9,)0""E
$A
$'9,)0
àE
$A
$'9,)0/A
$'1)0à&
0
*à&
)D
U"!GX0,"**à',,9à)

!;

VARCHAR es una buena elección para los campos nombre, propietario, y especie, ya que los valores que
almacenarán son de longitud variable. No es necesario que la longitud de estas columnas sea la misma, ni tampoco
que sea de 20. Se puede especificar cualquier longitud entre 1 y 255, lo que se considere más adecuado. Si resulta
que la elección de la longitud de los campos que hemos hecho no resultó adecuada, MySQL proporciona una
sentencia ALTER TABLE que nos puede ayudar a solventar este problema.

El campo sexo puede ser representado en una variedad de formas, por ejemplo, "m" y "f", o tal vez
"masculino" y "femenino", aunque resulta más simple la primera opción.

El uso del tipo de dato DATE para los campos nacimiento y fallecimento debe de resultar obvio.

Ahora que hemos creado la tabla, la sentencia SHOW TABLES debe producir algo como:
!; G
#  D
44
VFFBàV
44
VàV
44
1"',,,à)

!;

Para verificar que la tabla fué creada como nosotros esperabamos, usaremos la sentencia DESCRIBE:

!;& A$=#àD
4444444
V>V!VCVX!V&*V/"V
4444444
V"V<"à"'9,)VR VVC? VV
V""V<"à"'9,)VR VVC? VV
VàV<"à"'9,)VR VVC? VV
V/Và"'1)VR VVC? VV
VàVVR VVC? VV
V*àVVR VVC? VV
4444444
5"',,1à)

!;

Podemos hacer uso de la sentencia DESCRIBE en cualquier momento, por ejempo, si olvidamos los nombres
ó el tipo de las columnas en la tabla.


: 4.75/5
 »  !" » 
 !" » V|| |
 # |||||
Por  !"#$   .

Después de haber creado la tabla, ahora podemos incorporar algunos datos en ella, para lo cual haremos uso
de las sentencias INSERT y LOAD DATA.

Supongamos que los registros de nuestras mascotas pueden ser descritos por los datos mostrados en la
siguiente tabla.

 |  

| 
| | 

| $
|

Fluffy Arnoldo Gato f 1999-02-04

Mau Juan Gato m 1998-03-17

Buffy Arnoldo Perro f 1999-05-13

FanFan Benito Perro m 2000-08-27

Kaiser Diana Perro m 1998-08-31 1997-07-29

Chispa Omar Ave f 1998-09-11

Wicho Tomás Ave 2000-02-09

Skim Benito Serpiente m 2001-04-29

Debemos observar que MySQL espera recibir fechas en el formato YYYY-MM-DD, que puede ser diferente a lo
que nosotros estamos acostumbrados.

Ya que estamos iniciando con una tabla vacía, la manera más fácil de poblarla es crear un archivo de texto
que contenga un registro por línea para cada uno de nuestros animalitos para que posteriormente carguemos el
contenido del archivo en la tabla únicamente con una sentencia.

Por tanto, debemos de crear un archivo de texto "mascotas.txt" que contenga un registro por línea con
valores separados por tabuladores, cuidando que el orden de las columnas sea el mismo que utilizamos en la
sentencia CREATE TABLE. Para valores que no conozcamos podemos usar valores nulos (N´LL). Para representar
estos valores en nuestro archivo debemos usar \N.

El archivo mascotas.txt

Para cargar el contenido del archivo en la tabla mascotas, usaremos el siguiente comando:

!; G
&&

 GA
=C>= (à/(=CG
# àD

La sentencia LOAD DATA nos permite especificar cuál es el separador de columnas, y el separador de
registros, por default el tabulador es el separador de columnas (campos), y el salto de línea es el separador de
registros, que en este caso son suficientes para que la sentencia LOAD DATA lea correctamente el archivo
"mascotas.txt".

Si lo que deseamos es añadir un registro a la vez, entonces debemos hacer uso de la sentencia INSERT. En la
manera más simple, debemos proporcionar un valor para cada columna en el orden en el cual fueron listados en la
sentencia CREATE TABLE. Supongamos que nuestra hermana Diana compra un nuevo hamster nombrado Pelusa.
Podemos usar la sentencia INSERT para agregar su registro en nuestra base de datos.

!;=C $=CGà
E
? ' 0&0"0*09,,,,22,0C? )D

Notar que los valores de cadenas y fechas deben estar encerrados entre comillas. También, con la sentencia
INSERT podemos insertar el valor N´LL directamente para representar un valor nulo, un valor que no conocemos.
En este caso no se usa \N como en el caso de la sentencia LOAD DATA.

De este ejemplo, debemos ser capaces de ver que es un poco más la tarea que se tiene que realizar si
inicialmente cargamos los registros con varias sentencias INSERT en lugar de una única sentencia LOAD DATA.

  |
  
||||
Por c 
.

La sentencia SELECT es usada para obtener la información guardada en una tabla. La forma general de esta
sentencia es:

p   =*"à U&&U  Aà 


*à"

Aquí, LaInformaciónQueDeseamos es la información que queremos ver. Esta puede ser una lista de columnas,
o un * para indicar "todas las columnas". DeQueTabla indica el nombre de la tabla de la cual vamos a obtener los
datos. La claúsula /  es opcional. Si está presente, la CondiciónASatisfacer especifica las condiciones que los
registros deben satisfacer para que puedan ser mostrados.

Seleccionando todos los datos

La manera más simple de la sentencia ë ' es cuando se recuperan todos los datos de una tabla:

!;  A7>$GàD
4444444
V"V""VàV/VàV*àV
4444444
V>**!V
"VKV*V1---,9,3VC? V
VVJVKVV1--8,216VC? V
V#**!V
"V ""V*V1---,'12VC? V
V>>V#V ""VV9,,,,896VC? V
VX"V&V ""VV1--8,821V1--6,69-V
VAVG"V
<V*V1--8,-11VC? V
VàVIV
<VC? V9,,,,9,-VC? V
V OV#V "VV9,,1,39-VC? V
V V&V"V*V9,,,,22,VC? V
4444444
-"',,,à)

Esta forma del ë ' es útil si deseamos ver los datos completos de la tabla, por ejemplo, para
asegurarnos de que están todos los registros después de la carga de un archivo.

Por ejemplo, en este caso que estamos tratando, al consultar los registros de la tabla, nos damos cuenta de
que hay un error en el archivo de datos (mascotas.txt): parece que Kaiser ha nacido después de que ha fallecido!.
Al revisar un poco el pedigree de Kaiser encontramos que la fecha correcta de nacimiento es el año 1989, no 1998.

Hay por lo menos un par de maneras de solucionar este problema:

Editar el archivo "mascotas.txt" para corregir el error, eliminar los datos de la tabla mascotas con la sentencia
ë', y cargar los datos nuevamente con el comando ë!|':

!;& >$GàD
!; G
&&

 GA
=C>= (à/(=CG
# àD

Sin embargo, si hacemos esto, debemos ingresar los datos de Pelusa, la mascota de nuestra hermana Diana.

La segunda opción consiste en corregir sólo el registro erróneo con una sentencia *':

!;? &
à à+(1-8-,821(
$"+(X"(D

Como se mostró anteriormente, es muy fácil recuperar los datos de una tabla completa. Pero típicamente no
deseamos hacer esto, particularmente cuando las tablas son demasiado grandes. En vez de ello, estaremos más
interesados en responder preguntas particulares, en cuyo caso debemos especificar algunas restricciones para la
información que deseamos ver.


: 4.83/5
 »  !" » 
 !" » 
 | |


 | #
 | 
 |
Por  !"#$   .
Podemos seleccionar sólo registros particulares de una tabla. Por ejemplo, si deseamos verificar el cambio
que hicimos a la fecha de nacimiento de Kaiser, seleccionamos sólo el registro de Kaiser de la siguiente manera:

!;  A7>$Gà$"+(X"(D
4444444
V"V""VàV/VàV*àV
4444444
VX"V&V ""VV1-8-,821V1--6,69-V
4444444
1"',,,à)

La salida mostrada confirma que el año ha sido corregido de 1998 a 1989.

La comparación de cadenas es normalmente no sensitiva, así que podemos especificar el nombre como
"kaiser", "KAISER", etc. El resultado de la consulta será el mismo.

Podemos además especificar condiciones sobre cualquier columna, no sólo el "nombre". Por ejemplo, si
deseamos conocer qué mascotas nacieron después del 2000, tendríamos que usar la columna "nacimiento":

!;  A7>$Gà$à+(9,,,11(D
4444444
V"V""VàV/VàV*àV
4444444
V>>V#V ""VV9,,,,896VC? V
VàVIV
<VC? V9,,,,9,-VC? V
V OV#V "VV9,,1,39-VC? V
V V&V"V*V9,,,,22,VC? V
4444444
3"',,,à)

Podemos también combinar condiciones, por ejemplo, para localizar a los perros hembras:

!;  A7>$Gà$à+( ""(


C&/+(*(D
4444444
V"V""VàV/VàV*àV
4444444
V#**!V
"V ""V*V1---,'12VC? V
4444444
1"',,,à)

La consulta anterior usa el operador lógico . Hay también un operador lógico ! :

!;  A7>$Gà$à+(
<(G$à+(K(D
4444444
V"V""VàV/VàV*àV
4444444
V>**!V
"VKV*V1---,9,3VC? V
VVJVKVV1--8,216VC? V
VAVG"V
<V*V1--8,-11VC? V
VàVIV
<VC? V9,,,,9,-VC? V
4444444
3"',,,à)

El operador  y el operador ! pueden ser intercambiados. Si hacemos esto, es buena idea usar
paréntesis para indicar como deben ser agrupadas las condiciones:

!;  A7>$Gà$'à+(K(
C&/+(()
G$'à+( ""(
C&/+(*()D
4444444
V"V""VàV/VàV*àV
4444444
VVJVKVV1--8,216VC? V
V#**!V
"V ""V*V1---,'12VC? V
4444444
9"',,,à)


 || 
 |
Por  !"#$   .

Si no deseamos ver los registros completos de una tabla, entonces tenemos que usar los nombres de las
columnas en las que estamos interesados separándolas por coma. Por ejemplo, si deseamos conocer la fecha de
nacimiento de nuestras mascotas, debemos seleccionar la columna "nombre" y "nacimiento":

!;  A"0à>$GàD
444
V"VàV
444
V>**!V1---,9,3V
VV1--8,216V
V#**!V1---,'12V
V>>V9,,,,896V
VX"V1-8-,821V
VAV1--8,-11V
VàV9,,,,9,-V
V OV9,,1,39-V
V V9,,,,22,V
444
-"',,,à)

Para conocer quién tiene alguna mascota, usaremos la siguiente consulta:

!;  A"">$GàD
44
V""V
44
V
"V
VJV
V
"V
V#V
V&V
VG"V
VIV
V#V
V&V
44
-"',,,à)

Sin embargo, debemos notar que la consulta recupera el nombre del propietario de cada mascota, y algunos
de ellos aparecen más de una vez. Para minimizar la salida, agregaremos la palabra clave ' ':

!;  A&= =CA"">$GàD


44
V""V
44
V
"V
VJV
V#V
V&V
VG"V
VIV
44
5"',,2à)

Se puede usar también una claúsula /  para combinar selección de filas con selección de columnas. Por
ejemplo, para obtener la fecha de nacimiento de los perritos y los gatitos, usaremos la siguiente consulta:
!;  A"0à0à>$Gà
$à+(""(G$à+((D
4444
V"VàVàV
4444
V>**!VKV1---,9,3V
VVKV1--8,216V
V#**!V ""V1---,'12V
V>>V ""V9,,,,896V
VX"V ""V1-8-,821V
4444
'"',,,à)


: 4.51/5
 »  !" » 
 !" » 
 | |

!  | #
 |
Por  !"#$   .

Se debe notar en los ejemplos anteriores que las filas regresadas son mostradas sin ningún orden en
particular. Sin embargo, frecuentemente es más fácil examinar la salida de una consulta cuando las filas son
ordenadas en alguna forma útil. Para ordenar los resultados, tenemos que usar una cláusula !  |V.

Aquí aparecen algunos datos ordenados por fecha de nacimiento:

!;  A"0à>$GàG$&$#RàD
444
V"VàV
444
VX"V1-8-,821V
VV1--8,216V
VAV1--8,-11V
V>**!V1---,9,3V
V#**!V1---,'12V
VàV9,,,,9,-V
V V9,,,,22,V
V>>V9,,,,896V
V OV9,,1,39-V
444
-"',,,à)

En las columnas de tipo caracter, el ordenamiento es ejecutado normalmente de forma no sensitiva, es decir,
no hay diferencia entre mayúsculas y minúsculas. Sin embargo, se puede forzar un ordenamiento sensitivo al usar
el operador V .

Para ordenar en orden inverso, debemos agregar la palabra clave  al nombre de la columna que
estamos usando en el ordenamiento:

!;  A"0à>$GàG$&$#R
à& AD
444
V"VàV
444
V OV9,,1,39-V
V>>V9,,,,896V
V V9,,,,22,V
VàV9,,,,9,-V
V#**!V1---,'12V
V>**!V1---,9,3V
VAV1--8,-11V
VV1--8,216V
VX"V1-8-,821V
444
-"',,,à)

Podemos ordenar múltiples columnas. Por ejemplo, para ordenar por tipo de animal, y poner al inicio los
animalitos más pequeños de edad, usaremos la siguiente consulta:

!;  A"0à0à>$Gà
G$&$#Rà0à& AD
4444
V"VàVàV
4444
VàV
<V9,,,,9,-V
VAV
<V1--8,-11V
V>**!VKV1---,9,3V
VVKV1--8,216V
V V"V9,,,,22,V
V>>V ""V9,,,,896V
V#**!V ""V1---,'12V
VX"V ""V1-8-,821V
V OV "V9,,1,39-V
4444
-"',,,à)

Notar que la palabra clave  aplica sólo a la columna nombrada que le precede

Das könnte Ihnen auch gefallen