mysql
Que es mysql?
- MySQL es un sistema de gestión de base de datos.
- Una base de datos es una colección estructurada de datos. Puede ser cualquier cosa, desde una simple lista de la compra a una galería de fotos o las grandes cantidades de información en una red corporativa. Para agregar, el acceso y proceso de los datos almacenados en una base de datos, se necesita un sistema de gestión de base de datos como MySQL Server. Dado que los ordenadores son muy buenos en el manejo de grandes cantidades de datos, sistemas de gestión de bases de datos juegan un papel central en la computación, como aplicaciones autónomas o como parte de otras aplicaciones.
- Las bases de datos MySQL son relacionales
-
Las bases de datos relacionales almacenan los datos en tablas separadas en lugar de poner
todos los datos en un gran almacén. Las estructuras de bases de datos están organizados en
archivos físicos optimizadas para la velocidad. El modelo lógico, con objetos tales como
bases de datos, tablas, vistas, filas y columnas, ofrece un entorno de programación flexible.
Configure las reglas que rigen las relaciones entre los diferentes campos de datos,
como uno-a-uno, uno-a-muchos, único, obligatorio u opcional, y "punteros" entre diferentes
tablas. La base de datos hace cumplir estas normas, de manera que con una base de datos bien
diseñada, su aplicación nunca ve incoherente, duplicar, huérfano, fuera de fecha, o los datos
que faltan.
La parte SQL de "MySQL" es sinónimo de "Structured Query Language". SQL es el lenguaje estandarizado más común utilizado para acceder a bases de datos. Dependiendo de su entorno de programación, es posible entrar en SQL directamente (por ejemplo, para generar informes), sentencias SQL incrustar en el código escrito en otro idioma, o utilizar una API específica del idioma que esconde la sintaxis SQL.
Requisitos
Para poder continuar con el tutorial es necesario que descargues la última versión de MySQL server y también es necesario que descargues MySQL Workbench para interctuar con mysql de manera gráfica lo descargamos del siguiente link
MySQL Community DowloadsInstalación
Como hay diversas formas de instalar mysql dependiendo de sistema operativo que se este utilizando te dejamos un link hacia la documentación de mysql y esta parte nos dice como instalar mysql en mi caso lo realice con el instalador de mysql para windows ya que cuando se realizo este tutorial se contaba con windows 8
La comunicación con el servidor
Un servidor MySQL se encuentra inactivo, a la espera de recibir consultas. Cuando se recibe una, el servidor lleva a cabo la acción solicitada en nuestro nombre y responde con el resultado. Hay varias formas en las que se puede comunicar con MySQL, por ejemplo mediante programación desde una aplicación que escribimos o de forma interactiva utilizando un cliente dedicado.
Ahora vamos a comunicarnos con mysql desde consola de la siguiete manera:
La consola te pedira la contraseña del usuario root que introduciste a la hora de instalar.Una vez dentro se muestra la consola de la siguiente manera:
En la consola de Unix o linux se manda a llamar con el comando:
mysql -u root -p
-u significa usuario
-p password
-u y -p son sólo dos de las muchas opciones aceptadas por el cliente. He aquí una lista de algunas otras opciones que puede encontrar por sí mismo utilizando con frecuencia (se puede llamar al cliente con la opción -? para una lista completa):
- -A - no vuelva a inicializar la búsqueda de autocompletar
- -B -ejecución en modo batch
- -e sentencia - ejecute la instrucción SQL dada
- -h nombre del host - especificar un nombre de host de un servidor de base de datos remota
- -N - suprimir nombres de las columnas de la salida de resultados
- -p - preguntar por el password de la cuenta para conectar
- -u nombre de usuario - especificar el nombre de usuario de una cuenta para conectarse
- -? - Una lista de todas las opciones disponibles
Para mostrar las bases de datos que hay en nuestro servidor se realiza con la sentencia show databases;
A continuación vamos a crear un bases de datos desde línea de comandos para ver como se muestra en la sentencia anterior al momento de crearla escribmos el siguiente comando:
CREATE DATABASE pruebadb CHARACTER SET utf8 COLLATE utf8_general_ci;Volviendo a escribir SHOW DATABASES; podemos notar que agrego la base de datos.
Para usar una base de datos específica basta utilizar la sentecia:
USE pruebadb;Para mostrar las tablas de la base de datos se realizá con la sentencia SHOW TABLES;
la respuesta que nos arrojo de tablas vacías porque no hemos creado una tabla todovía más adelante empezaremos a crear tablas.
La comunicación con el servidor( MySQL Workbench)
Seleccionamos nuestra instancia local
Introducimos nuestra contraseña de usuario root y presionamos ok
En la parte donde dice SCHEMAS nos muestra las bases de datos disponibles
Para crear una base de datos seleccionamos el icono de bases de datos y nos crea una nuevo esquema
A nuestro esquema le pondremos prueba2db en Collation selecionamos utf8-utf8_general_ci y presionamos Apply
Nos aparece la siguiente pantalla y hacemos clic en Apply
Luego presionamos Finish
Luego en donde dice SCHEMAS nos aparace prueba2db y podemos destender y vemos que todavia no tenemos ninguna tabla creada.
Cuentas de usuario Mysql
la sentencia utilizada para crear un usuario es la siguiente:
CREATE USER 'usuario'@localhost IDENTIFIED BY 'password';
Si MySQL permite que un usuario realice una actividad depende de qué privilegios Se asocian con la cuenta. Se crean nuevas cuentas sin privilegios Por lo que debemos conceder explícitamente cualquier privilegio que la cuenta necesite la sentecia es la siguiente:
GRANT CREATE, DROP, ALTER, INSERT, UPDATE, SELECT, DELETE, INDEX ON pruebadb.* TO 'usuario'@'localhost';
Aquí decimos que se tengan los privilegio de la base de datos puebadb con el usuario que le estamos asignando. Aquí listamos algunos de los privilegios que se utilizar con la sentencia GRANT:
- ALL PRIVILEGES:esto permite a un usuario de MySQL acceder a todas las bases de datos asignadas en el sistema.
- CREATE: permite crear nuevas tablas o bases de datos.
- DROP: permite eliminar tablas o bases de datos.
- DELETE: permite eliminar registros de tablas.
- ALTER:permite al usuario cambiar la definición de una tabla existente.
- INSERT: permite insertar registros en tablas.
- SELECT: permite leer registros en las tablas
- UPDATE: permite actualizar registros seleccionados en tablas.
- INDEX: permite al usuario crear o eliminar índices
- GRANT OPTION: permite remover privilegios de usuarios.
Los privilegios pueden ser revocados con una sentencia REVOKE, cuya sintaxis es idéntica a la de GRANT:
REVOKE CREATE, DROP, ALTER, INDEX ON pruebadb.* TO 'usuario'@'localhost';
Siempre que se realice un cambio relacionado con el usuario o el privilegio, debemos enviar un FLUSH PRIVILEGES para instruir a MySQL que debe recargar la memoria caché de la información de la cuenta. Se mantiene para que las actualizaciones puedan tener efecto. De lo contrario, los cambios pueden pasar desapercibido hasta que se reinicie MySQL:
FLUSH PRIVILEGES;