Mysql 2019

De Wiki nam htca
Revisión del 10:36 1 may 2019 de Perezdelama (discusión | contribuciones) (Diseño de la base de datos)
Saltar a: navegación, buscar

Enlaces

MySQL en Ubuntu 14.04 LTS

Desarrollo de base de datos para catalogo de biblioteca personal

Tutoriales

    • Me gustaría quizás conectarlo vía Python... y poderlo visualizar con Processing... ya veremos




Instalación software

En Software Center de Ubuntu instalé:

  • MySQL Server
  • MySQL Client (no estoy seguro si necesito)
  • MySQL Workbench (una aplicación con GUI...)

Salvo error de memoria (mía) al instalar el MySQL Server aparecen unos cuadros de diálogo pidiendo que se introduzca una password para el usuario root, y se confirme. Con este usario / password se accede a las aplicaciones luego, independientemente de que se creen otros más adelante.



Nuevo usuario en MySQL Workbench

Viendo el tutorial de D. Banas que no explica bien cómo empezar con usuarios de demás... Parece que el interfaz del MySQL Workbench en Ubuntu es bastante diferente del que aparece en el tutorial, quizás en Windows o Mac.

Al instalar el MYSQL Workbench me aparece un launcher en la barra principal de programas que permite arrancarlo con un click.

Aquí voy a trabajar en la propia máquina / ordenador, que se reconoce como localhost, o por su IP, 127.0.0.1

En mi Workbench, un poco a ciegas, trato de localizar el local host y crear un nuevo usuario. Voy a Database/Connect to Database - ahí creo que sale el localhost por defecto (fig 1), abriéndose una nueva ventana tras pedir el pw de root.

Crear nuevo usuario: En la nueva ventana de workbench (pestañas arriba con las diferentes ventanas abiertas, en la mía dice: Mysql@127.0.0.1:3306x - esto sale sólo, 3306 es el puerto de conexión), en Management/Users and Privileges, se abre nueva ventana; buscamos añadir nuevo usuario, se elige nombre y password, y de momento copié los parámetros del usuario root; lógicamente habrá que ver que permisos tienen los nuevos usuarios, pero eso lo haré más adelante.



Empezar con la consola de Linux

Ahora me paso a la consola de Linux (terminal), para seguir el primer tutorial citado.

Para abrir mysql con el usuario creado; el nombre de mi nuevo usuario es test:

   ~$ mysql -u test -p

-u es el usuario test, el nombre del usuario con el que queremos acceder a mysql; podríamos hacerlo con root que es el otro que tenemos. -p es que pida el password

La consola responde pidiendo el password que se debe introducir.

Introducido correctamente, salen unas cuantas líneas de código deonde vemos la versión de MySQL instalada, en mi caso: Server version: 5.5.62-0ubuntu0.14.04.1 (Ubuntu)tecler

Ahora el "prompt" que aparece es así:

   mysql>

Para salir se teclearía lo siguiente:

   mysql> quit

Para probar que funciona. La convención parece ser escribir los comandos en mayúsculas; estos se cierran siempre con ";" - punto y coma.


   mysql> SHOW DATABASES;

Mostrará las bases de datos; aparece una tabla con al menos 3 databases por defecto?, - que son del propio sistema.


   mysql> SHOW GRANTS;

Nos muestra los permisos del usuario que estamos usando.



Crear una nueva base de datos

   mysql> CREATE DATABASE catalogo;

Donde catalogo es el nombre de la base de datos a crear

Dando a enter, el sistema debe contestar, Query OK, ..., confirmando que se ha creado.

Si tecleamos de nuevo mysql> SHOW DATABASES; confirmaremos que ya está en la tabla.

Para trabajar en la nueva base de datos creado o en cualquier otra teclearíamos:

   mysql> USE catalogo;

y para comprobar en que base de datos estamos trabajando,

   mysql> SELECT DATABASE();

que muestra la base de datos con la que estamos trabajando.


Diseño de la base de datos

Recomienda el autor del tutorial diseñar "a mano" cómo queremos que se vean finalmente nuestros datos; a partir de ahí, éstos se organizarán o distribuirán en tablas de manera que cada input sea lo más sencillo posible, y las relaciones entre datos también...

Esto parece una parte delicada... y comprender cómo se organizan los datos, importante. Seguramente haré un beta más o menos rápido, y tras ver cómo funciona, una segunda versión que esté mejor.

Conceptos que parecen ser importantes y que tengo que entender mejor...

Primary key

Atomic table

Crear tablas

Recordar que estemos en la base de datos que corresponda:

   mysql> USE catalogo;

Para crear una tabla, le damos nombre, y definimos las variables o campos que se van incluir en la tabla, así como sus características respectivas:


   mysql> CREATE TABLE libros(
       -> variable 1 características,
       -> variable 2 características,
       -> ...
       -> variable x características);

Tipos de variables El manual de referencia aquí (MySQL Server versión 5.5): https://dev.mysql.com/doc/refman/5.5/en/data-types.html

...

Una coma "," tras cada variables. Se parece a una lista de Python, pero con ().

NOT NULL / NULL

mysql> DESCRIBE libros;