Linguaggio MySQL

13
02/01/2015 Paola Pucci appunti di INFORMATICA Linguaggio MySQL

description

MySQL

Transcript of Linguaggio MySQL

  • Zz appunti di INFORMATICA

    appunti di INFORMATICA

    02/01/2015

    Paola Pucci

    appunti di INFORMATICA

    Linguaggio MySQL

  • 2

    INDICE

    linguaggio mysql .............................................................................................................................................................. 4

    identificatori ................................................................................................................................................................ 4

    creazione e uso di database......................................................................................................................................... 4

    definizione tabelle ....................................................................................................................................................... 5

    modifica degli schemi .................................................................................................................................................. 7

    creare un indice ........................................................................................................................................................... 7

    cancellare un indice e una tabella ............................................................................................................................... 7

    manipolazione dei dati ................................................................................................................................................ 7

    inserimento dei dati ................................................................................................................................................. 8

    cancellazione delle righe .......................................................................................................................................... 8

    modifica delle righe ................................................................................................................................................. 8

    creare e cancellare le viste ...................................................................................................................................... 9

    comandi per la sicurezza .......................................................................................................................................... 9

    interrogazioni semplici............................................................................................................................................. 9

    operatori ................................................................................................................................................................ 12

    eliminare i duplicati ............................................................................................................................................... 12

    condizioni ............................................................................................................................................................... 12

  • 3

    Paola Pucci

    Linguaggio MySQL

    n. 13 pagine

    Questa opera distribuita con Licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo

    Tu sei libero:

    di riprodurre, distribuire, comunicare al pubblico, esporre in pubblico, rappresentare, eseguire e recitare quest'opera

    di modificare quest'opera

    Alle seguenti condizioni: Attribuzione Devi attribuire la paternit dell'opera nei modi indicati dall'autore o da chi ti ha dato l'opera in licenza e in modo tale da non suggerire che essi avallino te o il modo in cui tu usi l'opera.

    Non commerciale Non puoi usare quest'opera per fini commerciali.

    Condividi allo stesso modo Se alteri o trasformi quest'opera, o se la usi per crearne un'altra, puoi distribuire l'opera risultante solo con una licenza identica o equivalente a questa.

    http://creativecommons.org/licenses/by-nc-sa/3.0/deed.it

  • 4

    LINGUAGGIO MYSQL SQL l'acronimo di Structured Query Language, nonostante il nome, non si tratta solo di un semplice linguaggio di interrogazione, , infatti, il linguaggio di definizione e manipolazione dei dati universalmente usato nelle basi di dati relazionali.

    E un linguaggio non procedurale, al contrario del C++, cio consente di operare sui dati di un database tramite frasi che non fanno uso di simboli matematici ed algebrici, ma solo di parole chiave prese dal linguaggio corrente; questo, insieme alla sintassi che riprende forme usuali, fa s che le frasi abbiano una struttura lineare ed espressiva. Non usa, inoltre, il concetto di funzione o procedura ampiamente usato in C++. Il ; posto al termine del comando serve a segnalare la fine delle istruzioni.

    E, inoltre, un linguaggio not case sensitive, cio non fa distinzione fra le lettere maiuscole e minuscole. Legenda: come nella semantica di tutti i linguaggi di programmazione, le parti opzionali sono racchiuse tra parentesi quadre.

    IDENTIFICATORI

    Gli identificatori (nomi di tabelle e di attributi) sono costituiti da sequenze di caratteri con lunghezza massima uguale a 18 caratteri : devono iniziare con una lettera e possono anche contenere il carattere. Nella dichiarazione della tabella occorre specificare il tipo dei dati scelto per gli attributi.

    I tipi standard sono:

    CHARACTER(n) Stringa di lunghezza n n da 1 a 15000

    DATE Data nella forma AAAA/MM/GG o AAAA-MM-GG

    TIME Ora nella forma HH:MM:SS

    INTEGER(p) Numero intero con precisione p p da 1 a 45

    SMALLINT Numero intero con precisione 5 da -215 a 215 -1

    INTEGER Numero intero con precisione 10 da -231 a 231 -1

    DECIMAL(p,s) Numero decimale con precisione p e s cifre decimali

    REAL Numero reale con mantissa di precisione 7

    FLOAT(o DOUBLE PRECISION) Numero reale con mantissa di precisione 15

    FLOAT(p) Numero reale con mantissa di precisione p

    La precisione p indica il numero massimo di cifre che pu contenere, esclusi il segno e il punto decimale. Il numero s indica il numero di cifre che conseguono il punto decimale.

    CREAZIONE E USO DI DATABASE

    Per creare un nuovo Data Base si usa la seguente sintassi:

    CREATE DATABASE Nomedatabase

    [authorization nomeproprietario];

    per selezionare un nuovo Data Base si usa la seguente sintassi:

    USE Nomedatabase ;

  • 5

    DEFINIZIONE TABELLE

    Una tabella SQL costituita da una collezione di attributi e da un insieme (eventualmente vuoto) di vincoli.

    La sintassi :

    CREATE TABLE NomeTabella

    (

    NomeAttributo Dominio [valore di default] [vincoli],

    { ecc. }

    );

    quindi una tabella viene definita associandole un nome ed elencandone gli attributi che ne compongono lo schema.

    Ecco un esempio :

    CREATE TABLE persona

    ( Codfisc char(16) primary key,

    Nome char(20),

    Indirizzo char(50),

    Citt char(20)

    );

    I valori di default sono i valori che deve assumere lattributo quando viene inserita una riga nella tabella senza che venga specificato il valore dellattributo stesso.

    Sia nella definizione dei vincoli che in quella delle tabelle possibile stabilire dei vincoli; per vincoli si intendono delle propriet che devono essere verificate da ogni istanza della base di dati.

    In SQL i vincoli che possono essere definiti sugli attributi di una tabella sono i vincoli di not null,

    unique e primary key.

    Not null : significa che l'attributo deve essere sempre specificato.

    Unique : si applica ad uno o pi attributi imponendo che righe differenti abbiano valori differenti. Viene fatta eccezione solo per il valore null.

    Primary Key : specifica quali attributi rappresentano la chiave primaria.

    In SQL altri vincoli che possono essere definiti sugli attributi di una tabella sono quelli di default, check e primary key.

    Default : assegna all'attributo il valore predefinito.

    Check () : specifica un qualsiasi vincolo che riguarda il valore di un attributo, oltre agli operatori di confronto si possono trovare: IN, BETWEEN..AND, NOT BETWEEN..AND, LIKE, NOT LIKE.

    Foreign Key : specifica quali attributi rappresentano la chiave esterna, inoltre si pu indicare, in fase di cancellazione ON DELETE o in fase di modifica ON UPDATE, le opzioni CASCADE, SET NULL, SET DEFAULT e NO ACTION.

  • 6

    CREATE TABLE azienda

    (Codazienda char(5) not null,

    Ragionesociale char(30) not null,

    Codattivit char(4) not null,

    CodDip char(6) not null,

    Primary key (Codazienda),

    Foreign key (CodDip) REFERENCES dipendente(CodDip) ON DELETE SET NULL,

    Foreign key (Codattivit) REFERENCES categoria(Codattivit) ON UPDATE

    CASCADE);

    crea una tabella in cui la chiave primaria Codazienda, mentre le chiavi esterne sono Coddip derivata dalla tabella dipendente che, in caso di cancellazione, imposta a null le righe corrispondenti e Codattivit derivata da categoria che , in caso di modifica imposta tutte le righe corrispondenti con lo stesso nuovo valore.

    CREATE TABLE persona

    (Matricola char(6) primary key not null,

    Nome char(20) not null,

    Cognome char(20) not null,

    Indirizzo char(50),

    Citt char(20),

    Funzione char(18),

    Unique (Nome, Cognome)

    );

    Cancellazione (ON DELETE ) Modifica (ON UPDATE)

    CASCADE: vengono cancellate le righe corrispondenti

    CASCADE: le righe corrispondenti vengono impostate allo stesso nuovo valore

    SET NULL: vengono impostate a Null le righe corrispondenti

    SET NULL: le righe corrispondenti vengono impostate a Null

    SET DEFAULT: le righe corrispondenti vengono impostate al valore di default

    SET DEFAULT: le righe corrispondenti vengono impostate al valore di default

    NO ACTION: non viene eseguita nessuna azione NO ACTION: non viene eseguita nessuna azione

  • 7

    crea una tabella in cui la chiave primaria la matricola, in cui gli attributi nome e cognome devono essere obbligatoriamente specificati (a causa del not null) e in cui non possono comparire due righe aventi stesso nome e cognome.

    MODIFICA DEGLI SCHEMI

    Il linguaggio implementa anche delle istruzioni dedicate alla modifica delle strutture esistenti utilizzando il comando alter, per aggiungere una nuova colonna add a quelle gi esistenti, oppure per togliere una colonna drop.

    ALTER TABLE NomeTabella

    [BEFORE NomeColonna];

    Esempi:

    ALTER TABLE persona

    ADD nascita date;

    ALTER TABLE persona

    DROP Indirizzo;

    Nel primo esempio aggiungo lattributo nascita con tipo di dato date e nel secondo cancello Indirizzo, inutile precisare il tipo di dato, in quanto lho definito a suo tempo nella Create Table.

    CREARE UN INDICE

    L'istruzione CREATE INDEX viene utilizzata per creare un nuovo indice su una tabella esistente, la chiave esterna che avevamo definito quando si parlava di attributi nel modello E-R.

    Se si vuole che non ci siano valori duplicati per l'attributo associato ad indice in righe diverse, occorre usare la clausola UNIQUE.

    Esempio:

    CREATE UNIQUE INDEX Ipers

    ON persona (Cognome, Nome);

    CANCELLARE UN INDICE E UNA TABELLA

    Una tabella o un indice possono essere eliminati con il comando DROP.

    Esempio:

    DROP TABLE persona;

    DROP INDEX Ipers ON persona;

    MANIPOLAZIONE DEI DATI

    La parte di manipolazione dei dati si occupa delle operazioni di inserimento, modifica e

    cancellazione delle righe.

  • 8

    INSERIMENTO DEI DATI

    Il comando di inserimento di righe nella base di dati presenta la seguente sintassi :

    INSERT INTO NomeTabella

    ( ListaAttributi)

    VALUES ( ListaDiValori );

    Questa sintassi permette di inserire una riga specificandone i valori dei suoi attributi. Se i dati sono numerici si scrivono cos come si presentano, se di tipo carattere devono essere preceduti e seguiti da apici o da virgolette.

    Esempio:

    INSERT INTO Persona

    (Cognome, Nome,)

    VALUES('Barbagallo', 'Tino',.);

    CANCELLAZIONE DELLE RIGHE

    Il comando SQL delete il comando che permette di eliminare delle righe dalla tabella di una base di dati.

    La sintassi :

    DELETE FROM NomeTabella

    [WHERE Condizione ];

    e attua la cancellazione delle righe che rispondono alla condizione specificata.

    La condizione rispetta la sintassi SQL, per cui potremmo avere al suo interno delle interrogazioni nidificate, che affronteremo in seguito, facendo riferimento ad altre tabelle. Un semplice esempio che elimina i dipartimenti senza impiegati:

    DELETE FROM Dipartimento

    WHERE Nome NOT IN (SELECT Dipart

    FROM Impiegato);

    E' da notare la differenza tra il comando DELETE ed il comando DROP. Ad esempio il comando:

    DELETE FROM Dipartimento;

    elimina tutte le righe della tabella dipartimento, ma lo schema rimane immutato; il comando, infatti, canceller solo le istanze della tabella. Mentre il comando:

    DROP TABLE Dipartimento;

    elimina tutte le istanze della tabella, nonch lo schema.

    MODIFICA DELLE RIGHE

    In SQL la modifica delle righe avviene mediante l'utilizzo del comando update, seguendo la sintassi:

    UPDATE NomeTabella

    SET Attributo = < Espressione | SelectSQL | Null | default >

  • 9

    [ WHERE Condizione ];

    Il comando update permette di aggiornare uno o pi attributi delle righe di NomeTabella che soddisfano l'eventuale condizione. Se la condizione non compare, ovviamente si suppone di default il valore vero e si esegue la modifica su tutte le righe della tabella.

    Ecco un esempio che aumenta del 20% lo stipendio degli impiegati che si chiamano "TINO":

    UPDATE Impiegato

    SET Stipendio = Stipendio * 1.2

    WHERE Nome = 'TINO OR Tino;

    CREARE E CANCELLARE LE VISTE

    CREATE VIEW serve per creare una vista in una tabella.

    Esempio:

    CREATE VIEW Impieg

    AS SELECT *

    FROM Personale

    WHERE funzione='impiegato';

    Invece per cancellarla si usa:

    DROP VIEW Impieg;

    COMANDI PER LA SICUREZZA

    Il comando GRANT concede i permessi, specificando il tipo di accesso, le tabelle sulle quali consentito l'accesso e l'elenco degli utenti ai quali permesso di accedere.

    Esempio:

    Per concedere il diritto di modifica sulla tabella dei dipendenti agli utenti denominati con Salvo e Fausto, si deve usare il comando GRANT nella forma:

    GRANT UPDATE

    ON Persona

    TO Salvo,Fausto;

    La revoca dei permessi viene effettuata con REVOKE

    REVOKE UPDATE

    ON Persona

    FROM Salvo,Fausto;

    INTERROGAZIONI SEMPLICI

    Anche se la parola query pu essere tradotta in interrogazione o domanda, una query SQL non

    necessariamente una domanda, pu essere un comando per svolgere una delle seguenti

    operazioni:

    Creare o cancellare una tabella

  • 10

    Inserire, modificare o cancellare campi

    Ricercare informazioni specifiche in pi tabelle e restituire i risultati in un particolare ordine

    Modificare i parametri di protezione di un database

    Gli elementi importanti di una query sono le parole chiave ovvero le parole del linguaggio SQL

    che sono riservate come parte della sintassi.

    Le parole chiavi di una query sono:

    SELECT FROM WHERE

    Il carattere * che compare dopo la parola chiave SELECT indica tutti gli attributi della tabella.

    E possibile indicare le singole colonne che verranno elencate nello stesso ordine indicato:

    SELECT BENEFICIARIO, NOTE, Num, IMPORTO

    FROM ASSEGNI;

  • 11

    BENEFICIARIO NOTE Num IMPORTO

    Computer shop DVD e CD ROM 1 1.500,00

    Librerie Riunite Libri, cancelleria 2 2.453,40

    Computer Shop Telefono cellulare 3 2.003,20

    BIOGA srl GAS 4 980,00

    Supermarket GC Alimentari 5 1.500,00

    Assicurazioni Italy Assicurazione casa 6 250,00

    GAS Spa. Gas 7 251,00

    Per selezionare solo alcune colonne basta indicarle, solo quelle dichiarate verrano elencate nellordine indicato:

    QUESTA E LA SINTASSI DELLA PROIEZIONE!

    SELECT Num, IMPORTO

    FROM ASSEGNI;

    Num IMPORTO

    1 1.500,00

    2 2.453,40

    3 2.003,20

    5 1.500,00

    6 250,00

    4 980,00

    7 251,00

    Per selezionare dati da unaltra tabella sufficiente modificare la clausola FROM

    QUESTA E LA SINTASSI DELLA SELEZIONE!

    SELECT *

    FROM DEPOSITI

    WHERE NOTE = Stipendio;

    DEPOSITO CHIHAPAGATO IMPORTO NOTE

    1 Zio ricco 2000,00 regalo di Natale

    2 Mia azienda 2.453,40 Stipendio

    3 Trasporti S.r.L. 250,00 Affitto garage

  • 12

    OPERATORI

    Gli operatori sono gli elementi utilizzati allinterno delle espressioni per specificare le condizioni necessarie a caricare i dati.

    Possono essere divisi in sei gruppi:

    aritmetici

    di confronto

    di caratteri

    logici

    di insieme

    vari.

    ELIMINARE I DUPLICATI

    CONDIZIONI

    Tutte le volte che si vuole trovare un particolare elemento o gruppo di elementi in un database, occorre specificare una o pi condizioni.

    Le condizioni sono introdotte dalla clausola WHERE.

    SELECT NOME, INDIRIZZO, TELEFONO, RUBRICA

    FROM RUBRICA

    WHERE NOME = ROSSI;

    Nellesempio precedente la condizione NOME = ROSSI.

  • 13

    Questa condizione potr essere TRUE (vera) o FALSE (falsa) rispettivamente se la colonna NOME contiene ROSSI oppure no.

    Per trovare tutti gli impiegati che hanno lavorato pi di 100 ore la condizione potrebbe essere: NUMERODIORE > 100.