CREATE DATABASE IF NOT EXISTS baza;
SHOW DATABASES LIKE 'b%'; SELECT c2, 50 IN (c2) FROM t1;
USE baza; SELECT c1, c1 LIKE '%top' FROM t1;
DROP DATABASE baza; SELECT LEAST (c1,c2,c3) AS ‘val min linie’ FROM t3;
CREATE TABLE IF NOT EXISTS tabel1 ( SELECT GREATEST (c1,c2,c3) FROM t3;
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, SELECT INTERVAL (c1,c2,c3,c4,c5) FROM t3;
c2 VARCHAR(100)/TEXT/CHAR,
SELECT C1=C2 FROM T2;
c3 TEXT/DATE/TIME/DATETIME,
SELECT BINARY C1=C2 AS 'Binar' from T2;
c5 TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP, SELECT ABS(-15);
c6 DECIMAL(5, 2), SELECT TRUNCATE (15.985,2);
c7 INT1 UNSIGNED , SELECT POW(5,3);
c8 FLOAT/DOUBLE, SELECT SQRT(25);
c9 BOOLEAN, SELECT SIGN (5);
c10 ENUM('opt1', 'opt2', 'opt3') ); IFNULL(exp_verif, exp_retrun) from t5;
CREATE TABLE IF NOT EXISTS tabel2 ( NULLIF(expresie1, expresie2) from t5;
C1 INT1 UNSIGNED PRIMARY KEY AUTO_INCREMENT, SELECT LPAD('ABC',10,'T') FROM t1;
C2 INT1 UNSIGNED, SELECT RPAD('ABC',10,'T') FROM t1;
C3 INT1 UNSIGNED,
FOREIGN KEY(C2) REFERENCES tabel1(c2),
SELECT CONV(15,10,2);
FOREIGN KEY(C3) REFERENCES tabel1(c3) );
SELECT CONV('DF', 16, 10);
SHOW TABLES FROM baza LIKE ‘%2';
SELECT CONCAT_WS("-", "Ana", "merge", "la", "magazin");
DROP TABLE IF EXISTS tabel2;
DESCRIBE tabel1; SELECT LTRIM(' alalalala') AS LTRIM;
CREATE TABLE tabel_duplicat LIKE tabel_nou; SELECT RTRIM('alalalala ') AS RTRIM;
CREATE TABLE tabel_duplicat c1,c2 FROM tabel_nou; SELECT TRIM(' alalalala ') AS trim;
CREATE TEMPORARY TABLE t1 (c1 INT3); SELECT TRIM('$' FROM '$$$$$$$$$$Ana$$$')
ALTER TABLE tabel1 RENAME tabel_nou; SELECT LCASE("Ana are MERE");
ALTER TABLE tabel1 DROP COLUMN c1; SELECT UCASE("Ana are MERE");
ALTER TABLE tabel1 ADD COLUMN c11 INT1 FIRST; SELECT SUBSTR("Ana are mere ", 5) ;
ALTER TABLE tabel1 ADD COLUMN c12 AFTER c3; SELECT SUBSTR("Ana are mere ", 5, 7) ;
ALTER TABLE tabel1 ALTER COLUMN c1 SET DEFAULT 10; SELECT SUBSTRING("Ana are mere ", 5, 7) ;
ALTER TABLE tabel1 ALTER COLUMN c1 DROP DEFAULT; SELECT SUBSTRING('Ana are mere si pere ' from 5 for 7);
ALTER TABLE tabel1 CHANGE COLUMN c1 cost INT8 DEFAULT 5 NOT NULL; SELECT MID("Ana are mere ", 5, 7) ;
INSERT INTO t1 (c2, c3) VALUES (5,'intel'); SELECT (MID('MYSAMPLE' , 2, 3) = SUBSTRING('MYSAMPLE' , 2,3));
SELECT LOCATE ('mere' , 'ana are mere si mere');
SELECT * FROM tari WHERE (populatie > 50 AND suprafata < 500); SELECT LOCATE ('mere' , 'ana are mere si mere',10);
SELECT * FROM tari WHERE (capitala LIKE '%a%' OR suprafata < 600); SELECT INSTR('ana are mere si mere' , 'mere');
SELECT * FROM tari WHERE (capitala LIKE '%a%' XOR suprafata < 600); SELECT REPLACE('ana are mere si mere', 'm', 'p');
SELECT nume, suprafata, suprafata*2 AS dublu FROM tari WHERE (suprafata*2) >800; SELECT INSERT('Ana are mere si mere', 9, 4, 'pere');
SELECT COUNT(*) FROM tari WHERE capitala LIKE'%b%'; SELECT DATE_ADD('2022-05-15' , interval 3 day);
SELECT * FROM tari WHERE nume != 'sua' AND populatie BETWEEN 30 AND 80; SELECT DATE_SUB('2022-05-15' , interval 3 MONTH);
SELECT * FROM tari WHERE nume != 'sua' AND pop < 60 ORDER BY nume ASC LIMIT 3; SELECT DATE_ADD('2022-05-15 10:00:00' , interval 35 MINUTE);
SELECT * FROM tari WHERE (nume!='Nigeria' and populatie not between 30 and 60); SELECT YEAR("2022-05-15");
SELECT CONCAT('Tara ',nume,' are suprafta de ',suprafata,' KMP si ca nr de locuitori are SELECT MONTH("2022-05-15");
', populatie,' MILIOANE' )as FRAZA_CMPCT FROM tari; SELECT DAYOFYEAR("2022-05-15");
SELECT 8, 8+3, 8-3, 3*4*2, 8/3, 8 DIV 3, 8%3; SELECT NOW(), DATE_ADD(NOW(), INTERVAL 10 MINUTE);
SELECT DAY (CURDATE()), MONTH (CURDATE()), YEAR (CURDATE()); SELECT NOW(), DATE_SUB(NOW(), INTERVAL 10 MINUTE);
SELECT HOUR(NOW()), MINUTE(NOW()), SECOND (NOW()); SELECT DATE_FORMAT('2022-05-15' , '%W , %M , %e ,%Y');
SELECT nume, populatie, populatie > 100 FROM tari; SELECT STR_TO_DATE('2022/05/15/10/00/00' , '%Y/%m/%d/%H/%i/%s');
SELECT MIN(populatie), MAX(populatie) FROM tari;
SELECT SUM(populatie) FROM tari; SELECT @@sql_mode;
SELECT AVG(populatie) FROM tari; SET sql_mode='';
SELECT DISTINCT(nume) FROM tari; SET sql_mode='traditional';
SELECT COUNT(DISTINCT(nume)) FROM tari; CREATE TABLE T1 (id INT1, nume VARCHAR(50), INDEX(id));
CREATE TABLE T2 (varsta INT1 UNIQUE, strada VARCHAR(50));
id_persoana INT1 UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, CREATE TABLE T4 (id_client INT2 PRIMARY KEY AUTO_INCREMENT, salariu
UPDATE persoane SET salariu = salariu*1.2 WHERE nume = 'Florescu'; INT1, nume VARCHAR(25));
SELECT YEAR(CURDATE())-YEAR(data_nasterii) FROM persoane; ALTER TABLE t3 CHANGE COLUMN c1 c1 FLOAT DEFAULT 100.5 NOT NULL;
DELETE FROM persoane WHERE functie = 'Zidar'; c1 ENUM('popescu', '23', 'popescu@yahoo.com', '1970;02,32');
SELECT *, if(varsta > 30, 'varsta mai mare decat 30', 'varsta mai mica decat 30') as c1 SET('popescu', '23', 'popescu@yahoo.com', '1970-02-32');
EVALUARE FROM persoane; CREATE INDEX ind_simplu ON t2 (ID_client);
SELECT CHAR_LENGTH(nume) FROM persoane; CREATE UNIQUE INDEX ind_unique ON t3(ID_client);
SELECT UPPER(nume) FROM persoane; ALTER TABLE t4 ADD PRIMARY KEY (ID_client);
SELECT LOWER(nume) FROM persoane;
SELECT LEFT(nume,3), RIGHT(nume,3) FROM persoane; PRIMARY_KEY – FOREIGN_KEY:
SELECT DAYOFWEEK(NOW()); CREATE TABLE IF NOT EXISTS studenti (
SELECT WEEKDAY(NOW()); ID_student INT1 UNSIGNED PRIMARY KEY AUTO_INCREMENT,
SELECT CASE (WEEKDAY(data_nasterii)) nume_student TEXT);
WHEN 0 THEN 'luni' WHEN 1 THEN 'marti' CREATE TABLE IF NOT EXISTS note (
WHEN 2 THEN 'miercuri’ WHEN 3 THEN 'joi' ID_nota INT1 UNSIGNED PRIMARY KEY AUTO_INCREMENT,
WHEN 4 THEN 'vineri' WHEN 5 THEN 'sambata' ID_stud INT1 UNSIGNED NOT NULL,
ELSE 'duminica' END AS cazuri FROM persoane; disciplina TEXT,
SELECT FLOOR(RAND()*100); FOREIGN KEY(ID_stud) REFERENCES studenti(ID_student) ON UPDATE
SELECT CEIL(RAND()*100); CASCADE ON DELETE CASCADE );
SELECT ROUND(RAND()*100); UPDATE student SET ID_student = 5 WHERE ID_student = 1;
UPDATE pers SET data = data + INTERVAL 3 DAY; DELETE FROM student WHERE ID_student = 5;
SELECT * FROM clienti INNER JOIN contracte ON ID_client = ID_cl; DELIMITER #
SELECT nume_client, telefon, data_semnarii, clauza_contractuala FROM CREATE PROCEDURE categorie_prod(IN var_id INT, OUT var_categorie
clienti INNER JOIN contracte ON ID_client = ID_cl; VARCHAR(100))
SELECT nume_client, telefon, data_semnarii, clauza_contractuala FROM BEGIN
clienti INNER JOIN contracte ON clienti.ID_client = contracte.ID_cl; SELECT c.denumire INTO var_categorie FROM categorii c
SELECT CONCAT('Clientul ',clienti.nume_client, ‘ are telefonul ', clienti.telefon, INNER JOIN produse p ON c.id_categorie = p.id_categorie
', are un contract in orasul ', locatii.oras, ' pe strada ',locatii.strada, ', semnat in WHERE p.id_produs = var_id;
data de ', contracte.data_semnarii, ', valabil pana la data de ', END #
contracte.clauza_contractuala ) AS Prezentare_contract DELIMITER ;
FROM contracte CALL categorie_prod(6, @rezultat);
LEFT JOIN clienti ON contracte.ID_cl = clienti.ID_client SELECT @rezultat;
RIGHT JOIN locatii ON contracte.ID_lt = locatii.ID_locatie;
DELIMITER #
VARIABILE: CREATE PROCEDURE calc_patrat(INOUT nr INT2 UNSIGNED)
DECLARE v1 INT2; BEGIN
DECLARE v2, v3 VARCHAR(50); SET nr := nr * nr;
DECLARE v4 INT4 DEFAULT 500; END #
SET v1 := 100; DELIMITER ;
SELECT salariu INTO v2 FROM angajati WHERE ID_angajat = 1; SET @nr_rez := 4;
SELECT nume_angajat, salariu INTO v5, v6 FROM angajati WHERE ID_angajat = 1; CALL calc_patrat(@nr_rez);
SET @v8 := 1; #var de sesiune SELECT @nr_rez;
SELECT nume_coloana INTO @v9 FROM nume_tabela WHERE ... DROP PROCEDURE calc_patrat;
FUNCTII: TRIGGER:
SET GLOBAL log_bin_trust_function_creators = 1; CREATE TRIGGER nume_trigger BEFORE/AFTER INSERT/UPDATE/DELETE
DELIMITER # ON nume_tabela FOR EACH ROW
CREATE FUNCTION conversie(v_pret DOUBLE) BEGIN
RETURNS DOUBLE (instructiuni);
BEGIN END #
DECLARE v_euro DOUBLE;
SET v_euro := v_pret/5; DELIMITER #
RETURN v_euro; CREATE TRIGGER update_angajati AFTER UPDATE ON employees FOR EACH
END# ROW
DELIMITER ; BEGIN
DELIMITER # INSERT INTO employees_audit (employeenumber, lastname,
CREATE FUNCTION nr_bucati(v_ID_produs INT)acelasi tip de data cu id_produs changedate) VALUES (OLD.employeenum
RETURNS INT ber, OLD.lastname, NOW()) ;
BEGIN END #
DECLARE v_total INT; DELIMITER ;
SELECT SUM(cantitate) INTO v_total FROM produse_comandate WHERE DROP TRIGGER IF EXISTS update_angajati;
id_produs = v_ID_produs;
RETURN v_total;
END# DELIMITER #
DELIMITER ; CREATE TRIGGER verif_imprumut BEFORE INSERT ON
SELECT nr_bucati(1); imprumuturi FOR EACH ROW
SELECT denumire_produs, nr_bucati(id_produs) AS total FROM produse ; BEGIN
DROP FUNCTION nume; IF(NEW.data_ora_imprumut > NOW())
DELIMITER # THEN SET NEW.data_ora_imprumut := NOW();
CREATE FUNCTION crestere_pret(v_ID_produs INT) END IF;
RETURNS DOUBLE END#
BEGIN DELIMITER ;
DECLARE v_pret_marit DOUBLE;
UPDATE produse SET pret = pret*2 WHERE id_produs = v_ID_produs; IF (EXISTS(SELECT employeeNumber FROM employees WHERE
SELECT pret INTO v_pret_marit FROM produse WHERE id_produs = employeeNumber = NEW.employeeNumber))
v_ID_produs; THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'ID-ul de
RETURN v_pret_marit; angajat exista deja, nu mai poate fi inserat';
END# END IF;
DELIMITER ; SELECT crestere_pret(1);
COLLATE:
PROCEDURI: CREATE TABLE IF NOT EXISTS t2 (c1 VARCHAR(10) CHARACTER
DELIMITER # SET UTF8 COLLATE UTF8_romanian_ci);
CREATE PROCEDURE nr_clienti()
BEGIN IF(a>b, ’a mai mare ca b’, ’a mai mic ca b’);
SELECT COUNT(*) FROM clienti;
END # DELIMITER #
DELIMITER ; CALL nr_clienti(); CREATE TRIGGER modificare_status AFTER DELETE ON
DELIMITER # CREATE PROCEDURE nr_produse_comandate(IN x YEAR) orderdetails FOR EACH ROW
BEGIN BEGIN
SELECT DISTINCT p.denumire_produs FROM produse_comandate pc UPDATE orders SET status = 'sters' WHERE
INNER JOIN produse p ON pc.id_produs = p.id_produs orderNumber = OLD.orderNumber ;
INNER JOIN comenzi c ON pc.id_comanda = c.id_comanda -- se preia din vechea valoare stearsa din tabela
WHERE YEAR(data_comanda) = x; orderdetails
END # DELIMITER ; END#
CALL nr_produse_comandate(2022); DELIMITER ;