0% found this document useful (0 votes)
35 views2 pages

SQL Database and Table Operations Guide

Uploaded by

Vlad Stoica
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views2 pages

SQL Database and Table Operations Guide

Uploaded by

Vlad Stoica
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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 ;

You might also like