DBMS: MySQL CORSO DI BASI DI DATI 2014/2015
MySQL La pronuncia ufficiale è MY- S- Q- L ma si può leggere anche MY- Sequel. MySQL è il secondo RDBMS più diffuso al mondo. OpenSource sono licenza GPL Scelto da: Google Facebook Youtube TwiNer Flickr PermeNe di scegliere tra una molteplicità di storage engine: MyISAM InnoDB (fully ACID compliant) Merge Memory Federated CSV (hnp://en.wikipedia.org/wiki/comparison_of_mysql_database_engines)
Installazione (1)
Installazione (2)
Interfacce di Ges^one mysql command: interprete sql MySQL Workbench: visual modeling, SQL development e administra^on (20 pianaforme e OS inclusi Linux, Unix, Mac e Windows) PHPMyAdmin: applicazione PHP (XAMPP) Sequel Pro: gui client mac
Accesso e Creazione DB mysql - u root - p mysql> SHOW DATABASES; mysql> CREATE DATABASE demo; mysql> USE demo; mysql> SHOW TABLES;
Creazione tabella CREATE TABLE negozio ( prodono INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL, fornitore CHAR(20) DEFAULT '' NOT NULL, prezzo DOUBLE(16,2) PRIMARY KEY(prodoNo, fornitore)); DEFAULT '0.00' NOT NULL, SHOW TABLES; DESCRIBE negozio;
INSERIMENTO INSERT INTO negozio VALUES (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45), (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
Interrogazione tabella Sintassi Completa SELECT [ALL DISTINCT DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr [, select_expr...] [FROM table_references [WHERE where_condi3on] [GROUP BY {col_name expr posi3on} [ASC DESC],... [WITH ROLLUP]] [HAVING where_condi3on] [ORDER BY {col_name expr posi3on} [ASC DESC],...] [LIMIT {[offset,] row_count row_count OFFSET offset}] [PROCEDURE procedure_name(argument_list)] [INTO OUTFILE 'file_name' export_op3ons INTO DUMPFILE 'file_name' INTO var_name [, var_name]] [FOR UPDATE LOCK IN SHARE MODE]]
Interrogazione tabella SELECT Hello World! ;
Interrogazione tabella SELECT 1 + 2;
Interrogazione tabella SELECT * FROM negozio;
Interrogazione tabella SELECT * FROM negozio ORDER BY prodono;
Interrogazione tabella SELECT * FROM negozio ORDER BY prodono;
Interrogazione tabella SELECT prodono FROM negozio ORDER BY prezzo;
Interrogazione tabella SELECT prodono, prezzo AS 'Costo in Euro' FROM negozio ORDER BY prezzo;
Interrogazione tabella SELECT COUNT(*) FROM negozio;
Interrogazione tabella SELECT * FROM negozio LIMIT 5;
Creazione Indice - Sintassi CREATE [UNIQUE FULLTEXT SPATIAL] INDEX index_name [index_type] ON tbl_name (index_col_name,...) [index_type] index_col_name: col_name [(length)] [ASC DESC] index_type: USING {BTREE HASH}
Creazione Indice CREATE INDEX indexprezzo ON negozio (prezzo)
Creazione utente create user pippo @ localhost iden^fied by password_in_chiaro ; grant all privileges on negozio.* to pippo@localhost ; show grant for pippo@localhost; revoke all privileges on negozio.* FROM pippo@localhost
I permessi Permesso ALL ALTER CREATE CREATE TEMPORARY TABLES CREATE VIEW DELETE DROP INDEX INSERT LOCK TABLES SELECT SHOW VIEW UPDATE USAGE GRANT OPTION Istruzioni tune esclusa GRANT ALTER TABLE CREATE TABLE CREATE TEMPORARY TABLE CREATE VIEW DELETE DROP TABLE CREATE INDEX, DROP INDEX INSERT LOCK TABLES SELECT SHOW CREATE VIEW UPDATE nessuna GRANT, REVOKE
ALTER table - sintassi UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1 DEFAULT} [, col_name2={expr2 DEFAULT}]... [WHERE where_condi3on] [ORDER BY...] [LIMIT row_count]
ALTER table ALTER TABLE negozio RENAME shop; ALTER TABLE shop ADD marca VARCHAR(20);
UPDATE table - sintassi UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1 DEFAULT} [, col_name2={expr2 DEFAULT}]... [WHERE where_condi3on] [ORDER BY...] [LIMIT row_count]
UPDATE table UPDATE negozio SET marca = Guess WHERE prodono=3;
MySQL Workbench
FOREIGN Keys in MySQL WB
Forward Engineering in MySQL WB
Link La distribuzione corrente è scaricabile dal sito: hnp://dev.mysql.com/downloads/mysql/ Una documentazione completa è reperibile all URL: hnp://dev.mysql.com/doc/refman/5.7/en/index.html