SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
DIPLOMADO DE INFORMATICA
Taller de SQL

Lupita Betancourt
Instructor:MTI. Noè Càzarez Camargo
Cacn86@hotmail.com
suzma@gmail.com
TALLER DE SQL
LUNES 20/07/09
MySQL: instalación rápida. Interfaces en donde puede ejecutarse: MySQL Browser, MySQL Aminitrador, PHp
Myamin Eidy.
SQLServer: requiere requisitos específicos

Ejercicio: diseñar una b.d para llevar el control de las calificaciones y la asistencia de los estudiantes.
Control Escolar (Ctrl_Esc)
Alumnos
Materias
*Matricula

Amaterno

*
Clave_mat(vc)**
Nombre_mat
(vc)**
Semestre (vc)**

Nombres

*IdEsp (vc)

*GrupoId

*Clv_plantel

Gupo_alu
m
GrupoId

Nombre(vc)

Nombre_gpo

Nombre_plan

Matricula

Descripcion(vc
)

Semestre

Direcciòn_pla
n
Telefono_plan

FechaI

IdEsp (n)**

Especialidad

Especialidad

Grupo

Creditos (n) def
0
Status(b) def 0
Componentevc*
*

Apaterno

Plantel
Calle
Numero
Colonia
CiuadadR
(donde vive)
CP
Telefono
Email
Fnacimiento
(Fn)
Sexo
Status
Fecharegistr
o (FechaR)
Foto
PadreTutor

Turno

Plantel

Ciudad_plan

FechaB
(fecha de
baja)
Motivo
Cal2(n)def 0
Status

Maestros
*IdMaestro
(n) autoinc
Nombre_maes
(vc)
App (VC)
ApmVC)

Calificacione
s
Matricula
**(vc)
Clave_mat
(vc)**
IdMaestro
(n)**
Cal1(n)def 0

Materia_Mae
s
IdMaestro

Matricula

Cal3(n)def 0
CalFin(n) def
0
R(n)def0
*GrupoId def
0
Status

Clave_mat

Clave_mat

FechaB vc

Status (si/no)

F1(faltas) (n)
def 0
F2(n) def 0
F3(n) def (0)

Asistencia

Justificada

1
DIPLOMADO DE INFORMATICA
Taller de SQL

Relaciones
Matricula de la tabla Alumnos (1) con Matricula de la tabla Grupo_Alum (V)
GrupoId de la tabla Grupo (1) con GrupoId de la tabla Grupo_Alum (V)
IdMaestro de la tabla Maestros (1) con IdMaestro de la tabla Maestros (V)

2
DIPLOMADO DE INFORMATICA
Taller de SQL

MySQL
Pasos para la instalación:
1. DBSM: mysql-essential
2. Interfaz: mysql-gui-tool
3. DB dessigner.
4. Driver para que se pueda conectar con mysql: mysql-connector.net
Pasos para ver la interfaz:
a) Inicio
b) Todos los programas
c) MySQL
d) MySql Query Browser

Show databases: muéstrame las bd que tienes:

3
DIPLOMADO DE INFORMATICA
Taller de SQL

SQL SE DIVIDE EN 2 LENGUAJES:
DDL: lenguajes de definición de datos. Instrucciones para definir la estructura de la bd.
 Show
 Use
 Create
 Drop
 Alter
DML: lenguajes de manipulación de datos. Es aquel con el cual se puede visualizar o alternar los datos contenidos
en una tabla.
 Select
 Update
 Delete
 Insert
 Count
 Sum
 Avg
TRABAJAREMOS CON DLL
1ro. En línea de comandos.
1. Crear la BD
Create DataBase nombre_bd;
Create DataBase Ctrl_Esc;

Nota: para ver la BD: show databases para ver la BD creada.
4
DIPLOMADO DE INFORMATICA
Taller de SQL

2. Eliminar BD
Drop DataBase nombreBD;
Drop Databse Ctlr _ESc;

Usar la BD; marca la BD que se esta utilizando
Use nombreBD;

3. Crear Tabla

Engeni: define bajo que estructuras vamos a trabajar. Hay os formas la clásica (MYISAM, desventajas llega más
fuerte, no puedo hacer transacciones, relaciones etc) y la otra es INNODB (permite transacciones y relaciones en
la estructura)
5
DIPLOMADO DE INFORMATICA
Taller de SQL

Create Table nomtabla (nombrecampo1 tipo (longitud),nombre……) Engine __________;
Create table alumnos (Matricula integer , Nombre varchar(45) ) engine innodb;
Show tables: ver que la tabla se creo
2do. Con interfaz
TAREA/EJERCICIO DE REFORZAMIENTO:
Crear la tabla de alumnos con todos los campos.
Crear la tabla

MARTES 21/07/09
 Borrar una tabla
Drop Table <nombre_tabla>
Not null: significa que no se puede dejar campos vacios.
Engine

Type (es lo mismo)

create table Alumnos (Matricula varchar(15) not null, Apaterno varchar(45)not null, Amaterno varchar(45)not n
ull, Nombres varchar(45)not null, Estatus boolean not null default 0) Engine InnoDB;

6
DIPLOMADO DE INFORMATICA
Taller de SQL

 Muestra la estructura de la tabla, cualquiera de las dos formas que se muestran a continuación:
Describe <nombre_tabla>;
Desc <nombre_tabla>;
Funciones para
mostrar la estructura
de la tabla

Estructura de la tabla



PARA CREAR EL CAMPO LLAVE PRIMARIA

PRIMARY KEY
Create table Alumnos (Matricula varchar(15) not null, Apaterno varchar(45)not null, Amaterno varchar(45)not
null, Nombres varchar(45)not null, Estatus boolean not null default 0, Primary Key (Matricula)) Engine InnoDB;

Clave o Llave
Primaria



CAMPO AUTOINCREMENTABLE

Auto_icrement: para que una columna en la tabla sea un dato que se esté generando solo, ejemplo 1..2..3 y se
vaya incrementando solo.
Unsigned: sin signo (no puede haber negativos)
Create table Alumnos (Id integer unsigned not null Auto_increment, Matricula varchar(15) not null, Apaterno
varchar(45)not null, Amaterno varchar(45)not null, Nombres varchar(45)not null, Estatus boolean not null
default 0, Primary Key (Matricula)) Engine InnoDB;
Esto genera un error porque el campo incrementable lo toma como llave primaria y ya tenemos un campo como
llave primaria que es la matricula, entonces hay que hacer lo siguiente.
7
DIPLOMADO DE INFORMATICA
Taller de SQL

Create table Alumnos (Id integer unsigned not null Auto_increment, Matricula varchar(15) not null, Apaterno
varchar(45)not null, Amaterno varchar(45)not null, Nombres varchar(45)not null, Estatus boolean not null default
0, primary key(Id))Engine InnoDB;


CREA LA TABLA SINO EXISTE (NO VER)

Create table if not exist <nombreDB><campo tipo (),….) engine;
Create table if not exists Alumnos (Id integer unsigned not null Auto_increment, Matricula varchar(15) not null,
Apaterno varchar(45)not null, Amaterno varchar(45)not null, Nombres varchar(45)not null, Estatus boolean not
null default 0, primary key(Id))Engine InnoDB;

Ya existe
la tabla
Nota: para hacer referencia a una b.d y una tabla especifica: nombreBD.NombreTabla


CREA LA B.D SINO EXISTE

Create Database if not exist s <nombre_base_de_datos>

MODIFICAR LA ESTRUCTURA DE UNA TABLA SIN BORRAR LA TABLA
ALTER: modifica la tabla
Alter table <nombretabla>
Add column <nombre column> tipo (longitud);
Alter table Alumnos add column Especialidad varchar(45) not null;

8
DIPLOMADO DE INFORMATICA
Taller de SQL

Alter table nombre tabla change nombre campo nombre del campo por el que se quiere cambiar: renombra un
campo.
Alter table Alumnos change ESPECIALIDAD Especialidad integer not null;


BORRAR UNA COLUMNA DE LA TABLA

Alter Table nombre_tabla drop <name>
Ejemplo:
Alter Table Alumnos drop Especialidad;


AGREGA UNA COLUMNA ANTES DE UN CAMPO

Alter table Alumnos add Column Demo varchar (45) not null after Nombres;

9
DIPLOMADO DE INFORMATICA
Taller de SQL

Ejercicio
Alumnos
*Matricula

Tipo de Dato
Vc not null

Apaterno
Amaterno
Nombres

Vc not nul
Vc not nul
Vc not nul

Especialidad
Plantel
Calle, Numero
Telefono

Vc
N not nul
Vc, VC
Vc

Especialidad
*IdEsp (vc)

Tipo de Dato
Grupo
N
autoinc *GrupoId
nnull
Nombre(vc)
Vc not null
NombreGpo
Descripcion(vc) vc
Semestre
Turno

Tipo de Dato
N autoinc not
null
Vc not null
Vc not null
Vc not null

Gupo_alum Tipo de Dato
GrupoId
Vn not null
Matricula
FechaI
FechaB
(fecha de
baja)
Motivo
Estatus

Vc not null
Vc not null
vc

Vc not null
Bool not null

Creación de las cuatro tablas:
Create table Alumnos (Matricula varchar(15) not null, Apaterno varchar(45)not null, Amaterno varchar(45)not null, Nombres varchar(45)not null,
Especialidad varchar (45), Plantel integer not null, Calle varchar (45), Numero varchar(5), Telefono varchar (20) not null, Primary Key (Matricula)) Engine
InnoDB;
Create table Especialidad (IdEsp integer unsigned not null Auto_increment, Nombre varchar (45) not null, Descripcion varchar (45), primary
key(IdEsp))Engine InnoDB;
Create table Grupo(GrupoId integer unsigned not null auto_increment, NombreGpo varchar(20) not null, Semestre varchar (20) not null, Turno varchar (30)
not null)) Engine InnoDB;
Create table Grupo_Alum(GrupoId integer not null, Matricula varchar(15)not null, FechaI varchar(40)not null, FechaB varchar(40), Motivo varchar(45)not
null, Estatus boolean not null default 0)Engine InnoDB;
DIPLOMADO DE INFORMATICA
Taller de SQL

UTLIZANDO LA INTERFAZ DE MySQL
Pasos para crear una base de datos utilizando la interfaz:
1.

Clic derecho a la base de datos y selecciona Create New Schema:

2.

11
DIPLOMADO DE INFORMATICA
Taller de SQL

COMO HACER UN ENLACE ENTRE TABLAS (RELACIONES)
FOREIGN KEY (<NOMBRE_CAMPO>): de que campo. (tabla hija)
REFERENCES <NOMBRE_TABLA> (<NOMBRE>); a que tabla y en qué campo.
Ejemplo:
Create table Alumnos (Matricula varchar (15), primary key (Matricula)) Engine InnoDB;
Create table Grupo_Alum (Matricula varchar(15), FechaI varchar(45) not null, foreign key (Matricula) References
Alumnos (Matricula)) Engine InnoDB;
TAREA: Terminar la tabla con los campos y las validaciones.
MIERCOLES 22/07/09
Padre_alum
Especialidad
IdEsp
Nombre
Descripcion

Calificaciones
Matricula
Clave_mat
IdMaestro
GrupoId

hijo_esp, Padre
Alumnos
Matricula
Apaterno
Amaterno
Nombre
Plantel
IdEsp

hijo
Grupo_Alum
Matricula
Idgrupo
Estatus
FechaB
Motivo

Materias
Clave_mat
Nombre_mat

Padre
Grupos
Idgrupo
Nombre
Periodo
Semestre

Maestros
IdMaestro

Relaciones
Entre
tablas

Nota: Los de color azul son los padres.

Actualización en Cascada: si borras en el padre automáticamente se borra en el hijo. Es decir sin que lo ejecute
solito se borra.
Set Null: nada más borra lo que se le indica no borra todo el registro. Es inusual porque se pierde la integridad
referencial.
No Action: si tú borras aquí, marca un error porque en otra tabla se está utilizando, o funciona al revés tienes que
borrar en el hijo primero y después en el padre, OJO tienes que borrar todas las ligas existentes. Recomendada.
Restrict: similar a la anterior. Recomendada.
Set Defaull: es similar a actualización en cascada, borras en el padre y puedes poner el valor que tú quieras.

Ejemplo de relaciones:
12
DIPLOMADO DE INFORMATICA
Taller de SQL

RELACION TABLA GRUPO_ALUM CON ALUMNOS Y GRUPOS
Create table grupo_alum (Matricula varchar(45)not null, GrupoId integer unsigned not null, Estatus boolean
not null Default 0, FechaB varchar(45), FechaI varchar(45) not null, Motivo varchar(45), Index (Matricula),
foreign Key (Matricula) References Alumnos (Matricula) on Delete Restrict on update Restrict, Index (GrupoId),
foreign Key (GrupoId) References grupo (GrupoId) on delete Restrict on update Restrict) engine InnoDB;
1. Para crear la tabla anterior primero hay que borrar la tabla grupo_alum.
2. Posteriormente crear la tabla anterior.
Borrar la tabla grupo_alum
3. Y ya está creada la referencia.

Mostrar la
tabla
grupo_alum

Crear la tabla
grupo_alum
con las
relaciones

4. Borrar la tabla de alumnos, observa que pasa…
5. No se puede borrar por la integridad que existe.

Ahora crear la relación con la tabla especialidad
RELACION ESPECIALIDAD CON ALUMNOS
1. Modificar el campo especialidad de la tabla Alumnos:
Alter table alumnos change Especialidad IdEsp integer unsigned not null;
2. Crear la tabla alumnos sin borrar la tabla de alumnos anterior, para crear la relación:
Alter table alumnos
Add index(IdEsp),
Add constraint “nombre_relación “ foreign key (IdEsp)
References especialidad(IdEsp) on
Update restrict on delete restrict;
Es lo mismo que escribirlo en una sola línea:
Alter table alumnos Add index(IdEsp), Add constraint EspAlum foreign key (IdEsp)References especialidad(IdEsp)
on Update restrict on delete restrict;
RELACIÒN DE CALIFICACIONES CON ALUMNOS, CON MATERIA Y CON MAESTRO UTILIZANDO LA INTERFAZ
1. Clic derecho a la tabla que desea crear las relaciones y seleccionar Edit Table:

13
DIPLOMADO DE INFORMATICA
Taller de SQL

2. Crear los índices:
a) Selecciona el campo al cual deseas crear el índice

b) Selecciona el signo màs para que lo agregue

c) Y ya agregado al índice se le pone la llavecita y listo, así a ser con cada uno de los índices que se
necesitaran para crear la relación.
3. Crear las relaciones:
a) Clic a la pestaña de Foreign Keys
b) Clic al signo de màs para agregar la relación

c) Aparece el siguiente cuadro en el cual se escribe el nombre de la relación

14
DIPLOMADO DE INFORMATICA
Taller de SQL

d) Después se selecciona con que tabla se crea la relación y aparecerá la llave principal y debe coincidir con
la de la tabla actual, tal como se muestra a continuación
Selecciona la tabla

Clave de la tabla actual
(en la que se está
trabajando)

Es la clave de la
tabla
seleccionada

ENTRAR A MYSQL COMO ADMINISTRADOR
Esto es con el objetivo de administrar nuestra base de datos para poder ponerle “ “ para que protegernos de
virus.

Vamos a crear un usuario para solamente nosotros tener los privilegios de la BD

15
DIPLOMADO DE INFORMATICA
Taller de SQL

En esta ventana establezco que es lo que puede hacer el usuario:
1. Selecciono ctrl_esc y le digo de las opciones del lado derecho que es lo que puede hacer

2. Clic en el botón Apply changes
3. Crear respaldos a la BD

a) Backup
b) New proyect
16
DIPLOMADO DE INFORMATICA
Taller de SQL

c) Selecciona la BD que deseas agregar
d) Clic a la flechita para pasarla al otro lado
(Puedo hacer respaldos de todas las que quiera)
e) Execute

f) Se guarda seleccionando la ubicación deseada
g) Para abrirlo se debe de abrir con Wordpad
PARA RECUPERAR LA BASE DE DATOS
1.
2.
3.
4.
5.
6.

IR AL ADMINISTRADOR
SELECCIONAR
RESTORE
BUSCAR EL ARCHIVO
INICIAR RECUPERACIÓN
Y LISTO YA ESTA DE NUEVO LA B.D TAL COMO SE DEJO LA ULTIMA VEZ QUE SE GUARDO EL RESPALDO

17
DIPLOMADO DE INFORMATICA
Taller de SQL

MANIPULACIÓN DE DATOS (DML)
COMO GUARDAR REGISTROS Y SUS DIFERENTES USOS
Insert into <nombre_tabla> (campo1, campo2….) Values (valor1, valor2);
NOTAS:
* Ver copias
* # Campos = # valores
* Mismo orden en campos = orden de los valores
Ejemplo:
Insert into materias(Clave_mat, Nombre_mat, Semestre, IdEsp, Creditos, Componente)
Values ('01', 'sql', '4to', 1, '10', 'Profesional');
VER CONTENIDO DE UNA TABLA
Select * from nombre_tabla;
Select * from materias;
JUEVES 23/07/09
El maestro nos dio la siguiente b.d. y nos la paso en archivo para su restauración y utilización el archivo se llama
punto_venta y se reestructura en MYSQL administrador.
B.D. PUNTO DE VENTA
PRODUCTOS
productoID
proveedorID
stock

ESTADO
estadoID
nombre

PROVEEDODORES
proveedorID
estadoID
ciudadID

CIUDAD
ciudadID
estadoID

CLIENTES
clientsID
estadoID
ciudadID

VENTA
ventaID
clientsID

ALMACEN
almacenID
productoID

DET_VENTA
ventaID
productoID

1.

Registrar el estado (1)
insert into estados (NOMBRE) values ('Sinaloa');
2.
Registrar la ciudad (la ciudad depende del estado) (1)
insert into ciudades (NOMBRE, ESTADOID) values ('Escuinapa',1);
3.
Registrar proveedor (1)
insert into proveedores (NOMBRE, CIUDADID, ESTADOID, TELEFONO) values ('Ley',1,1,6621-15-08-20);
4.
Registrar productos (3)
18
DIPLOMADO DE INFORMATICA
Taller de SQL

insert into productos (NOMBRE, DESCRIPCION, PRECIO, COSTO, PROVEEDORID) values ('Jabòn','de tocador',10,
6,1);
insert into productos (NOMBRE, DESCRIPCION, PRECIO, COSTO, PROVEEDORID) values ('Shampoo','kids',50, 35,1);
insert into productos (NOMBRE, DESCRIPCION, PRECIO, COSTO, PROVEEDORID) values ('Crema','manos',45, 30,1);
PARA NO REPETIR LINEA POR LINEA:
ESTA ES OTRA FORMA DE HACER LO MISMO Y NO REPETIR (INSERCIÓN MULTIPLE)
INSERT INTO <NOM_TABLA> (CAMPO1, CAMPO2) VALUES (VALOR1, VALOR2..),(VALOR .1, VALOR2.2 …),
(VALOR1.1.1, VALOR2.2.2 ….);
5.

Registrar clientes (1)
insert into clientes (NOMBRE, APATERNO, AMATERNO, RFC, CALLE, NUMERO, ESTADOID, CIUDADID)
values ('Lupita','Sandoval','Ramos','SARL210881','Guamuchil','5a',1 ,1 );
6.
Registrar la venta (1)
insert into ventas (FECHA, MONTO, CLIENTSID) values ('23/07/09', 500.30, 1);
7.
Registrar detalle de venta (1)
insert into det_venta (VENTAID, PRODUCTOSID, CANTIDAD, PRECIO, DESCUENTO) values (1,1, 5,10, .25),
(1,2, 2,50, 0),
(1,3, 3,45, 0);
7.1. Registrar movimiento de almacén (1)
insert into almacen (PRODUCTOSID, FECHAMOV, TIPOMOV) values ( 1, '23/07/09','SALIDA'),
(2, '24/07/09','SALIDA'),
(3, '24/07/09','SALIDA');
Nota: el paso 7 y el 7.1 se repite 3 veces porque agregamos tres productos.
OTRA FORMA DE HACER LO ANTERIOR ES EN EL AMBIENTE VISUAL
1.
2.
3.
4.

SE LE DA DOBLE CLIC A LA TABLA
SE ABRE LOS CAMPOS PARA SER LLENADOS
CLC EN EDIT Y EMPEZAR A LLENAR LOS CAMPOS O COLUMNAS
UNA VEZ REGISTRADOS LOS DATOS, CLIC EN APPLY CHANGES

2
1

3

4

19
DIPLOMADO DE INFORMATICA
Taller de SQL

Falta
Select * from clientes order by Apaterno desc (los ordena descendentemente)
VIERNES 24/07/09

NOS PASO UNA CARPETA QUE SE LLAMA CECYTES_SQL
Nota es utilizando la estructura: INNODB
1. Transacción (transaction). Intercambio de datos o de objetos.
De la aplicación manda la orden al servidor y se ejecuta la b.d y regresa a la aplicación.
Instrucción y ejemplo:
Start Transaction;


Insert into productos (nombre, precio, costo, proveedorID)
values (“XXXX”, 10,5, 1),
(“yyy”, 15, 10, I),
(“zzzz”, 20, 10, 1);



Delete from productos;



RollBack;

Lo correcto de la sentencia anterior seria poner la condición porque si no
estaríamos borrando todo el contenido de la tabla.

Es como ctrl+Z, y lo que hace esta instrucción es que no ejecutaría la
instrucción anterior pero tampoco el insertar. (No hagas nada de lo que te
dije antes). Si quisiéramos que si ejecutara la instrucción pondríamos la
instrucción comit QUE ES EJECUTAR LAS TRANSACCIONES.
1. STAR TRANSACTION
CTRL + ENTER
2. INSERTO INTRO, CTRL
+ENTER
3. ROLLBACK CTRL+ENTER
4. SELECTE, CTRL + ENTER
1. STAR TRANSACTION
CTRL + ENTER
2. INSERTO INTRO, CTRL
+ENTER
3. COMMIT CTRL+ENTER
4. SELECT, CTRL + ENTER

20
DIPLOMADO DE INFORMATICA
Taller de SQL

BORRADO
FORMATO:
Delete from <nom_tabla> where campo = valor;
NOTA: NO SE DEBEN DE DEFINIR COLUMNAS (no va el * antes del from).
Si se ejecuta el contenido de la tabla sin la condición borra todo el contenido de la tabla. Se recomiendo en vez
del delete un borrado lógico.
Limit: borra los primeros seis renglones que encuentre.
Delete from productos where nombre like ‘A%’ Limit 2

borra los primeros dos registros que empiecen con A

Delete from productos where productosid = 3 or productid = 8

borra el producto que tenga el 3 o el 8

Delete from Det_Venta, productos where Det_venta.productoID = productos.productosID
Borra todos los productos que se hayan vendido
Delete from Det_venta, venta where det.ventaID = Det_venta.ventaID and Venta.Fecha = ‘ ‘
Borra todas las ventas y su detalle de venta que se hayan vendido en la fecha establecida

Abrimos la carpeta que nos pasó el maestro de CECYTES_SQL….

1. Abrimos el archivo CECYTES_SQL y se abre visual studio 5.0

2.

3.

Abrir frmBusqueda.vb

Se abre esta ventana

21
DIPLOMADO DE INFORMATICA
Taller de SQL

4.

Observar el código

El objetivo de esto es conectarnos a la base de datos punto_venta y que nos permita efectuar
búsquedas y consultas de selección (select), ejecutar sql (update, insert, delete)
5. Seleccionamos la primera pestaña de búsqueda para iniciar la programación.
a) Selccionamos la ventana
b) Nos vamos a las propiedades
c) Clic al icono del rayo
d) En el evento load dar doble clic y nos vamos a la ventana de código

22
DIPLOMADO DE INFORMATICA
Taller de SQL

6. Ligar la base de datos con el gridDatos

1. Clic y clic
en edit
colums

2. selecciona

3. cambia su nombre como esta en la b.d.

7. Repite los registros, para que no lo haga hay que cambiar la propiedad del GRID ___________
o poner las columnas

8. Resultado al momento de correr la aplicación

23
DIPLOMADO DE INFORMATICA
Taller de SQL

9. Programar el botón buscar, doble clic al botón, nos vamos a la ventana de código y tecleamos el
código. Buscara por el código del producto

SI QUEREMOS BUSCAR POR NOMBRE Y ORDENAR SERIA
Dim sql As String = "Select * from productos where NOMBRE='" & txtValor.Text &
"'order by NOMBRE"
AHORA SI QUEREMOS QUE EMPIECE CON LA LETRAS SERIA, ESTO SERIA LO IDEAL
Dim sql As String = "Select * from productos where NOMBRE LIKE'%" & txtValor.Text &
"%'"
INVESTIGAR SQL INYECTION
BOTON GUARDAR
1. DOBLE CLIC AL BOTON
2. CODIFICAR
3. Private Sub btnGuardarA_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnGuardarA.Click
Dim sql As String = "insert into productos (NOMBRE, DESCRIPCION, PRECIO,
COSTO, PROVEEDORID) values ('" & txtNombre.Text & " ','" &
txtDescripcion.Text & "'," & txtPrecio.Text & "," & txtCosto.Text & ",1)"
Dim obj As BaseDatos
obj = New BaseDatos
If obj.EjecutarSql(sql) Then
MessageBox.Show("Registro guardado")
Else
Me.txtMsgError.Text = obj.getMsgError
End If
End Sub

24

Weitere ähnliche Inhalte

Ähnlich wie Taller de sql

Trabajando con sql (parte 1)
Trabajando con sql (parte 1)Trabajando con sql (parte 1)
Trabajando con sql (parte 1)Juan Vade
 
Primeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD MysqlPrimeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD MysqlEmerson Garay
 
Proyecto De Aplicacion A La Bases Datos
Proyecto De Aplicacion A La Bases DatosProyecto De Aplicacion A La Bases Datos
Proyecto De Aplicacion A La Bases DatosAndreitap de Granda
 
MySQL - SQL.pdf
MySQL - SQL.pdfMySQL - SQL.pdf
MySQL - SQL.pdfkabern
 
MySQL.pdf
MySQL.pdfMySQL.pdf
MySQL.pdfkabern
 
Insertar editarborrar registros sql_server_tutorial 2015
Insertar editarborrar registros sql_server_tutorial 2015Insertar editarborrar registros sql_server_tutorial 2015
Insertar editarborrar registros sql_server_tutorial 2015Jomar Burgos Palacios
 
ManualPracticoSQL.pdf
ManualPracticoSQL.pdfManualPracticoSQL.pdf
ManualPracticoSQL.pdfJenny29068
 
SQL-DDL
SQL-DDLSQL-DDL
SQL-DDLbdatos
 
Creación de base de datos.
Creación de base de datos.Creación de base de datos.
Creación de base de datos.Juan Anaya
 
Sql plus temario
Sql plus temarioSql plus temario
Sql plus temarioHugo Mdz
 
Guía de laboratorio n° 4 bases de datos
Guía de laboratorio n° 4   bases de datosGuía de laboratorio n° 4   bases de datos
Guía de laboratorio n° 4 bases de datosIsaac Guillen
 
Material Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de DatosMaterial Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de Datosliras loca
 
Tm13 introduccion al_sql
Tm13 introduccion al_sqlTm13 introduccion al_sql
Tm13 introduccion al_sqlJulio Pari
 
Unidad DidáCtica V Sql Interactivo
Unidad DidáCtica V Sql InteractivoUnidad DidáCtica V Sql Interactivo
Unidad DidáCtica V Sql InteractivoConfesorAD
 

Ähnlich wie Taller de sql (20)

Trabajando con sql (parte 1)
Trabajando con sql (parte 1)Trabajando con sql (parte 1)
Trabajando con sql (parte 1)
 
Primeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD MysqlPrimeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD Mysql
 
Bdii 09 ddl_new
Bdii 09 ddl_newBdii 09 ddl_new
Bdii 09 ddl_new
 
Proyecto De Aplicacion A La Bases Datos
Proyecto De Aplicacion A La Bases DatosProyecto De Aplicacion A La Bases Datos
Proyecto De Aplicacion A La Bases Datos
 
MySQL - SQL.pdf
MySQL - SQL.pdfMySQL - SQL.pdf
MySQL - SQL.pdf
 
MySQL.pdf
MySQL.pdfMySQL.pdf
MySQL.pdf
 
1 lab-2 -tablas-y-restricciones
1 lab-2 -tablas-y-restricciones1 lab-2 -tablas-y-restricciones
1 lab-2 -tablas-y-restricciones
 
Practicassql
PracticassqlPracticassql
Practicassql
 
Insertar editarborrar registros sql_server_tutorial 2015
Insertar editarborrar registros sql_server_tutorial 2015Insertar editarborrar registros sql_server_tutorial 2015
Insertar editarborrar registros sql_server_tutorial 2015
 
Taller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DMLTaller de Base de Datos - Unidad 3 lenguage DML
Taller de Base de Datos - Unidad 3 lenguage DML
 
ManualPracticoSQL.pdf
ManualPracticoSQL.pdfManualPracticoSQL.pdf
ManualPracticoSQL.pdf
 
Manual lenguaje sql 2
Manual lenguaje sql 2Manual lenguaje sql 2
Manual lenguaje sql 2
 
SQL-DDL
SQL-DDLSQL-DDL
SQL-DDL
 
Creación de base de datos.
Creación de base de datos.Creación de base de datos.
Creación de base de datos.
 
Sql plus temario
Sql plus temarioSql plus temario
Sql plus temario
 
Guía de laboratorio n° 4 bases de datos
Guía de laboratorio n° 4   bases de datosGuía de laboratorio n° 4   bases de datos
Guía de laboratorio n° 4 bases de datos
 
Material Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de DatosMaterial Clase BDD: Diseño de una Base de Datos
Material Clase BDD: Diseño de una Base de Datos
 
Tm13 introduccion al_sql
Tm13 introduccion al_sqlTm13 introduccion al_sql
Tm13 introduccion al_sql
 
Unidad DidáCtica V Sql Interactivo
Unidad DidáCtica V Sql InteractivoUnidad DidáCtica V Sql Interactivo
Unidad DidáCtica V Sql Interactivo
 
Fundamentos sql server2
Fundamentos sql server2Fundamentos sql server2
Fundamentos sql server2
 

Kürzlich hochgeladen

Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxdkmeza
 

Kürzlich hochgeladen (20)

Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptx
 

Taller de sql

  • 1. DIPLOMADO DE INFORMATICA Taller de SQL Lupita Betancourt Instructor:MTI. Noè Càzarez Camargo Cacn86@hotmail.com suzma@gmail.com TALLER DE SQL LUNES 20/07/09 MySQL: instalación rápida. Interfaces en donde puede ejecutarse: MySQL Browser, MySQL Aminitrador, PHp Myamin Eidy. SQLServer: requiere requisitos específicos Ejercicio: diseñar una b.d para llevar el control de las calificaciones y la asistencia de los estudiantes. Control Escolar (Ctrl_Esc) Alumnos Materias *Matricula Amaterno * Clave_mat(vc)** Nombre_mat (vc)** Semestre (vc)** Nombres *IdEsp (vc) *GrupoId *Clv_plantel Gupo_alu m GrupoId Nombre(vc) Nombre_gpo Nombre_plan Matricula Descripcion(vc ) Semestre Direcciòn_pla n Telefono_plan FechaI IdEsp (n)** Especialidad Especialidad Grupo Creditos (n) def 0 Status(b) def 0 Componentevc* * Apaterno Plantel Calle Numero Colonia CiuadadR (donde vive) CP Telefono Email Fnacimiento (Fn) Sexo Status Fecharegistr o (FechaR) Foto PadreTutor Turno Plantel Ciudad_plan FechaB (fecha de baja) Motivo Cal2(n)def 0 Status Maestros *IdMaestro (n) autoinc Nombre_maes (vc) App (VC) ApmVC) Calificacione s Matricula **(vc) Clave_mat (vc)** IdMaestro (n)** Cal1(n)def 0 Materia_Mae s IdMaestro Matricula Cal3(n)def 0 CalFin(n) def 0 R(n)def0 *GrupoId def 0 Status Clave_mat Clave_mat FechaB vc Status (si/no) F1(faltas) (n) def 0 F2(n) def 0 F3(n) def (0) Asistencia Justificada 1
  • 2. DIPLOMADO DE INFORMATICA Taller de SQL Relaciones Matricula de la tabla Alumnos (1) con Matricula de la tabla Grupo_Alum (V) GrupoId de la tabla Grupo (1) con GrupoId de la tabla Grupo_Alum (V) IdMaestro de la tabla Maestros (1) con IdMaestro de la tabla Maestros (V) 2
  • 3. DIPLOMADO DE INFORMATICA Taller de SQL MySQL Pasos para la instalación: 1. DBSM: mysql-essential 2. Interfaz: mysql-gui-tool 3. DB dessigner. 4. Driver para que se pueda conectar con mysql: mysql-connector.net Pasos para ver la interfaz: a) Inicio b) Todos los programas c) MySQL d) MySql Query Browser Show databases: muéstrame las bd que tienes: 3
  • 4. DIPLOMADO DE INFORMATICA Taller de SQL SQL SE DIVIDE EN 2 LENGUAJES: DDL: lenguajes de definición de datos. Instrucciones para definir la estructura de la bd.  Show  Use  Create  Drop  Alter DML: lenguajes de manipulación de datos. Es aquel con el cual se puede visualizar o alternar los datos contenidos en una tabla.  Select  Update  Delete  Insert  Count  Sum  Avg TRABAJAREMOS CON DLL 1ro. En línea de comandos. 1. Crear la BD Create DataBase nombre_bd; Create DataBase Ctrl_Esc; Nota: para ver la BD: show databases para ver la BD creada. 4
  • 5. DIPLOMADO DE INFORMATICA Taller de SQL 2. Eliminar BD Drop DataBase nombreBD; Drop Databse Ctlr _ESc; Usar la BD; marca la BD que se esta utilizando Use nombreBD; 3. Crear Tabla Engeni: define bajo que estructuras vamos a trabajar. Hay os formas la clásica (MYISAM, desventajas llega más fuerte, no puedo hacer transacciones, relaciones etc) y la otra es INNODB (permite transacciones y relaciones en la estructura) 5
  • 6. DIPLOMADO DE INFORMATICA Taller de SQL Create Table nomtabla (nombrecampo1 tipo (longitud),nombre……) Engine __________; Create table alumnos (Matricula integer , Nombre varchar(45) ) engine innodb; Show tables: ver que la tabla se creo 2do. Con interfaz TAREA/EJERCICIO DE REFORZAMIENTO: Crear la tabla de alumnos con todos los campos. Crear la tabla MARTES 21/07/09  Borrar una tabla Drop Table <nombre_tabla> Not null: significa que no se puede dejar campos vacios. Engine Type (es lo mismo) create table Alumnos (Matricula varchar(15) not null, Apaterno varchar(45)not null, Amaterno varchar(45)not n ull, Nombres varchar(45)not null, Estatus boolean not null default 0) Engine InnoDB; 6
  • 7. DIPLOMADO DE INFORMATICA Taller de SQL  Muestra la estructura de la tabla, cualquiera de las dos formas que se muestran a continuación: Describe <nombre_tabla>; Desc <nombre_tabla>; Funciones para mostrar la estructura de la tabla Estructura de la tabla  PARA CREAR EL CAMPO LLAVE PRIMARIA PRIMARY KEY Create table Alumnos (Matricula varchar(15) not null, Apaterno varchar(45)not null, Amaterno varchar(45)not null, Nombres varchar(45)not null, Estatus boolean not null default 0, Primary Key (Matricula)) Engine InnoDB; Clave o Llave Primaria  CAMPO AUTOINCREMENTABLE Auto_icrement: para que una columna en la tabla sea un dato que se esté generando solo, ejemplo 1..2..3 y se vaya incrementando solo. Unsigned: sin signo (no puede haber negativos) Create table Alumnos (Id integer unsigned not null Auto_increment, Matricula varchar(15) not null, Apaterno varchar(45)not null, Amaterno varchar(45)not null, Nombres varchar(45)not null, Estatus boolean not null default 0, Primary Key (Matricula)) Engine InnoDB; Esto genera un error porque el campo incrementable lo toma como llave primaria y ya tenemos un campo como llave primaria que es la matricula, entonces hay que hacer lo siguiente. 7
  • 8. DIPLOMADO DE INFORMATICA Taller de SQL Create table Alumnos (Id integer unsigned not null Auto_increment, Matricula varchar(15) not null, Apaterno varchar(45)not null, Amaterno varchar(45)not null, Nombres varchar(45)not null, Estatus boolean not null default 0, primary key(Id))Engine InnoDB;  CREA LA TABLA SINO EXISTE (NO VER) Create table if not exist <nombreDB><campo tipo (),….) engine; Create table if not exists Alumnos (Id integer unsigned not null Auto_increment, Matricula varchar(15) not null, Apaterno varchar(45)not null, Amaterno varchar(45)not null, Nombres varchar(45)not null, Estatus boolean not null default 0, primary key(Id))Engine InnoDB; Ya existe la tabla Nota: para hacer referencia a una b.d y una tabla especifica: nombreBD.NombreTabla  CREA LA B.D SINO EXISTE Create Database if not exist s <nombre_base_de_datos> MODIFICAR LA ESTRUCTURA DE UNA TABLA SIN BORRAR LA TABLA ALTER: modifica la tabla Alter table <nombretabla> Add column <nombre column> tipo (longitud); Alter table Alumnos add column Especialidad varchar(45) not null; 8
  • 9. DIPLOMADO DE INFORMATICA Taller de SQL Alter table nombre tabla change nombre campo nombre del campo por el que se quiere cambiar: renombra un campo. Alter table Alumnos change ESPECIALIDAD Especialidad integer not null;  BORRAR UNA COLUMNA DE LA TABLA Alter Table nombre_tabla drop <name> Ejemplo: Alter Table Alumnos drop Especialidad;  AGREGA UNA COLUMNA ANTES DE UN CAMPO Alter table Alumnos add Column Demo varchar (45) not null after Nombres; 9
  • 10. DIPLOMADO DE INFORMATICA Taller de SQL Ejercicio Alumnos *Matricula Tipo de Dato Vc not null Apaterno Amaterno Nombres Vc not nul Vc not nul Vc not nul Especialidad Plantel Calle, Numero Telefono Vc N not nul Vc, VC Vc Especialidad *IdEsp (vc) Tipo de Dato Grupo N autoinc *GrupoId nnull Nombre(vc) Vc not null NombreGpo Descripcion(vc) vc Semestre Turno Tipo de Dato N autoinc not null Vc not null Vc not null Vc not null Gupo_alum Tipo de Dato GrupoId Vn not null Matricula FechaI FechaB (fecha de baja) Motivo Estatus Vc not null Vc not null vc Vc not null Bool not null Creación de las cuatro tablas: Create table Alumnos (Matricula varchar(15) not null, Apaterno varchar(45)not null, Amaterno varchar(45)not null, Nombres varchar(45)not null, Especialidad varchar (45), Plantel integer not null, Calle varchar (45), Numero varchar(5), Telefono varchar (20) not null, Primary Key (Matricula)) Engine InnoDB; Create table Especialidad (IdEsp integer unsigned not null Auto_increment, Nombre varchar (45) not null, Descripcion varchar (45), primary key(IdEsp))Engine InnoDB; Create table Grupo(GrupoId integer unsigned not null auto_increment, NombreGpo varchar(20) not null, Semestre varchar (20) not null, Turno varchar (30) not null)) Engine InnoDB; Create table Grupo_Alum(GrupoId integer not null, Matricula varchar(15)not null, FechaI varchar(40)not null, FechaB varchar(40), Motivo varchar(45)not null, Estatus boolean not null default 0)Engine InnoDB;
  • 11. DIPLOMADO DE INFORMATICA Taller de SQL UTLIZANDO LA INTERFAZ DE MySQL Pasos para crear una base de datos utilizando la interfaz: 1. Clic derecho a la base de datos y selecciona Create New Schema: 2. 11
  • 12. DIPLOMADO DE INFORMATICA Taller de SQL COMO HACER UN ENLACE ENTRE TABLAS (RELACIONES) FOREIGN KEY (<NOMBRE_CAMPO>): de que campo. (tabla hija) REFERENCES <NOMBRE_TABLA> (<NOMBRE>); a que tabla y en qué campo. Ejemplo: Create table Alumnos (Matricula varchar (15), primary key (Matricula)) Engine InnoDB; Create table Grupo_Alum (Matricula varchar(15), FechaI varchar(45) not null, foreign key (Matricula) References Alumnos (Matricula)) Engine InnoDB; TAREA: Terminar la tabla con los campos y las validaciones. MIERCOLES 22/07/09 Padre_alum Especialidad IdEsp Nombre Descripcion Calificaciones Matricula Clave_mat IdMaestro GrupoId hijo_esp, Padre Alumnos Matricula Apaterno Amaterno Nombre Plantel IdEsp hijo Grupo_Alum Matricula Idgrupo Estatus FechaB Motivo Materias Clave_mat Nombre_mat Padre Grupos Idgrupo Nombre Periodo Semestre Maestros IdMaestro Relaciones Entre tablas Nota: Los de color azul son los padres. Actualización en Cascada: si borras en el padre automáticamente se borra en el hijo. Es decir sin que lo ejecute solito se borra. Set Null: nada más borra lo que se le indica no borra todo el registro. Es inusual porque se pierde la integridad referencial. No Action: si tú borras aquí, marca un error porque en otra tabla se está utilizando, o funciona al revés tienes que borrar en el hijo primero y después en el padre, OJO tienes que borrar todas las ligas existentes. Recomendada. Restrict: similar a la anterior. Recomendada. Set Defaull: es similar a actualización en cascada, borras en el padre y puedes poner el valor que tú quieras. Ejemplo de relaciones: 12
  • 13. DIPLOMADO DE INFORMATICA Taller de SQL RELACION TABLA GRUPO_ALUM CON ALUMNOS Y GRUPOS Create table grupo_alum (Matricula varchar(45)not null, GrupoId integer unsigned not null, Estatus boolean not null Default 0, FechaB varchar(45), FechaI varchar(45) not null, Motivo varchar(45), Index (Matricula), foreign Key (Matricula) References Alumnos (Matricula) on Delete Restrict on update Restrict, Index (GrupoId), foreign Key (GrupoId) References grupo (GrupoId) on delete Restrict on update Restrict) engine InnoDB; 1. Para crear la tabla anterior primero hay que borrar la tabla grupo_alum. 2. Posteriormente crear la tabla anterior. Borrar la tabla grupo_alum 3. Y ya está creada la referencia. Mostrar la tabla grupo_alum Crear la tabla grupo_alum con las relaciones 4. Borrar la tabla de alumnos, observa que pasa… 5. No se puede borrar por la integridad que existe. Ahora crear la relación con la tabla especialidad RELACION ESPECIALIDAD CON ALUMNOS 1. Modificar el campo especialidad de la tabla Alumnos: Alter table alumnos change Especialidad IdEsp integer unsigned not null; 2. Crear la tabla alumnos sin borrar la tabla de alumnos anterior, para crear la relación: Alter table alumnos Add index(IdEsp), Add constraint “nombre_relación “ foreign key (IdEsp) References especialidad(IdEsp) on Update restrict on delete restrict; Es lo mismo que escribirlo en una sola línea: Alter table alumnos Add index(IdEsp), Add constraint EspAlum foreign key (IdEsp)References especialidad(IdEsp) on Update restrict on delete restrict; RELACIÒN DE CALIFICACIONES CON ALUMNOS, CON MATERIA Y CON MAESTRO UTILIZANDO LA INTERFAZ 1. Clic derecho a la tabla que desea crear las relaciones y seleccionar Edit Table: 13
  • 14. DIPLOMADO DE INFORMATICA Taller de SQL 2. Crear los índices: a) Selecciona el campo al cual deseas crear el índice b) Selecciona el signo màs para que lo agregue c) Y ya agregado al índice se le pone la llavecita y listo, así a ser con cada uno de los índices que se necesitaran para crear la relación. 3. Crear las relaciones: a) Clic a la pestaña de Foreign Keys b) Clic al signo de màs para agregar la relación c) Aparece el siguiente cuadro en el cual se escribe el nombre de la relación 14
  • 15. DIPLOMADO DE INFORMATICA Taller de SQL d) Después se selecciona con que tabla se crea la relación y aparecerá la llave principal y debe coincidir con la de la tabla actual, tal como se muestra a continuación Selecciona la tabla Clave de la tabla actual (en la que se está trabajando) Es la clave de la tabla seleccionada ENTRAR A MYSQL COMO ADMINISTRADOR Esto es con el objetivo de administrar nuestra base de datos para poder ponerle “ “ para que protegernos de virus. Vamos a crear un usuario para solamente nosotros tener los privilegios de la BD 15
  • 16. DIPLOMADO DE INFORMATICA Taller de SQL En esta ventana establezco que es lo que puede hacer el usuario: 1. Selecciono ctrl_esc y le digo de las opciones del lado derecho que es lo que puede hacer 2. Clic en el botón Apply changes 3. Crear respaldos a la BD a) Backup b) New proyect 16
  • 17. DIPLOMADO DE INFORMATICA Taller de SQL c) Selecciona la BD que deseas agregar d) Clic a la flechita para pasarla al otro lado (Puedo hacer respaldos de todas las que quiera) e) Execute f) Se guarda seleccionando la ubicación deseada g) Para abrirlo se debe de abrir con Wordpad PARA RECUPERAR LA BASE DE DATOS 1. 2. 3. 4. 5. 6. IR AL ADMINISTRADOR SELECCIONAR RESTORE BUSCAR EL ARCHIVO INICIAR RECUPERACIÓN Y LISTO YA ESTA DE NUEVO LA B.D TAL COMO SE DEJO LA ULTIMA VEZ QUE SE GUARDO EL RESPALDO 17
  • 18. DIPLOMADO DE INFORMATICA Taller de SQL MANIPULACIÓN DE DATOS (DML) COMO GUARDAR REGISTROS Y SUS DIFERENTES USOS Insert into <nombre_tabla> (campo1, campo2….) Values (valor1, valor2); NOTAS: * Ver copias * # Campos = # valores * Mismo orden en campos = orden de los valores Ejemplo: Insert into materias(Clave_mat, Nombre_mat, Semestre, IdEsp, Creditos, Componente) Values ('01', 'sql', '4to', 1, '10', 'Profesional'); VER CONTENIDO DE UNA TABLA Select * from nombre_tabla; Select * from materias; JUEVES 23/07/09 El maestro nos dio la siguiente b.d. y nos la paso en archivo para su restauración y utilización el archivo se llama punto_venta y se reestructura en MYSQL administrador. B.D. PUNTO DE VENTA PRODUCTOS productoID proveedorID stock ESTADO estadoID nombre PROVEEDODORES proveedorID estadoID ciudadID CIUDAD ciudadID estadoID CLIENTES clientsID estadoID ciudadID VENTA ventaID clientsID ALMACEN almacenID productoID DET_VENTA ventaID productoID 1. Registrar el estado (1) insert into estados (NOMBRE) values ('Sinaloa'); 2. Registrar la ciudad (la ciudad depende del estado) (1) insert into ciudades (NOMBRE, ESTADOID) values ('Escuinapa',1); 3. Registrar proveedor (1) insert into proveedores (NOMBRE, CIUDADID, ESTADOID, TELEFONO) values ('Ley',1,1,6621-15-08-20); 4. Registrar productos (3) 18
  • 19. DIPLOMADO DE INFORMATICA Taller de SQL insert into productos (NOMBRE, DESCRIPCION, PRECIO, COSTO, PROVEEDORID) values ('Jabòn','de tocador',10, 6,1); insert into productos (NOMBRE, DESCRIPCION, PRECIO, COSTO, PROVEEDORID) values ('Shampoo','kids',50, 35,1); insert into productos (NOMBRE, DESCRIPCION, PRECIO, COSTO, PROVEEDORID) values ('Crema','manos',45, 30,1); PARA NO REPETIR LINEA POR LINEA: ESTA ES OTRA FORMA DE HACER LO MISMO Y NO REPETIR (INSERCIÓN MULTIPLE) INSERT INTO <NOM_TABLA> (CAMPO1, CAMPO2) VALUES (VALOR1, VALOR2..),(VALOR .1, VALOR2.2 …), (VALOR1.1.1, VALOR2.2.2 ….); 5. Registrar clientes (1) insert into clientes (NOMBRE, APATERNO, AMATERNO, RFC, CALLE, NUMERO, ESTADOID, CIUDADID) values ('Lupita','Sandoval','Ramos','SARL210881','Guamuchil','5a',1 ,1 ); 6. Registrar la venta (1) insert into ventas (FECHA, MONTO, CLIENTSID) values ('23/07/09', 500.30, 1); 7. Registrar detalle de venta (1) insert into det_venta (VENTAID, PRODUCTOSID, CANTIDAD, PRECIO, DESCUENTO) values (1,1, 5,10, .25), (1,2, 2,50, 0), (1,3, 3,45, 0); 7.1. Registrar movimiento de almacén (1) insert into almacen (PRODUCTOSID, FECHAMOV, TIPOMOV) values ( 1, '23/07/09','SALIDA'), (2, '24/07/09','SALIDA'), (3, '24/07/09','SALIDA'); Nota: el paso 7 y el 7.1 se repite 3 veces porque agregamos tres productos. OTRA FORMA DE HACER LO ANTERIOR ES EN EL AMBIENTE VISUAL 1. 2. 3. 4. SE LE DA DOBLE CLIC A LA TABLA SE ABRE LOS CAMPOS PARA SER LLENADOS CLC EN EDIT Y EMPEZAR A LLENAR LOS CAMPOS O COLUMNAS UNA VEZ REGISTRADOS LOS DATOS, CLIC EN APPLY CHANGES 2 1 3 4 19
  • 20. DIPLOMADO DE INFORMATICA Taller de SQL Falta Select * from clientes order by Apaterno desc (los ordena descendentemente) VIERNES 24/07/09 NOS PASO UNA CARPETA QUE SE LLAMA CECYTES_SQL Nota es utilizando la estructura: INNODB 1. Transacción (transaction). Intercambio de datos o de objetos. De la aplicación manda la orden al servidor y se ejecuta la b.d y regresa a la aplicación. Instrucción y ejemplo: Start Transaction;  Insert into productos (nombre, precio, costo, proveedorID) values (“XXXX”, 10,5, 1), (“yyy”, 15, 10, I), (“zzzz”, 20, 10, 1);  Delete from productos;  RollBack; Lo correcto de la sentencia anterior seria poner la condición porque si no estaríamos borrando todo el contenido de la tabla. Es como ctrl+Z, y lo que hace esta instrucción es que no ejecutaría la instrucción anterior pero tampoco el insertar. (No hagas nada de lo que te dije antes). Si quisiéramos que si ejecutara la instrucción pondríamos la instrucción comit QUE ES EJECUTAR LAS TRANSACCIONES. 1. STAR TRANSACTION CTRL + ENTER 2. INSERTO INTRO, CTRL +ENTER 3. ROLLBACK CTRL+ENTER 4. SELECTE, CTRL + ENTER 1. STAR TRANSACTION CTRL + ENTER 2. INSERTO INTRO, CTRL +ENTER 3. COMMIT CTRL+ENTER 4. SELECT, CTRL + ENTER 20
  • 21. DIPLOMADO DE INFORMATICA Taller de SQL BORRADO FORMATO: Delete from <nom_tabla> where campo = valor; NOTA: NO SE DEBEN DE DEFINIR COLUMNAS (no va el * antes del from). Si se ejecuta el contenido de la tabla sin la condición borra todo el contenido de la tabla. Se recomiendo en vez del delete un borrado lógico. Limit: borra los primeros seis renglones que encuentre. Delete from productos where nombre like ‘A%’ Limit 2 borra los primeros dos registros que empiecen con A Delete from productos where productosid = 3 or productid = 8 borra el producto que tenga el 3 o el 8 Delete from Det_Venta, productos where Det_venta.productoID = productos.productosID Borra todos los productos que se hayan vendido Delete from Det_venta, venta where det.ventaID = Det_venta.ventaID and Venta.Fecha = ‘ ‘ Borra todas las ventas y su detalle de venta que se hayan vendido en la fecha establecida Abrimos la carpeta que nos pasó el maestro de CECYTES_SQL…. 1. Abrimos el archivo CECYTES_SQL y se abre visual studio 5.0 2. 3. Abrir frmBusqueda.vb Se abre esta ventana 21
  • 22. DIPLOMADO DE INFORMATICA Taller de SQL 4. Observar el código El objetivo de esto es conectarnos a la base de datos punto_venta y que nos permita efectuar búsquedas y consultas de selección (select), ejecutar sql (update, insert, delete) 5. Seleccionamos la primera pestaña de búsqueda para iniciar la programación. a) Selccionamos la ventana b) Nos vamos a las propiedades c) Clic al icono del rayo d) En el evento load dar doble clic y nos vamos a la ventana de código 22
  • 23. DIPLOMADO DE INFORMATICA Taller de SQL 6. Ligar la base de datos con el gridDatos 1. Clic y clic en edit colums 2. selecciona 3. cambia su nombre como esta en la b.d. 7. Repite los registros, para que no lo haga hay que cambiar la propiedad del GRID ___________ o poner las columnas 8. Resultado al momento de correr la aplicación 23
  • 24. DIPLOMADO DE INFORMATICA Taller de SQL 9. Programar el botón buscar, doble clic al botón, nos vamos a la ventana de código y tecleamos el código. Buscara por el código del producto SI QUEREMOS BUSCAR POR NOMBRE Y ORDENAR SERIA Dim sql As String = "Select * from productos where NOMBRE='" & txtValor.Text & "'order by NOMBRE" AHORA SI QUEREMOS QUE EMPIECE CON LA LETRAS SERIA, ESTO SERIA LO IDEAL Dim sql As String = "Select * from productos where NOMBRE LIKE'%" & txtValor.Text & "%'" INVESTIGAR SQL INYECTION BOTON GUARDAR 1. DOBLE CLIC AL BOTON 2. CODIFICAR 3. Private Sub btnGuardarA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGuardarA.Click Dim sql As String = "insert into productos (NOMBRE, DESCRIPCION, PRECIO, COSTO, PROVEEDORID) values ('" & txtNombre.Text & " ','" & txtDescripcion.Text & "'," & txtPrecio.Text & "," & txtCosto.Text & ",1)" Dim obj As BaseDatos obj = New BaseDatos If obj.EjecutarSql(sql) Then MessageBox.Show("Registro guardado") Else Me.txtMsgError.Text = obj.getMsgError End If End Sub 24