Salta el contingut

1. Introducció als llenguatges de consulta

Moltes vegades hem sentit estadístiques de futbol que diuen coses com:

  • Esta jornada s'han tret 7 targetes roges, que és rècord esta temporada i igualen el rècord de la temporada passada, que es va fer en la jornada 5.

  • El partit d'esta jornada amb més expulsions ha sigut el Sevilla-València, amb 3. En total han sigut expulsats 11 jugadors, però no supera el rècord de la temporada passada, que eren 12 expulsions, en les jornades 6 i 33.

  • En el que va de campionat, Messi ja porta més gols que 15 equips de primera. Només 3 clubs superen els 8 gols de Messi: el Betis amb 9, el Reial Madrid amb 16 i, és clar, el Barça, amb 22. Messi acabà la lliga passada amb 31 gols. De moment, en la present temporada la seua mitjana és 1 gol cada 48 minuts.

Com es fan totes eixes estadístiques? Hi ha algú repassant totes les dades una a una de totes les jornades i va veient rècords, mitjanes, etc? És evident que no. Per a fer això, caldrà fer, amb el llenguatge SQL:

  • Crear l'estructura idònia de base de dades (només una vegada):

    SQL
    CREATE TABLE partits ( ...
    
  • Introduir les dades dels resultats dels partits (després de cada jornada):

    SQL
    INSERT INTO partits VALUES ( ...
    UPDATE partits SET gols_casa = gols_casa + 1 WHERE ...
    
  • Fer les consultes que necessitem (per a cada informació estadística):

    SQL
    1
    2
    3
    SELECT SUM(targetes)
      FROM partits
      WHERE jornada = 7;
    

Per a fer eixes i altres operacions cal un tipus de programa anomenat Sistema de Gestió de Bases de Dades (SGBD).

Un SGBD és un conjunt de programes que permeten crear BD, emmagatzemar dades, modificar-les, esborrar-les i consultar-les.

El SGBD que usarem nosaltres és el MySQL.

Este SGBD, com molts altres, per a interactuar amb les BD usa el llenguatge SQL: Structured Query Language (Llenguatge de consultes estructurat). Les instruccions de SQL (sentències) es poden classificar en 5 grups:

\[SQL = DDL + DML + DQL + DCL + TCL\]
  • DDL (Llenguatge de Definició de Dades). Crear taules amb els camps, claus, etc.
  • DML (Llenguatge de Manipulació de Dades). Inserir dades en les taules, esborrar-les o modificar-les.
  • DQL (Llenguatge de Consulta de Dades). Consultar dades guardades en la BD.
  • DCL (Llenguatge de Control de Dades). Restringir permisos d'accés a les taules a determinats usuaris.
  • TCL (Llenguatge de Control de Transaccions). Permetre accés concurrent (simultani) de diversos usuaris a les dades.

SQL és un llenguatge informàtic per a realitzar tasques de gestió amb una BD. Les instruccions (ordres o sentències) poden executar-se de forma independent (consola, etc) o bé poden incorporar-se a un altre llenguatge (C, Java...) per a permetre'ns accedir a una BD des d'un programa.

Totes les sentències SQL comencen amb una paraula clau que descriu el que fa la sentència (SELECT, INSERT, DELETE...). La sentència continua amb una o més clàusules, que també comencen amb una paraula clau (WHERE, FROM, ORDER BY...).

Les sentències acaben amb ;.

A continuació vorem un resum de les sentències més importants.

Sentències SQL

Subllenguatge Sentència Descripció
DDL (Definició de dades) CREATE DATABASE Crea una BD
USE Selecciona una BD per a usar-la
DROP DATABASE Elimina una BD
CREATE TABLE Crea una taula
DROP TABLE Elimina una taula
ALTER TABLE Modifica l'estructura d'una taula
CREATE INDEX Crea un índex per a una columna
DROP INDEX Elimina un índex d'una columna
CREATE VIEW Crea una vista
DROP VIEW Elimina una vista
DML (Manipulació de dades) INSERT Afig files a una taula
DELETE Suprimix files d'una taula
UPDATE Modifica dades d'una taula
DQL (Consultes) SELECT Mostra dades d'una BD
DCL (Control de dades) GRANT Dóna permisos d'accés a usuaris
REVOKE Lleva permisos d'accés a usuaris
TCL (Control de transaccions) BEGIN Inicia una transacció
COMMIT Finalitza una transacció
ROLLBACK Avorta la transacció
SAVEPOINT Per a avortar parcialment la transacció