You are on page 1of 4

BAZE DE DATE

Seminar 9

DESPRE CE VOM DISCUTA:


Limbajul de definire a datelor
 Instrucțiunile CREATE, DROP, ALTER – sesiune de întrebări și răspunsuri;
Limbajul de manipulare a datelor, aplicații cu:
 Instrucțiunile INSERT, DELETE, TRUNCATE, UPDATE, SELECT.

Pasul 1: Ne asiguram ca avem baza de date in MySQL

SHOW DATABASES; /* vizualizăm bazele de date incarcate in MySQL */

Pasul 2: Încărcarea bazei de date în MySQL

 Descărcăm baza de date SQL „sakila” de la adresa:


https://dev.mysql.com/doc/sakila/en/sakila-installation.html
https://dev.mysql.com/doc/index-other.html

 Dezarhivăm baza de date într-un fişier în PC (ex: c:\bazedate_sql)


 Deschidem MySQL Command Line Client

/* script pentru cei care nu au incarcata baza de date sakila in MySQL*/

SOURCE C:/bazedate_sql/sakila-db/sakila-schema.sql; /* script pentru a crea structura bazei de date */


SOURCE C:/bazedate_sql/sakila-db/sakila-data.sql; /*script pentru a popula structura bazei de date cu
informatii (date) */
SOURCE D:/Altele/MySQL/sakila-db/sakila-data.sql;

Pasul 3: Accesăm baza de date din MySQL Command Line Client

SHOW DATABASES;
USE sakila;
SHOW TABLES;
Pasul 4: Exerciţii: interogări SQL

/* Q1. vizualizati structura tabelelor „actor” si „film” din baza de date sakila in MySQL*/
DESCRIBE actor;
DESCRIBE film;

/* Q2. Copiati partial tabelul „film” intr-un nou tabel sub numele de „film_test”, pastrand doar coloanele:
film_id, title , length, rating */

CREATE TABLE film_test


SELECT film_id, title , length, rating
FROM film;

SHOW TABLES;
SELECT * FROM film_test;

/* Q3. Actualizati lungimea (length) filmului „ZORRO ARK” de la 50 min la 60 min */


SELECT * FROM film_test WHERE title ='ZORRO ARK';

UPDATE film_test SET length = 60 WHERE title = 'ZORRO ARK';

update film_test
set length='50'
where title='ZORRO ARK';

/* Q4. Inserati un nou film „NOUL MEU FILM FAVORIT” de durata de 60 min */
INSERT INTO film_test ( film_id, title, length) VALUES
(1001, 'NOUL MEU FILM FAVORIT', 60);
SELECT * FROM film_test WHERE title ='NOUL MEU FILM FAVORIT';

/* Q5. Cate titluri distincte de film se regasesc in tabel */


SELECT COUNT(DISTINCT title) FROM film_test;

/* Q6. Sterge inregistrarile din tabelul „film_test” */


TRUNCATE TABLE film_test;
SELECT * FROM film_test;
SHOW TABLES;

/* Q7. Sterge tabelul „film_test” din baza de date */


DROP TABLE film_test;
SHOW TABLES;

/* Q8. Ce actori au prenumele (first name) 'Tom' */


SELECT * FROM actor;
SELECT * FROM actor WHERE first_name = 'Tom';

/* Q9. Ce actori au numele de familie (last name) 'Neeson' */


SELECT * FROM actor WHERE last_name LIKE 'Neeson';
select * from actor WHERE last_name ='Neeson';
/* Q10. Câte nume de familie (last name) distincte ale actorilor există?*/

SELECT COUNT(DISTINCT last_name) FROM actor;


SELECT COUNT(last_name) FROM actor;

/* Q11. Câte nume de familie (last name) nu se repetă?*/

SELECT last_name FROM actor GROUP BY last_name HAVING count(*) = 1;

/* Q12. Câte nume de familie (last name) apar de mai mult de 1 dată?*/
SELECT last_name FROM actor GROUP BY last_name HAVING count(*) > 1;

/* Q13. Afișați numele și prenumele fiecărui actor într-o singură coloană cu litere mari. Denumiți coloana
Actor Name.*/

SELECT UPPER(CONCAT(first_name, ' ', last_name)) 'Actor Name'


FROM actor;

/* Q14. Găsiți numărul de identificare (actor_id), numele (last_name) și prenumele (first_name) unui actor,
din care știți doar prenumele: "Jon". Care este o interogare pe care ați utiliza-o pentru a obține aceste
informații?*/

SELECT actor_id, first_name, last_name


FROM actor
WHERE first_name = 'Jon';

SELECT actor_id, LOWER(first_name), last_name


FROM actor
WHERE first_name = 'Jon';

SELECT actor_id, UPPER(first_name), last_name


FROM actor
WHERE first_name = 'Jon';

SELECT actor_id, LOWER(first_name), last_name


FROM actor
WHERE LOWER(first_name) = LOWER('Jon');

/* Q15. Găsiți toți actorii al căror nume de familie conține literele: "GEN". */

SELECT *
FROM actor
WHERE last_name LIKE '%gen%';
REFERINȚE
SET
https://dev.mysql.com/doc/refman/8.0/en/set.html

SELECT DISTINCT
https://www.w3schools.com/sql/sql_distinct.asp

COUNT
https://www.mysqltutorial.org/mysql-count/

STRING FUNCTIONS AND OPERATORS


https://dev.mysql.com/doc/refman/8.0/en/string-functions.html

HAVING
https://www.w3schools.com/sql/sql_having.asp

CONCAT()
https://www.w3resource.com/mysql/string-functions/mysql-concat-function.php

UPPER
https://www.mysqltutorial.org/mysql-string-functions/mysql-upper/

LOWER
https://www.w3schools.com/sql/func_mysql_lower.asp

LIKE
https://dev.mysql.com/doc/refman/8.0/en/pattern-matching.html
https://www.mysqltutorial.org/mysql-like/
https://www.w3schools.com/sql/sql_like.asp
https://www.w3resource.com/mysql/comparision-functions-and-operators/like.php
...
Și alte surse 😊

You might also like