venerdì, settembre 19, 2008

Basi di dati: MySQL

Estensioni allo standard SQL 99:

  • REPLACE (DELETE + INSERT)
  • Tipi di dato: medium int, set, enum, text, varchar
  • Vincoli di attributo: AUTO_INCREMENT, BINARY, NULL, UNSIGNED, ZEROFILL
  • Supporto a espressioni regolari e altro nelle SELECT
  • || e && come alternativa a OR e AND

Mancanze:

  • INTERSECT
  • EXCEPT
  • E' necessario prima rimuove i permessi ad un tabella prima di cancellarla (REVOKE)
  • Vincoli di integrità SOLO con InnoDB

Le componenti di MySQL (per mia esperienza simili agli altri db):

Syntax parser: parser delle query
Query optimizer: ottimizzatore
Execution Component: Esecutore delle query
Storage manager: Gestisce l'IO
Recovery manager: gestisce la parte volatile (risultato di un'interrogazione i.e.)
Process manager: gestione Thread e connessioni di rete

Funzioni di librerie

Default porta 3306

DB di sistema:

mysql (informazioni del DB, tipo utenti e permessi)
information_schema: database del catalog (informazioni su database, tabelle, viste, ecc.)

Username administrator: root, nessuna password di default (da localhost)

Case INSENSITIVE. Comandi terminati da ;

Connessione al server: Mysql –u root –p

Comando SHOW (DATABASES / TABLES)

Comando DESCRIBE TABLE

Domando: USE databaseName

PRIVILEGI

memorizzati in mysql.users
Privilegi globali: *.*
A livello di database: dbname.*
A livello di tabella: dbname.tableName

Creando un privilegio creo un utente

Posso usare wildcard

SET PASSWORD nomeutente@nomehost = PASSWORD('NewPassword')

Creare un utente: GRANT
Privilege
ON
NomeDatabase.* TO
Utente@PuntoDiAccesso
IDENTIFIED BY
Password

MySQL differenzia i privilegi a seconda del computer di provenienza della richiesta: Utente@% indica l'utente da qualsiasi punto di accesso.

Contenuti gestiti da Michele Bernardi. Non mi assumo alcuna responsabilità sulla correttezza di questi dati, usateli a vostro rischio e pericolo.

Nessun commento: