Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Base de Datos - My SQL
Base de Datos - My SQL
MySQL
“ Base de Datos en un
Conjunto de Información
relacionada y Organizada evitando
duplicidad, la cual esta compuesta
de información que representa
una Persona , entidad o Cosa ,
por ejemplo : La Base de Datos
del Departamento de Ventas ,
Compras , etc. ”
Dato
Información
Numero de Factura
Código Cliente Razón Social
Razón Social RUC cliente
RUC cliente Dirección Cliente
Dirección cliente Fecha Emisión
Teléfono cliente Fecha Vencimiento
Correo cliente Fecha cancelación
Moneda
Condiciones
Guía remisión
Importe bruto
Igv
Total
• Ahora definiremos las llaves de cada entidad
Numero de Factura
Código Cliente Código de Cliente
Razón Social Razón Social
RUC cliente RUC cliente
Dirección cliente Dirección Cliente
Teléfono cliente Fecha Emisión
Correo cliente Fecha Vencimiento
Fecha cancelación
Moneda
Condiciones
Guía remisión
Importe bruto
Igv
Total
• Ahora definiremos las Entidades Factura y Producto , para ello definimos sus atributos y
Interrelación , ya que la entidad Factura ya fue definida solo no queda definir la entidad
producto
• Entidad2: Factura Entidad3:Producto
Entidad4:Detalle
Usuario : root
Clave : 1234
phpMyAdmm
phpMyAdmm
phpMyAdmm – Creando la Base de Datos
Compras
phpMyAdmm – Creando la primera tabla
Proveedor
phpMyAdmm – Creando la primera tabla
Proveedor
phpMyAdmm – Creando la primera tabla
Proveedor
Como seria la tabla proveedor
phpMyAdmm – Creando la primera tabla
Proveedor , 6 campos
phpMyAdmm – Creando la primera tabla
Proveedor , 6 campos
phpMyAdmm – Creando la primera tabla
Proveedor , 6 campos
phpMyAdmm – Creando la primera tabla
Proveedor , campo : doc_pe ( documento del proveedor )
Algo sobre el Tipo VARCHAR
Los valores en columnas VARCHAR son cadenas de
caracteres de longitud variable.
En MySQL 5.0, la longitud puede especificarse de 0 a
65,535 caracteres
66
phpMyAdmim – Tipos Datos MySQL
67
phpMyAdmim – Tipos Datos MySQL
1) Tipos numéricos:
Existen tipos de datos numéricos, que se pueden dividir en dos grandes grupos, los que incluyen valores decimales (coma
flotante) y los que no.
TinyInt: es un número entero con o sin signo. Con signo el rango de valores válidos va desde -128 a 127. Sin signo, el
rango de valores es de 0 a 255
Bit ó Bool: un número entero que puede ser 0 ó 1
SmallInt: número entero con o sin signo. Con signo el rango de valores va desde -32768 a 32767. Sin signo, el rango de
valores es de 0 a 65535.
MediumInt: número entero con o sin signo. Con signo el rango de valores va desde -8.388.608 a 8.388.607. Sin signo el
rango va desde 0 a 16777215.
Integer, Int: número entero con o sin signo. Con signo el rango de valores va desde -2147483648 a 2147483647. Sin signo
el rango va desde 0 a 429.4967.295
BigInt: número entero con o sin signo. Con signo el rango de valores va desde -9.223.372.036.854.775.808 a
9.223.372.036.854.775.807. Sin signo el rango va desde 0 a 18.446.744.073.709.551.615.
Float: número pequeño en coma flotante de precisión simple. Los valores válidos van desde -3.402823466E+38 a -
1.175494351E-38, 0 y desde 1.175494351E-38 a 3.402823466E+38.
Real, Double: número en coma flotante de precisión doble. Los valores permitidos van desde -1.7976931348623157E+308
a -2.2250738585072014E-308, 0 y desde 2.2250738585072014E-308 a 1.7976931348623157E+308
Decimal, Dec, Numeric: Número en coma flotante. El número se almacena como una cadena
68
phpMyAdmim – Tipos Datos MySQL
2) Tipo Fecha:
Al almacenar fechas, hay que tener en cuenta que Mysql no comprueba de una manera
estricta si una fecha es válida o no. Simplemente comprueba que el mes está entre 0 y 12 y
que el día está entre 0 y 31.
Date: Almacena una fecha. El rango de valores va desde el 1 de enero del 1001 al 31 de
diciembre de 9999. El formato de almacenamiento es de: año-mes-dia
DateTime: Combinación de fecha y hora. El rango de valores va desde el 1 de enero del
1001 a las 0 horas, 0 minutos y 0 segundos al 31 de diciembre del 9999 a las 23 horas, 59
minutos y 59 segundos. El formato de almacenamiento es de año-mes-dia
horas:minutos:segundos
TimeStamp: Combinación de fecha y hora. El rango va desde el 1 de enero de 1970 al año
2037.
Time: Almacena la hora. El rango de horas va desde -838 horas, 59 minutos y 59 segundos
a 838, 59 minutos y 59 segundos. El formato de almacenamiento es de 'HH:MM:SS'
Year: almacena un año. El rango de valores permitidos va desde el año 1901 al año 2155. El
campo puede tener tamaño dos o tamaño 4 dependiendo de si queremos almacenar el año
con dos o cuatro dígitos.
69
phpMyAdmim – Tipos Datos MySQL
3) Tipos de Cadena de Caracteres:
Char(n): almacena una cadena de longitud fija. La cadena podrá contener desde 0 a 255 caracteres.
VarChar(n): almacena una cadena de longitud variable. La cadena podrá contener desde 0 a 255
caracteres.
Dentro de los tipos de cadena se pueden distinguir otros dos subtipos, los de tipo Text y los de tipo
BLOB (Binary large Object). La diferencia entre un tipo y otro es el tratamiento que reciben a la hora de
realizar ordenamientos y comparaciones. Mientras que el tipo Text se ordena sin tener en cuenta las
Mayúsculas y las minúsculas, el tipo BLOB se ordena teniéndolas en cuenta.
Los tipos BLOB se utilizan para almacenar datos binarios como pueden ser ficheros.
TinyText y TinyBlob: Columna con una longitud máxima de 255 caracteres.
Blob y Text: un texto con un máximo de 65535 caracteres.
MediumBlob y MediumText: un texto con un máximo de 16.777.215 caracteres.
LongBlob y LongText: un texto con un máximo de caracteres 4.294.967.295. Hay que tener en cuenta
que debido a los protocolos de comunicación en Internet, los paquetes pueden tener un máximo de 16
Mb.
Enum: campo que puede tener un único valor de una lista que se especifica. El tipo Enum acepta hasta
65535 valores distintos
Set: un campo que puede contener ninguno, uno ó varios valores de una lista. La lista puede tener un
máximo de 64 valores.
70
Laboratorio 1
1.- Crear las siguientes Tablas que faltan :
1.Documento_c
2.Detalle_documento
3.Orden
4.Detalle_orden
Si hay algunos campos que no sabe que tipo de datos asignarle acceder
al link :
Tipos Recomendados
2.- Ingresar por lo menos 20 registros en cada tabla con al opción
Laboratorio 1
Preguntar al profesor como sacar un copia
de base de datos en un archivo
Sacar copia de seguridad de la base de datos
en un archivo y enviarlos al correo del
profesor
SQL ANSI
SQL ANSI
SELECT Sintaxis:
SELECT expresión FROM tabla [WHERE condición]
[ORDER BY {unsigned_integer | col_name | formula} [ASC
| DESC] ,...] [LIMIT [offset,] row_count | row_count
OFFSET offset]
SQL ANSI
Sentencia de Selección de Registros
SELECT Sintaxis:
SELECT expresión FROM tabla [WHERE condición]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...]
[LIMIT [offset,] row_count | row_count OFFSET offset]
Aplicación
De la tabla proveedor , seleccionar todos los campos y todos sus registros :
1.- Seleccionar todo los proveedores mostrar todos sus campos y todos
sus registros
2.- Seleccionar los proveedores cuyo doc_pe es 11111111111 , mostrar
todos sus campos
4.- Seleccionar los proveedores cuyo doc_pe empieza con 1 , mostrar
todos sus campos
5.- Seleccionar los proveedores cuyo doc_pe que termina con 1 ,
mostrar todos sus campos
6.- Seleccionar los proveedores cuya rz_pe empieza con a , mostrar
todos sus campos
7.- Seleccionar los proveedores cuya rz_pe empieza con b , mostrar
solo el campo rz_pe
8.- 1.- Seleccionar todo los proveedores mostrar el campo doc_pe y
rz_pe y todos sus registros
Utilizar la sentencia SELECT para recuperar los siguientes registros :
Usuario : root
Clave : 1234
phpMyAdmm
phpMyAdmm
phpMyAdmm
phpMyAdmm
phpMyAdmm
Nombre : admin
Clave : 1234
El usuario
Nombre : root
Clave : 1234
No es recomendable usarlo
Sentencias SQL ANSI
INSERT Sintaxis:
INSERT [INTO] nombre_tabla [(nombre_columna,...)]
VALUES ((expresión | DEFAULT),...), (...),...
INSERT [INTO] nombre_tabla
SET nombre_columna=(expresión | DEFAULT), ...
Ejemplo:
INSERT INTO noticias (id, titulo, texto, categoria, fecha)
VALUES (37, "Nueva promoción en Nervión", "145
viviendas de lujo en urbanización ajardinada situadas en un
entorno privilegiado", "promociones", CURDATE())
Inserta una noticia con los valores indicados
Sentencias SQL ANSI
UPDATE Sintaxis:
UPDATE nombre_tabla
SET nombre_columna1=expr1 [,
nombre_columna2=expr2 ...] [WHERE condición]
[ORDER BY ...] [LIMIT row_count]
Ejemplo:
UPDATE noticias SET categoria = "ofertas" WHERE id=37
Modifica la categoría de la noticia con id=37 de la tabla
Sentencias SQL ANSI
DELETE Sintaxis:
DELETE FROM nombre_tabla [WHERE condición]
[ORDER BY ...]
[LIMIT row_count]
Ejemplo:
DELETE FROM noticias WHERE fecha < CURDATE()-10
Borra las noticias con más de 10 días de antigüedad
Sentencias SQL ANSI
DELETE Sintaxis:
DELETE FROM nombre_tabla [WHERE condición]
[ORDER BY ...]
[LIMIT row_count]
Ejemplo:
DELETE FROM noticias WHERE fecha < CURDATE()-10
Borra las noticias con más de 10 días de antigüedad