SQL creacio

De Cacauet Wiki
La revisió el 13:58, 23 set 2016 per Enric (discussió | contribucions) (→‎Exercicis)
(dif) ← Versió més antiga | Versió actual (dif) | Versió més nova → (dif)
Salta a la navegació Salta a la cerca

Disposem de diverses BBDD d'exemple a la pròpia web de MySQL.

Els exemples estan fets amb la base de dades "mundo". L'arxiu amb les dades el teniu aquí: Fitxer:Mundo.sql, més avall trobareu com importar-lo dins d'una base de dades prèviament creada.

És interessant tenir en compte que en alguns sistemes amb permisos restringits (la majoria de hostings) no podem crear bases de dades amb el nom que vulguem. Caldrà que creem la base de dades amb el nostre nom d'usuari com a prefix. Per exemple, en el meu cas hauria de crear una base de dades amb el nom "enric_mundo" o obtindria un error com aquest.

mysql> create database mundo;
ERROR 1044 (42000): Access denied for user 'enric'@'localhost' to database 'mundo'

Utilitzant el prefix, tot funciona:

mysql> create database enric_mundo;
Query OK, 1 row affected (0.02 sec)

Esteu advertits :) Així, entrem en matèria:


Creació de bases de dades

Tenim 3 mètodes per fer-ho:

  • Amb la comanda linux mysqladmin
  • Amb la consola del client mysql (consola per executar comandes SQL dins de la base de dades).
  • Amb phpmyadmin


Creació de bases de dades amb mysqladmin

La comanda Linux mysqladmin té aquesta sintaxi:

$ mysqladmin -u <usuari> -p -h <host_ip> create <nom_base_de_dades>

Pel nostre cas concret (en host local, no cal el paràmetre -h), serà:

$ mysqladmin -u <usuari> -p create mundo

Si no diu res, és que tot ha anat bé. Si voleu comprovar si la base s'ha creat correctament, mireu la següent secció amb la consola mysql i la comanda "show databases".

L'avantatge d'aquest mètode és que no necessita que entrem a la consola de mysql.


Creació de bases de dades amb la consola mysql

Per entrar a la consola mysql, anem a la consola linux i posem:

$ mysql -u <usuari> -p

El "prompt" que sol ser un dòlar "$", ara ha canviat a "mysql>". Des d'aquesta consola podem introduir comandes SQL (sempre acaben amb un punt i coma).

La comanda que necessitem és la "create database" amb la següent sintaxi:

mysql> create database <nom_bbdd>;

I pel nostre cas concret serà:

mysql> create database mundo;
mysql> show databases;
...
mysql> exit;

Fixeu-vos que la comanda SQL "show databases;" ens mostra les bases de dades que tenim disponibles. Això ens donarà un resultat més o menys com aquest:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| enric_samye        |
| enric_wiki1        |
+--------------------+
3 rows in set (0.02 sec)

mysql> 

...i podem seguir teclejant comandes SQL.


Creació de bases de dades amb phpmyadmin

Apunteu el vostre navegador a:

http://<nom_del_servidor>/phpmyadmin

entreu amb el vostre usuari i contrasenya i seguiu els menús... és molt fàcil!!


Importació de dades

Disposeu de les BBDD de prova "oficials" de MySQL shakila, world, employee i menagerie.

També disposeu d'una versió antiga de world aquí: Fitxer:Mundo.sql


Importació amb phpmyadmin

  1. Crear una base de dades buida
  2. Descarregar l'arxiu .sql (veure més amunt)
  3. Anar al menú "importar"
  4. Seleccionar l'arxiu ".sql" descarregat.
  5. Prémer "executar".


Importació per línia de comandes (Linux)

  • Descarregueu-vos l'arxiu .sql i deseu-lo en un directori conegut
  • Creeu la base de dades "mundo". Per fer això podeu fer-ho entrant al mysql o bé amb la comanda mysqladmin des de la línia de comandes de Linux. La sintaxi general de mysqladmin és aquesta:
    $ mysqladmin -u <usuari> -p -h <host_ip> create <nom_base_de_dades>

Pel nostre cas concret (en host local, no cal el paràmetre -h), serà:

$ mysqladmin -u <usuari> -p create mundo
  • Importar les dades de l'arxiu .SQL a dins de la nova base de dades creada.
    • Situeu-vos al directori on teniu l'arxiu "mundo.sql"
    • La comanda és el client de MySQL que se sol utilitzar també per consola, i li redirigirem l'arxiu .SQL amb el "<". Aquesta comanda té la següent sintaxi:
$ mysql -u <usuari> -p <nom_base_de_dades> < <nom_arxiu.sql>
    • Pel nostre cas concret, la comanda serà:
$ mysql -u <usuari> -p mundo < mundo.sql

D'aquesta manera introduireu les instruccions SQL sobre la base de dades, creant les taules pertinents.


Exercicis

Disposeu de BBDD d'exemple en la web de MySQL.

  1. Descarrega les 2 versions de la world database.
  2. Modifica el scripts per tal que les 2 bases de dades vagin a parar a dues BBDD diferents.
  3. Importa les 2 versions calculant el temps que triga a importar-se (utilitzant, per exemple, la comanda time de Linux).
    • Quina diferència de temps hi ha?
    • A què creus que es deu això?