danny block notes

giovedì, 4 dicembre 2008

Guide Programmazione

Filed under: c,j2me,java,JSP,mysql,programming — danny @ 11:47 am

Guide Programmazione


Ant


Eclipse

Java

JavaME

JDBC

JSP/Servlet

MySQL

PHP

Project Managment


SQL

UML

VisualBasic.Net


Web Applications

Web Server

WordPress

Annunci

venerdì, 9 maggio 2008

MySql 5

Filed under: mysql,programming — danny @ 9:43 pm
Tags: ,
Avviare il Server MySQL

 mysqld --user=root --default-storage-engine=InnoDB

oppure per gli utenti nt

 mysqld-nt --user=root --default-storage-engine=InnoDB

---

Fermare il Server MySQL

 mysqladmin --user root -p shutdown

---

Lanciare un client mysql come utente usr1.
Il -p si usa se il db è protetto da password.

 mysql -u usr1 -p

oppure

 mysql -u usr1 -p NOMEDB

se si vuole accedere direttamente al DB chiamato NOMEDB

es.

1. mysql -u pippo -p
2. mysql -u pippo
3. mysql --user pippo --password
4. mysql -u root
5. mysql -u root -p
6. mysql -u pippo -p primoDB

---

Disconnettersi da mysql

 QUIT

---

Eseguire int batch una sequenza di istruzioni salvate in un file di testo

 SOURCE c:\myScript.sql

---
---

Creare un utente 

 CREATE USER 'usr1'@'%' IDENTIFIED BY 'psw1';

dove:	'usr1' è il nome utente
	'psw1' è la password
	'%' indica che l'utente può connettersi da qualunque luogo. Altre possibilità sono
	'localhost' solo in locale,
	'aaa.bbb.ccc.ddd' solo da questo indirizzo ip.

nota: 	in alternativa è possibile lavorare direttamente sulla tabella 'mysql.user'

---

Assegnare i privilegi di SUPERUSER ad un utente

 GRANT ALL PRIVILEGES ON *.* TO 'usr1'@'%' IDENTIFIED BY 'psw1' WITH GRANT OPTION;

---

Assegnare tutti i privilegi sulla tabella tab1 all'utente usr1 con password psw1 e dalla macchina localhost :

 GRANT ALL ON tab1.* TO 'usr1'@'localhost' IDENTIFIED BY 'psw1';

oppure se solo alcuni

 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,CREATE VIEW ON tab1.* TO 'usr1'@'localhost' IDENTIFIED BY 'psw1';

---

Rendere effettive le modifiche ai privilegi degli utenti del DB

 FLUSH PRIVILEGES;

---
---

Impostare lo storage engine di default (quando il server è già avviato)

 SET storage_engine=INNODB
o
 SET storage_engine=MYISAM

---
---

Creare un database

 CREATE DATABASE nomedb;

---

Visualizzare la lista dei databases esistenti

 SHOW DATABASES;

---

Entrare in un database

 USE nomedb;

---

Creare una tabella

 CREATE TABLE nometab (attr1 TIPO1 opt1, attr2 TIPO2 opt2,...);

note : 	1. per la sintassi complata vedere
	http://dev.mysql.com/doc/refman/5.0/en/create-table.html
	2. per i tipi di dato fare riferimento a
	http://dev.mysql.com/doc/refman/5.0/en/data-types.html
	3. esempi di opt1 :	NOT NULL
				PRIMARY KEY
				DEFAULT default_value
	4. per impostare lo storage engine della tabella (diverso da quello di default)
	CREATE TABLE t (i INT) ENGINE = INNODB;

---

Modificare una tabella

 ALTER TABLE <nome-tabella>
 	ADD [CONSTRAINT] <def-Vincolo> |
 	DROP [CONSTRAINT] <nome-Vincolo> |
 	ADD COLUMN <def-Attributo> |
 	DROP COLUMN <nome-Attributo>
 }

esempi:

 ALTER TABLE Maternita
	ADD primary key (madre,figlio),
	ADD key (code),
        ADD foreign key (madre) references Persone,
        ADD CONSTRAINT foreign key (figlio) references Persone;

 ALTER TABLE Libro
 	ADD CONSTRAINT denom_unica UNIQUE (totolo, autori);

 ALTER TABLE Prestito
	ADD CONSTRAINT libro_prestato FOREIGN KEY (id_libro) REFERENCES Libro(id_libro);

 ALTER TABLE Prestito
	ADD CONSTRAINT Utente_richiedente FOREIGN KEY (id_utente_richiedente) REFERENCES Utente(id_utente);

 ALTER TABLE Prestito ENGINE = INNODB

nota : 	Il costutto SQL check non è supportato da MySQL 5.0.
	In realtà codice contenente una check viene accettato, ma l'effetto della check sarà assolutamente nullo.
	Esempi :

 1. un libro ha un numero positivo di pagine
 ALTER TABLE Libro
	ADD CONSTRAINT NUM_PAGINE_POS CHECK (NUM_PAGINE > 0);

 2. la data di termine di un prestito se esiste, ovvero se il prestito non è ancora in corso,
 è successiva alla data di inizio
 ALTER TABLE PRESTITO ADD CONSTRAINT ORDINAM_DATE_INIZIO_FINE CHECK (DATA_FINE IS NULL OR DATA_FINE >= DATA_INIZIO);

---

Visualizzare la lista delle tabelle del database corrente

 SHOW TABLES;

---

Visualizzare la struttura di una tabella

 DESCRIBE tab1;

---

Creare un vista

 CREATE VIEW <nome_vista>
 AS
 <query>

---
---

Inserire una tupla completa in una tabella

 INSERT INTO tab1
 VALUES ('info-a1','info-a2','info-a3',...);

---

Inserire più di una tupla in una tabella (tutte complete)

 INSERT INTO tab1
 VALUES ('info-a1','info-a2','info-a3',...) ,
	('info-b1','info-b2','info-b3',...) ,
	...
	('info-x1','info-x2','info-x3',...);

---

Inserire tuple in una tabella caricandole da un file di testo

 LOAD DATA LOCAL INFILE '/path/file.txt' INTO TABLE tab1;

 oppure

 LOAD DATA LOCAL INFILE '/path/file.txt' INTO TABLE tab1;
 LINES TERMINATED BY '\r\n';

 per specificare che le linee terminano con il carattere '\r\n' come nei sistemi Windows.

 note:	1. ogni linea del file di testo indica una tupla;
	2. per separare 2 oggetti della stessa tupla si utilizza il separatore TAB;
	3. per indicare un campo vuoto si indica con la stringa '\N'.

---
---

Eseguire un'interrogazione o query **********************DA COMLETARE

 SELECT
 FROM
 [WHERE]
 [GROUP BY]

Crea un sito o un blog gratuitamente presso WordPress.com.