Subiectul acestei sedinte este invatarea unor elemente de limbaj de definire a structurilor de date. Se definesc, modifica si distrug baze de date, tabele, coloane.
Exercitii
#Creare si stergere baza de date #Inlocuiti numele numeprenume12 cu numele rezervat pentru dumneavoastra CREATE DATABASE numeprenume12; DROP DATABASE numeprenume12; #Modificarea unei baze de date; se modifica setul de caractere asociat cu baza de date; nu era definit nici un #set de caractere, se va defini tipul de caractere 'ascii' CREATE DATABASE numeprenume12; ALTER DATABASE numeprenume12 CHARACTER SET = 'ascii'; #Folosirea comenzii ALTER DATABASE; se adauga, pe langa setul de caractere definit anterior, si un altul ALTER DATABASE numeprenume12 CHARACTER SET = 'utf8' COLLATE = 'utf8_bin'; #Lista bazelor de date definite: SHOW DATABASES; #Lista tabelelor definite intr-o baza de date SHOW TABLES FROM numeprenume12; #Crearea unei tabele USE numeprenume12; CREATE TABLE t1 (c1 INT UNIQUE AUTO_INCREMENT, c2 INT DEFAULT 1, c3 DATE, c4 TIME, c5 FLOAT, c6 DOUBLE, c7 CHAR(20), PRIMARY KEY (c1)); #Prezentarea structurii unei tabele describe t1; SHOW COLUMNS FROM t1; # Crearea unei tabele (un al doilea exemplu) # Se defineste si o cheie primara, compusa CREATE TABLE numeprenume12.persoana (nume char(10), prenume char(10), adresa char(30), telefon int, PRIMARY KEY (nume, prenume)); # Descrierea structurii tabelei create describe numeprenume12.persoana; # Crearea unei tabele (un al treilea exemplu) # Se defineste o cheie primara, unica, auto-incrementata, este o cheie artificiala # Se definesc si seturi de caractere pentru fiecare coloana CREATE TABLE traducere (token_id INT UNIQUE AUTO_INCREMENT PRIMARY KEY, token_nume char(20), engleza char(50) CHARACTER SET'ascii', romana char(50) CHARACTER SET 'utf8', chineza char(50) CHARACTER SET 'big5'); ## ## Creare tabela folosind instructiunea select ## Fiecare coloana a noii tabele se selecteaza dintr-o coloana a unei tabele preexistente CREATE TABLE translation SELECT token_nume as token_name, engleza as English, romana AS Romanian FROM traducere; # Se adauga si o coloana noua CREATE TABLE translation2 (French char(50)) SELECT token_nume as token_name, engleza as English, romana AS Romanian FROM traducere; ## ## Creare tabela folosind instructiunea LIKE (pentru duplicarea structurii) ## CREATE TABLE dictionar LIKE traducere; ## ## Stergerea unei coloane ## ALTER TABLE traducere DROP COLUMN chineza; ## ## Adaugarea unei coloane ## ALTER TABLE traducere ADD COLUMN chineza char(50); ## ## Modificarea unei coloane, schimbarea valorii implicite ## pentru o coloana ## ALTER TABLE traducere ALTER COLUMN chineza SET DEFAULT 'Necompletat'; #Modificarea unei coloane, se elimina definitia valorii default ALTER TABLE traducere ALTER COLUMN chineza DROP DEFAULT; ALTER TABLE traducere CHANGE COLUMN chineza japoneza char(50); #Schimbarea pozitiei unei coloane relativ la celelalte coloane ALTER TABLE translation2 MODIFY COLUMN French char(60) AFTER Romanian; #redenumirea unei tabele ALTER TABLE translation2 RENAME TO translate; ## ## Modificarea unei tabele - adaugarea unei chei ## ALTER TABLE translation ADD PRIMARY KEY (token_name); ## ## Modificarea unei tabele - stergere unei chei ## ALTER TABLE translation DROP PRIMARY KEY; ## ## Stergerea unei tabele; se foloseste 'IF EXISTS' pentru a testa existenta ## DROP TABLE IF EXISTS traducere; DROP TABLE IF EXISTS translation;Exercitii suplimentare
- Creati o tabela agenda cu coloanele: nume, prenume, adresa, varsta, telefon
- Inlocuiti coloana telefon cu mobil;
- Adaugati o coloana telefon_fix;
- Modificati coloana varsta sa aiba valoarea default 20
- Modificati tabela sa aiba o coloana id care sa fie valoare intreaga, auto-incrementata, unica
- Creati o tabela noua prieteni care sa copieze structura tabelei agenda
- Creati o tabela noua friends care sa copieze structura si continutul tabelei agenda