Il 0% ha trovato utile questo documento (0 voti)
1 visualizzazioni

Create

Caricato da

sandudavidalex
Copyright
© © All Rights Reserved
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
1 visualizzazioni

Create

Caricato da

sandudavidalex
Copyright
© © All Rights Reserved
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 5

MySQL DDL

× Statement CREATE, ALTER e DROP per database e tabelle

× Creazione di un database

> CREATE DATABASE univ;


> CREATE SCHEMA univ;

> CREATE DATABASE IF NOT EXISTS univ;

× Eliminazione di un database

> DROP DATABASE univ;


> DROP SCHEMA univ;

× Specificare il character set e la collation

> CREATE SCHEMA IF NOT EXISTS univ CHARSET='utf8';


> CREATE SCHEMA IF NOT EXISTS univ CHARSET='utf8' COLLATE='utf8_general_ci';

LABORATORIO DI BASI DI DATI 6


MySQL DDL – Creazione di tabelle
× Statement CREATE TABLE

> CREATE TABLE IF NOT EXISTS univ.studente (


matricola VARCHAR(6) NOT NULL, Tipo di
dato
cognome VARCHAR(40) NOT NULL,
nome VARCHAR(40) NOT NULL,
Nullable? data_nascita DATE NOT NULL,
data_iscrizione DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
Storage voto_laurea INT NULL DEFAULT NULL,
engine
PRIMARY KEY (matricola) Valore di
) ENGINE=InnoDB; Chiave default
primaria

× Sintassi completa: http://dev.mysql.com/doc/refman/5.7/en/create-


table.html

LABORATORIO DI BASI DI DATI 7


MySQL – Tipi di dati principali [1]
× Tipi stringa
○ Lunghezza fissa: CHAR(N) (0-255 caratteri)
○ Lunghezza variabile: VARCHAR(N) (0-65.536 caratteri), TEXT, MEDIUMTEXT,
LONGTEXT

× Tipi interi (signed e unsigned)


○ TINYINT (8 bit), SMALLINT (16 bit), MEDIUMINT (24 bit), INT (32 bit), BIGINT (64 bit)

× Tipi decimali (signed e unsigned)


○ Virgola mobile: FLOAT (32 bit), DOUBLE (64 bit)
○ Virgola fissa: DECIMAL(M,D)

LABORATORIO DI BASI DI DATI 8


MySQL – Tipi di dati principali [2]
× Tipi temporali
○ DATE, DATETIME, TIMESTAMP (data minima 1/1/1970, data massima 19/01/2038),
YEAR

× Tipi binari
○ BIT (1-64 bit), BINARY(N) (0-255 byte), VARBINARY(N) (0-65536 byte), BLOB,
LONGBLOG

× Enumerazioni
○ ENUM("valore1", "valore2", "valore3", …)

× E i booleani?
○ Non sono supportati, benché lo standard SQL definisca il tipo BOOLEAN
○ MySQL converte BOOLEAN in TINYINT(1)

LABORATORIO DI BASI DI DATI 9


MySQL – Auto increment
× Una colonna di tipo intero può essere dichiarata ad incremento automatico
con la keyword AUTO_INCREMENT
○ Il suo valore viene automaticamente generato all'inserimento del record, tramite un
contatore incrementale interno al DBMS associato alla tabella

> CREATE TABLE IF NOT EXISTS univ.corso (


codice INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(255) NOT NULL,

) ENGINE=InnoDB;

○ Il primo corso avrà codice 1, il secondo 2, ecc...


○ Il valore iniziale del contatore può essere modificato

> ALTER TABLE univ.corso AUTO_INCREMENT = 100;

○ I codici che tornano disponibili dopo l'eliminazione di corsi non vengono riusati, a
meno che il contatore non venga reimpostato al valore iniziale

LABORATORIO DI BASI DI DATI 10

Potrebbero piacerti anche