Sintassi di base di SQL: Tabelle e basi di dati di generazione e di modificazione

Questa lezione privata mostra la sintassi e gli ordini di base e della lingua di SQL.

Basi di dati di generazione e cadenti

In primo luogo, lascili vedono che basi di dati già esistono nell'assistente di MySQL. Possiamo osservare queste informazioni usando l'ordine di ESPOSIZIONE. Entri in quanto segue (tranne il mysql > la parte) nel cliente della sezione comandi di MySQL, seguito da un ritorno:

BASI DI DATI di ESPOSIZIONE > del mysql;

ci sono due basi di dati già generate nell'assistente di MySQL. La base di dati del mysql contiene le informazioni della gestione per l'assistente di MySQL e non dovrebbe essere modificata. L'altra base di dati, prova, è esattamente che cosa suona come: una prova per l'assistente di MySQL. La base di dati della prova non contiene nulla e può essere rimossa sicuro a richiesta.

Generazione della base di dati

Così come aggiungiamo la nostra propria base di dati nell'assistente di MySQL? Per fare questo, usiamo l'ordine di GENERAZIONE. Diciamoli desiderano generare una base di dati denominata mydata; useremmo la seguente sintassi.

Nota Il seguente piano presenta le limitazioni del carattere e di lunghezza che sono imposte ai nomi delle basi di dati, delle tabelle, delle colonne e degli pseudonimi.
Contrassegno Lunghezza Massima Caratteri Validi
Base di dati 64 Tutti i caratteri validi di nome di indice escludono "." e "/".
Tabella 64 Tutti i caratteri validi di nome di indice escludono "." e "/".
Colonna 64 Tutti sono validi.
Altrimenti detto 15 Tutti sono validi.
il mysql > GENERA il mydata della BASE DI DATI;
  

Noti che il punto e virgola è aggiunto dopo ogni ordine nella lingua di SQL. Quando premiamo il ritorno dopo avere introdotto questo comando, la sezione comandi li informa che la domanda era giusta.

Ora che abbiamo generato la base di dati, possiamo accertarli siamo sull'assistente ancora usando l'ordine di ESPOSIZIONE, come segue:

BASI DI DATI di ESPOSIZIONE > del mysql;

Quando premiamo il ritorno con questo ordine, possiamo vedere che la nostra base di dati è stata aggiunta alla lista (nota che la lista è nell'ordine alfabetico, non l'ordine in cui le basi di dati sono state generate).

Cadere una base di dati

Ora rimuoveremo la base di dati dall'assistente. Si noti che quando facciamo questo, tutti i dati (se c'è ne) sarà perso. Per rimuovere una base di dati, "la cadiamo" dall'assistente usando l'ordine di GOCCIA. Così per cadere la nostra nuova base di dati di mydata, useremmo il seguente ordine:

mydata della BASE DI DATI di GOCCIA > del mysql;

Quando eseguiamo questo ordine da ritorno di pressione, la domanda sarà segnalata come bene.

Ora, se elenchiamo ancora le basi di dati usando l'ordine di ESPOSIZIONE:

BASI DI DATI di ESPOSIZIONE > del mysql;

... possiamo vedere che la nostra base di dati di mydata non è più visibile sulla lista.

La colonna (campo) scrive dentro MySQL

Prima che discutiamo la creazione delle tabelle all'interno delle basi di dati, ora è un buon tempo accennare i tipi differenti della colonna che possiamo avere in tabelle.

Ad ogni colonna in una tabella deve essere assegnata un tipo, che rappresenta il tipo di informazioni che il campo sta andando tenere. Qui è una lista completa dei tipi che disponibili potete usare:

Tipo Descrizione
TINYINT Un numero intero molto piccolo. La gamma firmata è 128 a 127. La gamma unsigned è 0 - 255.
SMALLINT Un piccolo numero intero. La gamma firmata è 32768 a 32767. La gamma unsigned è 0 - 65535.
MEDIUMINT Un numero intero di medie dimensioni. La gamma firmata è 8388608 a 8388607. La gamma unsigned è 0 - 16777215.
INTERNO Un numero intero graduato normale. La gamma firmata è 2147483648 a 2147483647. La gamma unsigned è 0 - 4294967295.
BIGINT Un grande numero intero. La gamma firmata è 9223372036854775808 a 9223372036854775807. La gamma unsigned è 0 - 18446744073709551615.
GALLEGGIANTE Un piccolo, numero di virgola mobile di singolo-precisione che non può essere unsigned. La gamma firmata è 3.402823466E+38 a 1.755494351E.38, a 0 ed a 1.755494351E.38 a 3.402823466E+38.
DOPPIO Un numero di virgola mobile a precisione doppia che non può essere unsigned. La gamma firmata è 1.7976931348632157E+308 a 2.2250738585072014E.308, a 0 ed a 2.2250738585072014E.308 a 1.7976931348632157E+308.
DECIMALE Un numero di virgola mobile non imballato che non può essere unsigned. Gli impianti come una colonna "del carbone" in quanto il numero è memorizzato come stringa (cioè, ogni numero usa un carattere nella stringa).
DATA Una data. La gamma è 1000-01-01 - 9999-12-31 ed è nella disposizione YYYY-MM-DD.
TEMPO Un momento. La gamma è 838:59:59 a 838:59:59 ed è nella disposizione HH:MM:SS.
DATETIME Una combinazione della data e del tempo. La gamma è 1000-01-01 00:00:00 a 9999-12-31 21:59:59 ed è nella disposizione YYYY-MM-DD HH:MM:SS.
YEAR[(2|4) ] Un anno in 2 o disposizione 4-digit (difetto è 4). La gamma è 1901 - 2155 ed anche 0000.
TIMESTAMP Un timestamp. La gamma è 1970-01-01 00:00:00 ad un momento durante l'anno 2037 nella disposizione YYYYMMDDHHMMSS.
CHAR(length) Una stringa di lunghezza stabilita che di destra-è riempita sempre con gli spazi alla lunghezza specificata una volta immagazzinata. La gamma è 1 - 255 caratteri secondo "la lunghezza" specificata.
VARCHAR Una stringa variable-length.
TINYBLOB/ TINYTEXT Un oggetto binario molto piccolo. Una lunghezza massima di 255 caratteri. * Veda la NOTA sotto la tabella.
BLOB/TEXT Un oggetto binario. Una lunghezza massima di 65535 caratteri. * Veda la NOTA sotto la tabella.
MEDIUMBLOB/ MEDIUMTEXT Un oggetto binario medio. Una lunghezza massima di 16777215 caratteri. * Veda la NOTA sotto la tabella.
LONGBLOB/ LONGTEXT Un grande oggetto binario. Una lunghezza massima di 4294967295 caratteri. * Veda la NOTA sotto la tabella.
ENUM('val1 ', 'val2 '...) Un'enumerazione. Una lista dei valori della stringa di cui soltanto uno può essere selezionato. Un massimo di 65535 valori distinti.
SET('val1 ', 'val2 '...) Un insieme. Un oggetto della stringa che può avere zero o più valori, ciascuno di cui deve essere scelto dalla lista (cioè, 'val1 ', 'val2 ', ecc.). Un massimo di 64 caratteri.
Nota L'unica differenza fra i tipi di testo e di BLOB è quella per la fascicolazione ed i confronti, un BLOB è contenitore-sensibili, mentre il tipo di testo non è contenitore-sensibile.

Generando, modificando e Tabelle cadenti

Generazione Delle Tabelle

Ora che conosciamo i tipi possibili per le colonne in nostre tabelle, guardiamo come realmente andiamo circa la generazione della tabella.

Diciamo che desideriamo generare una tabella per tenere alcuni particolari dell'utente all'interno di una base di dati.

Desideriamo immagazzinare il titolo dell'utente, nome, cognome, età, indirizzo di E-mail e la data che l'utente è stato aggiunto alla base di dati. Così richiederemo le seguenti colonne in nostra tabella:

Età EmailAddress DateAdded Del Cognome Di Firstname Di 
Titolo

Prima che entriamo in come realmente aggiungerlo, li lasciamo in primo luogo pensiamo come stiamo andando immagazzinare il information.or di più al punto, che tipi richiediamo per ciascuna delle colonne.

Per il titolo, il nome ed il cognome, possiamo usare il tipo di testo, poichè contiene l'abbondanza dei caratteri per tenere conto tutte le possibilità.

Nota VARCHAR può funzionare più velocemente ed è forse una scelta migliore se la lunghezza della stringa può essere limitata più meno di 255 caratteri.

Per l'età, un TINYINT unsigned sarebbe una scelta evidente, poichè le età sono numeriche e nessuno è stata conosciuta mai per vivere oltre 255. Per l'indirizzo di E-mail, possiamo usare ancora un tipo di testo, poichè ci darà lo spazio di immagazzinaggio notevole per l'indirizzo. Per concludere, per la data che l'utente è stato aggiunto alla tabella, possiamo usare un TIMESTAMP.

Nota Con Java, è possibile usare un tipo di dati INTERNO ed immagazzinare System.currentTimeMillis()/1000 come il valore. Questo valore può più successivamente essere preso dalla base di dati. Allora moltiplichilo per 1000 e convertalo in tipo della DATA (cioè, data = nuovo Date(value);). Ciò è utile quando fa la localizzazione e/o la conversione fra le basi di dati differenti

Il TIMESTAMP inoltre ha una proprietà grande in quanto il tempo e la data possono essere richiamati automaticamente nella base di dati.

Ora che conosciamo quali tipi desideriamo per le nostre colonne, dobbiamo generare una base di dati per aggiungere la tabella in. Generiamo una base di dati denominata myinfo con il seguente ordine:

il mysql > GENERA il myinfo della BASE DI DATI;

Quando eseguiamo questo ordine, la sezione comandi dovrebbe segnalare che la domanda era giusta. Possiamo ora controllare che la nostra base di dati sia stata generata con il seguente ordine:

BASI DI DATI di ESPOSIZIONE > del mysql;

Ora dobbiamo dire a MySQL a che desideriamo realizzare le azioni sulla base di dati di myinfo. Ciò è compiuta usando l'ordine di USO:

mysql > myinfo di USO;  
Nota Senza USO, tutte le tabelle nella base di dati di myinfo dovrebbero riferirsi a come myinfo.mytable, che è naturalmente abbastanza inopportuno.

Dopo l'esecuzione del questo ordine, tutte le dichiarazione di DDL (linguaggio di definizione di dati) e di DML (lingua di manipolazione di dati) che sono eseguite interesseranno la base di dati in uso, che in questo caso è la nostra base di dati di myinfo.

Ora che abbiamo nostra messa a punto della base di dati e aspettiamo per accettare gli ordini, possiamo generare la nostra tabella (che chiameremo userinfo) con la seguente dichiarazione:

il mysql > GENERA il userinfo della TABELLA (- > 
auto_increment INTERNO dell'identificazione, - > TESTO di titolo, - > 
TESTO del firstname, - > TESTO del cognome, - > età TINYINT, - > 
TESTO del email, - > dateadded il TIMESTAMP, - > KEY(id) PRIMARIO);
Nota il auto_increment non è un'opzione standard di SQL. MSSQL (Microsoft SQL) ha un'opzione simile ed in modo da fa Postgre, ma l'oracolo non ha un senso fare questo poichè un'opzione della tabella di generazione. Deve essere fatto con le sequenze e gli inneschi.

Rompiamo questo sull'poco in modo da possiamo vedere che cosa sta accadendo. In primo luogo dichiariamo che desideriamo generare una tabella entrando GENERIAMO LA TABELLA. Dopo specificheremo il nome che desideriamo denominare la tabella; in questo caso, il nome è userinfo. Allora usiamo le parentesi per contenere tutte le colonne che richiediamo in nostra tabella e semplicemente elenchiamo tutti i nomi e tipi della colonna che richiediamo. Nota come abbiamo aggiunto un campo supplementare chiamato identificazione. Per concludere, noti l'aggiunta della chiave primaria come l'ultimo parametro. Ciò è usata per determinare come la tabella è ottimizzata all'interno della base di dati.

Possiamo ora controllare che la nostra tabella sia stata generata con successo eseguendo il seguente ordine:

TABELLE di ESPOSIZIONE > del mysql;

Nota potete anche osservare le colonne in una tabella usando il seguente ordine:

il mysql > DESCRIVE il userinfo;

Quando eseguite questo ordine, la sezione comandi visualizzerà tutti i particolari per ciascuna delle colonne nella tabella di userinfo.

Queste informazioni possono essere utili per entrambi che accertano la tabella sono state generate come voi hanno previsto e ricapitolare le colonne che una tabella contiene ad una data ulteriore.

Tabelle Di Modificazione

Così ora che sappiamo generare una tabella, li lasciamo guardare come andiamo circa la modificazione esso. La modificazione della tabella può variare semplicemente dal cambiare il tipo di una delle colonne alla aggiunta della colonna completamente nuova (o a rimuovere una colonna attuale).

Lascili primo sguardo a come cambiamo il nome di una colonna attuale. In nostra tabella di userinfo, abbiamo una colonna denominata firstname, ma li lasciamo ora cambiare questo per leggere il forename, un sinonimo per il nome della persona.

Per fare questo cambiamento, dobbiamo usare la seguente sintassi:

il mysql > ALTERA IL TESTO di forename del firstname del 
CAMBIAMENTO di userinfo della TABELLA;
Punta Sempre altamente è suggerito per progettare la base di dati prima della generazione esso perché ci può essere tabelle o struttura della base di dati di problemi modifying/altering dopo che ci siano dati inseriti nelle tabelle.

Nota anche dobbiamo assicurare il tipo di dati per la colonna così come i relativi vecchi e nuovi nomi.

Se descriviamo la tabella di userinfo con quanto segue comandi:

il mysql > DESCRIVE il userinfo;

... possiamo vedere che il firstname della colonna è stato cambiato titolo al forename.

Possiamo anche cambiare i tipi di dati delle colonne in tabelle. Diciamo che desideriamo cambiare la colonna di età da un TINYINT ad un INTERNO. Useremmo il seguente ordine:

il mysql > ALTERA il userinfo della TABELLA MODIFICA 
l'età INTERNA;

Dopo l'esecuzione del questo ordine, se descriviamo la tabella, possiamo vedere che il tipo è cambiato ad INTERNO.

Per concludere, è buono da sapere rimuovere i campi da una tabella (per esempio, se più non sono richiesti). Ora diciamo che più non richiediamo il campo di E-mail in nostra tabella di userinfo. Che cosa desideriamo fare deve "cadere" il campo dalla nostra tabella. Qui è la sintassi per la rimozione del campo di E-mail.

il mysql > ALTERA il email di GOCCIA di userinfo della 
TABELLA;

Una volta che questo ordine è eseguito, descriviamo la tabella con il seguente ordine:

il mysql > DESCRIVE il userinfo;

Tabelle (Di Rimozione) Cadenti

Rimuovendo le tabelle da una base di dati è molto semplice, ma senza uso attento può avere effetti disastrosi. La cosa principale alla nota è che quando cade una tabella, inoltre perdete tutti i dati contenuti all'interno della tabella. Di conseguenza, è sempre saggio sostenere una base di dati prima dell'esecuzione dei qualsiasi ordini di GOCCIA.

Ora guardiamo come cadiamo la tabella di userinfo dalla nostra base di dati di myinfo. Per fare questo, dobbiamo eseguire il seguente ordine nel cliente della sezione comandi di MySQL.

Nota Non potete cadere la tabella se ci sono rapporti reali ad altre tabelle che potrebbero rompere l'integrità della base di dati. Se i rapporti non sono "reali," le tabelle possono essere rimosse senza errori, ma l'integrità allora si compromette. Se il coordinatore non fa attenzione, la base di dati può permanente essere corrotta.

userinfo della TABELLA di GOCCIA > del mysql;

Una volta che questo ordine è eseguito, possiamo controllare che la tabella sia stata rimossa elencando che cosa pospone è attualmente nella nostra base di dati di myinfo eseguendo il seguente ordine:

TABELLE di ESPOSIZIONE > del mysql;

La tabella più non esiste nella base di dati.

ciò è un articolo aggiunto da George Ionescu


Diniego: Il nostro Web site non è responsabile delle informazioni contenute da questo articolo. Questo articolo in nessun modo riflette le viste, le opinioni, i pensieri o la credenza del personale dell'indice degli articoli.

Avviso di traduzione: Sintassi di base di SQL dell'articolo ": La generazione e delle tabelle e basi di dati modificare "sono state tradotte usando un servizio di traduzione automatizzato. Chiediamo scusa francamente per tutti gli errori di traduzione che hanno accaduto. Grazie per capire.

Online: 553 users browsing the articles directory