Curso de PHP

Estás en: MySql y SQL : Mysql

Mysql

MYSQL es un servidor de bases de datos.
Es de código abierto y muy potente.

Permite gestionar los accesos de varios usuarios de forma simultánea a la web y gestionar permisos.
Los permisos pueden ir sobre tablas, registros, base de datos.

El lenguaje que utiliza MySql es Sql (Structure Query Languaje).

Es un lenguaje standarizado y exportable a otras estructuras de datos.
Se pueden migrar bases de datos enormes de Access a Mysql y viceversa.

Una base de datos es una estructura que permite guardar información de forma ordenada y gestionarla. Para ello utiliza un sistema tabular. Se utilizan tablas para guardar los datos relacionados.

Mantiene la integridad de los datos. No permite eliminar registros que se están utilizando en otras tablas.

Modelo relacional de BBDD

Condiciones mínimas a cumplir:
- No deben existir dos registros iguales.
- Cada atributo sólo puede tomar un único valor entre los posibles, es decir, no pueden contener listas.
- El orden de los registros dentro de la tabla y el de los campos, dentro de cada registro, no es determinante.
- El número de registros puede variar.
  Tablas maestras son las tablas que no varían mucho (provincias, productos, clientes..). Contienen los datos estructurales o los principales.
  Tablas de movimiento son las que generan o explotan la información de las tablas maestras.
- El número de campos por registro es siempre el mismo. Los cambios afectan a la estructura.
- Los registros han de tener una clave que los identifique de forma unívoca.
  Pueden ser un campo o varios. Para ello,se crea un campo que nos asegura que no se van a repetir los datos (en una agenda, podría ser el dni o el cif).
  Hay casos en los q hay que establecer 2 campos clave. Ej: BD de un videoclub, se utilizaría el código de cliente, la película y la fecha, porque así se asegura q ese cliente no coge la misma película el mismo día.
- No se deben crear campos que guarden datos calculados. Es mejor calcularlos cuando se muestre la información.

Ejemplo

EMPRESAS                        VISITAS                         COMERCIALES
NIF                             cod_comercial                   cod_comercial
Nombre_Comercial                NIF                             Nombre
RazonSocial                     Fecha                           Apellidos
Direccion                       Observacioens                   Dirección
Telefono                                                        Móvil
Contacto                                                        Fecha_Nacimiento
                                                                Foto
                                                                DNI

La relación de EMPRESAS -> VISITAS es de 1 a varios
La relación de COMERCIAL -> VISITAS es de 1 a varios

En la tabla Empresas, el campo NIF es la primary key
En la tabla Comerciales, el campo cod_comercial es la primary key
En la tabla visitas, los campos cod_comercial y NIF son foreign keys (utilizan campos claves de
otras tablas)

Si queremos, le podemos poner una primary key a la tabla visitas (cod_visita)

No se podría borrar una empresa, puesto que hay visitas generadas con ese código.

Cuando se instala MySql existe un usuario que es root.

Tipos de campos:

NUMERICO
- TinyInt: -128 a 127 ó de 0 a 250
  Ocupa muy poco, 1 byte
- Bit o Bool: 0 ó 1
- SmallInt: -32768 a 32767 ó 0 a 65.535
- MediumInt
- Integer
- BigInt
- Float: Número pequeño en coma flotante
- xReal, Double
- Decimal, Dec, Numeric

FECHA
- Date: Formato año-mes-dia
- DateTime: Formato año-mes-dia horas:minutos:segundos
- TimeStamp: Tanto la fecha como la hora, la junta en una sola cifra. Se puede utilizar como campo clave
- Time: HH:MM:SS
- Year

CADENA
- Char es fijo
- Varchar es variable. Limita hasta 10, pero si sólo insertamos 2 caracteres, no reserva hasta 10.
  Se utiliza mucho, porque no desperdicia espacio.
- TynyText y TinyBlob
- Blob y Text
- Mediumblob y MediumText
- LongBlob y LongText
- Enum
- Set

Para administrar las bases de datos, vamos a utilizar phpMyAdmin.
Para abirlo, sobre la E de Easyphp, botón derecho / Configuración / PHP Myadmin

Ejemplo

Crear la base de datos Agenda:

Crear tabla t_agenda
nombre: varchar de 30
apellido: varchar de 50
telefono: varchar de 9
fecha: date (no hay que poner longitud)

La opción Insertar: para meter datos

Para insertar un nuevo campo, seleccionar a la izquierda la tabla agenda y decirle que lo inserte al comienzo cod_agenda: int ... al final, poner autoincrement en Extra.

Seleccionar el campo clave Primaria

Para listar los datos,pulsar el icono pequeñito que está en la columna izquierda, al lado del nombre de la tabla

IMPORTAR UNA BASE DE DATOS

En el PhpMyadmin, pinchar en la casita de la columna de la izquierda y crear la BD paises.
En la opción SQL, examinar para localizar el fichero.
- Compresión: autodetecte ??
- Juego de caracteres: UTF-8
Se puede hacer un sql para cada fichero que tengamos.

EXPORTAR UNA BASE DE DATOS

Seleccionar la base de datos paises
Opción Exportar

Seleccionar las 2 tablas
SQL

En la columna de la derecha:
Estructura: Con los valores q viene por defecto suele ser suficiente.
Suele ser interesante marcar: Añadir Drop Table y Añada en caso de no existir

DROP TABLE: Si ya existía una tabla la borra y la crea

Marcar: Enviar (genera un archivo descargable) y ponerle nombre
Compresión: Ninguna
Continuar y guardarlo