UNIDAD 5: PROGRAMACION VISUAL Visual Basic BASES DE DATOS

TEMA 6: MS SQL SERVER CREACION TABLAS

La primera tarea con base de datos es construir la propia base de datos y las tablas que contendra.

Crear una base de datos es sencillo en SQL(estudiar tutorial de sql) la instruccion es CREATE DATABASE nombrebasedatos sin embargo el sitio de hospedaje que estamos usando hostbasket ya nos proporciona por default una base de datos llamada master misma que estaremos usando a lo largo del curso ( cuando compren hospedaje ya les permitira crear todas las bases de datos con los nombres que ustedes quieran).

Aun mas se ocupa conocer la string de coneccion o enlace a la base de datos que estaremos usando para enlazar nuestro programa aspx a el servidor de bases de datos, en este caso MS SQL SERVER 2000, recordar que esta string la ocupara el objeto connection de ADO NET que se estudio en el tema anterior.

Solo subirse a tu cuenta en hostbasket con la direccion myaccount.hostbasket.com –> logon –> click en shared hosting –> click en ID –> click en DATABASE y ya se tendra la siguiente pantalla con 2 (dos) strings de coneccion.

image480.jpg

Observar que la primera string de coneccion es para ASP que es el primer y mas viejo modelo de enlace con base de datos que realizo Microsoft.

Es la segunda string de ADO NET que se usara en este curso solo copy y paste a nuestro programa en la parte correspondiente, tal como se muestra en el siguiente programa ejemplo.

Nuestro primer programa creara una tabla llamada tabla1 que contendra clave, nombre, edad y estatura de algunos animalitos, tambien se le cargan algunos renglones de prueba.

Programa:

<%@ Page Language="VB" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
' creando y cargando objetos
Dim CANAL As SqlConnection
Dim ORDEN As SqlCommand
' aqui es donde se usa la string de coneccion
CANAL = New SqlConnection(" Persist Security Info=True;User ID=lsoto;Password=TUPASSWORD;Initial Catalog=lsoto;Data Source=sql13.hostbasket.com")
' seleccionando usando base de datos master
Dim q As String = "use master"
ORDEN = New SqlCommand(q, CANAL)
ORDEN.Connection.Open()
ORDEN.ExecuteNonQuery()
ORDEN.Connection.Close()
' creando tabla mitabla
q = "create table mitabla (clave smallint IDENTITY(1,1) PRIMARY KEY, nombre varchar(30), edad int, estatura float)"
ORDEN = New SqlCommand(q, CANAL)
ORDEN.Connection.Open()
ORDEN.ExecuteNonQuery()
ORDEN.Connection.Close()
' cargando primer renglon de la tabla
q = "insert mitabla values('oso', 12, 0.98)"
ORDEN = New SqlCommand(q, CANAL)
ORDEN.Connection.Open()
ORDEN.ExecuteNonQuery()
ORDEN.Connection.Close()
' cargando segundo renglon de la tabla
q = "insert mitabla values('peach',10, 0.55)"
ORDEN = New SqlCommand(q, CANAL)
ORDEN.Connection.Open()
ORDEN.ExecuteNonQuery()
ORDEN.Connection.Close()
' cargando tercer renglon de la tabla
q = "insert mitabla values('raton',3, 0.12)"
ORDEN = New SqlCommand(q, CANAL)
ORDEN.Connection.Open()
ORDEN.ExecuteNonQuery()
ORDEN.Connection.Close()
' avisando
Label1.Text = "tabla creada y cargada "
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>BASES DE DATOS</title>
</head>
<body>
<form id="form1" runat="server">
&nbsp;<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="CREATE" />
<br />
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</form>
</body>
</html>

NOTAS:

1.- Observar que arriba en la parte de los imports del programa se TIENEN QUE AGREGAR KIS SUGUIENTES IMPORTS:

<%@ Import Namespace=“System” %>

<%@ Import Namespace=“System.Data” %>

<%@ Import Namespace=“System.Data.SqlClient” %>

No olvider a agregar estos imports a tus programas, Data.SqlClient contiene todos los objetos ADO NET (connection, command, etc) que se ocupan y manejan en el programa.

2.- Creamos primero el objeto sqlconnection llamado CANAL y se debe cargar con la string de connecion que copiaron de hostbasket, esta string de coneccion contiene el servidor de ms sql server que estamos accesando e informacion que ocupa dicho servidor tal como login password etc.

3.- Observar que todas las instrucciones que se estan enviando a la base de datos contienen una string q que contiene la instruccion sql ( ya estudiaron su tutorial de sql) y un objeto SqlCommand llamado ORDEN que transporta la instruccion sql a la base de datos.

Recordar que SQLCOMMAND se usara para enviar todas las instrucciones sql y en casos excepcionales SELECT.

Recordar tambien como se indico en el tema pasado SQLCOMMAND puede llevar variables parametros que no se esta usando en este programa ejemplo y ademas debe abrir coneccion (open) executar instruccion (executenonquery) y cerrar (close) la coneccion o enlaze.

4.- La primera instruccion SQL que se usa es USE BASEDATOS, en este programa ejemplo es USE MASTER, como ya se indico la base de datos gratis que nos proporciona hostbasket se llama MASTER y primero se le esta indicando al servidor que estamos trabajando con esta base de datos (USE MASTER).

5.- La siguiente instruccion SQL es CREATE TABLE ( ya estudiaron su tutorial de sql ) los tipos de datos que pueden usar son:

Bigint Integer (whole number) data from -2^63 (-9,223,372,036,854,775,808) through 2^63-1 (9,223,372,036,854,775,807).

Int Integer (whole number) data from -2^31 (-2,147,483,648) through 2^31 - 1 (2,147,483,647).

Smallint Integer data from -2^15 (-32,768) through 2^15 - 1 (32,767).

Tinyint Integer data from 0 through 255.

bit Integer data with either a 1 or 0 value.

decimal Fixed precision and scale numeric data from -10^38 +1 through 10^38 &ndash;1.

Numeric Functionally equivalent to decimal.

money Monetary data values from -2^63 (-922,337,203,685,477.5808) through 2^63 - 1 (+922,337,203,685,477.5807), with accuracy to a ten-thousandth of a monetary unit.

Smallmoney Monetary data values from -214,748.3648 through +214,748.3647, with accuracy to a ten-thousandth of a monetary unit.

Float Floating precision number data with the following valid values: -1.79E + 308 through -2.23E - 308, 0 and 2.23E + 308 through 1.79E + 308.

Real Floating precision number data with the following valid values: -3.40E + 38 through -1.18E - 38, 0 and 1.18E - 38 through 3.40E + 38.

datetime Date and time data from January 1, 1753, through December 31, 9999, with an accuracy of three-hundredths of a second, or 3.33 milliseconds.

smalldatetimeDate and time data from January 1, 1900, through June 6, 2079, with an accuracy of one minute.

Char Fixed-length non-Unicode character data with a maximum length of 8,000 characters.

Varchar Variable-length non-Unicode data with a maximum of 8,000 characters.

Text Variable-length non-Unicode data with a maximum length of 2^31 - 1 (2,147,483,647) characters.

Nchar Fixed-length Unicode data with a maximum length of 4,000 characters.

Nvarchar Variable-length Unicode data with a maximum length of 4,000 characters. sysname is a system-supplied user-defined data type that is functionally equivalent to nvarchar(128) and is used to reference database object names.

Ntext Variable-length Unicode data with a maximum length of 2^30 - 1 (1,073,741,823) characters.

Binary Fixed-length binary data with a maximum length of 8,000 bytes.

Varbinary Variable-length binary data with a maximum length of 8,000 bytes.

Image Variable-length binary data with a maximum length of 2^31 - 1 (2,147,483,647) bytes.

Cursor A reference to a cursor.

sql_variant A data type that stores values of various SQL Server-supported data types, except text, ntext, timestamp, and sql_variant.

Table A special data type used to store a result set for later processing .

Timestamp A database-wide unique number that gets updated every time a row gets updated.

Uniqueidentifier A globally unique identifier (GUID).

5.- (continuacion) Create TABLE incluye PRIMARY KEY, como ya se indico en el tema de tablas, cada tabla debe llevar una identificador unico o campo o llave primaria, ademas create table lleva IDENTITY(1,1) esta instruccion es para que el campo clave sea asignado automaticamente por el servidor de MS SQL SERVER 2000 y la primera clave empieze en el numero 1 (uno) y las siguientes las vaya incrementado de uno en uno , es decir IDENTITY(38,50) el primer campo clave sera el 38 y el siguiente sera el 88.

6.- La ultima instruccion sql a usar es INSERT que se utiliza para cargar un renglo de la tabla con informacion y como se estan cargando tres renglones de la tabla se estan usando tres INSERT's.

Corrida:

image481.jpg

8.- Para ver si realmente la tabla esta creada y cargada con la informacion apropiada, pasamos al siguiente tema de la unidad pero antes:

TAREAS PROGRAMACION WEB DEVELOPER 2005 Visual Basic

1.- Crear y cargar dentro dela base de datos MASTER tres de las tablas que se disenaron en el tema de tablas de esta unidad y por favor ponerles nombres apropiados a las tablas, no poner tabla2, tabla3, etc.

Politica de Privacidad