IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

SQL (Structured Query Language)

SQL és el llenguatge de consultes estructurades (sigles en anglès: Structured Query Language). Es tracta d'un llenguatge declaratiu d'accés a bases de dades relacionals que permet realitzar diversos tipus d'operacions en una base de dades.

SQL és pot utilitzar de dos formes:

  • SQL interactiu: llenguatge de consultes basat en l'àlgebra relacional que també té suport per a inserir, modificar i eliminar dades
  • SQL immers : En angles anomenat SQL embedded (la traducció podria ser SQL encastat o "empotrat").

Les operacions que es poden realitzar amb un llenguatge com SQL es poden classificar en els següents Subconjunts de SQL:

  • Data Definition Language (DDL): Definició de l'estructura de la base de dades. Les clàusules SQL utilitzades serien CREATE, DROP i ALTER
  • Data Manipulation Language (DML): Manipulació de les dades. Les clàusules SQL utilitzades serien INSERT, UPDATE i DELETE.
  • Data Control Language (DCL): Control d'accés a les dades. Les clàusules SQL utilitzades serien GRANT i REVOKE.

Ordres SQL bàsiques

Ordres de Consulta

Les operacions més comunes amb bases de dades són són les consultes (querys) les quals es realitzen amb l'element de llenguatge SELECT. SELECT obté informació d'una o més taules d'una base de dades.

Cal tenir en compte que les consultes només indiquen les dades que volem obtenir i no pas com s'han d'obtenir. És el gestor de base de dades (DBMS) el responsable de planificar, optimitzar i realitzar les operacions físiques per tal d'obtenir els resultats demanats.

SELECT

NOTA: Per a la relització de les proves utilitzarem la base de dades world que hem creat a Usuari:Jordiromero/SQL#Instal·lar una base de dades

Les declaracions SELECT (SELECT statements) s'utilitzen per seleccionar dades d'una base de dades. La sintaxi (simplificada) és:

SELECT
   [ALL | DISTINCT | DISTINCTROW ]
   select_expr [, select_expr ...]
   [FROM table_references
   [WHERE where_condition]
   [GROUP BY {col_name | expr | position}
     [ASC | DESC], ... 
   [HAVING where_condition]
   [ORDER BY {col_name | expr | position}
     [ASC | DESC], ...]
   [LIMIT {[offset,] row_count | row_count OFFSET offset}]

MySql

Servidor

Canviar el password de root

Si no li hem assignat mai cap contrasenya a l'usuari root.

$ mysqladmin -u root -p password PARAULA_DE_PAS 

Si el que volem és modificar la paraula de pas

$ mysqladmin -u root -p'antic_password' password nova paraula_de_password

Un exemple podria ser la següent canviem 1234 per paraula.

$ mysqladmin -u root -p'1234' password 'paraula' 

Recuperar la paraula de root

A les últimes versions del Paquet MySql per a Debian/Ubuntu podem utilitzar

$ sudo dpkg-reconfigure mysql-server-5.1 

Una vegada executat el reconfigure ens tornarà a demanar la paraula de pas.

Recuperar la paraula de pas de root amb l'usuari debian-sys-maint

Podeu trobar l'usuari debian-sys-maint i la paraula de pas a:

$ sudo cat /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint
password = 9SX1IdXCjLUgM67k
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = 39SX1IewCjLTgM67k
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr

Configuració

Control Accés

Mostrar Permisos

$ sudo mysql -p
mysql> SHOW GRANTS;

Crear una base de dades i un usuari que hi tingui accés per línia d'ordres

$ sudo mysql -p
mysql> create database wikidb;
mysql> grant create, select, insert, update, delete, alter, lock tables on wikidb.* to 'wikiuser'@'localhost' identified by  'password';
mysql> flush privileges;
mysql> exi

Crear un usuari amb tots els permisos

$ mysql -u root -p
mysql> CREATE USER 'user'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

Crear un usuaris amb tots els permisos a una base de dades

mysql> CREATE USER 'user'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'user'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

Instal·lar una base de dades

Anirem a la següent pàgina

http://dev.mysql.com/doc/index-other.html

I descarregarem la Base de dades d'exemple world.Hi descarregarem la versió innodb.

Crearem la base de dades world dins del Mysql

$ sudo mysql -p 
> CREATE DATABASE world;
> quit

Omplirem la base de dades amb:

$sudo mysql --force -p world < world_innodb.sql

Vegeu També

mysql

SQL