2SQL
2SQL
Exercice 1 :
```sql
SHOW DATABASES;
SOURCE HR_mysql_schema.sql;
SOURCE HR_mysql_data.sql;
SHOW DATABASES;
USE HR;
SHOW TABLES;
DESC EMPLOYEES;
DESC DEPARTMENTS;
DESC LOCATIONS;
DESC JOB_GRADES;
```
Exercice 2 :
```sql
SELECT * FROM DEPARTMENTS;
SELECT department_id, department_name FROM DEPARTMENTS;
SELECT department_id, department_name FROM DEPARTMENTS WHERE
manager_id = 100;
```
Exercice 3 :
```sql
SELECT last_name, salary FROM employees WHERE department_id = 80;
SELECT last_name, salary, salary*12 AS "salaire annuel" FROM employees
WHERE department_id = 80;
SELECT last_name, salary, salary + (salary * commission_pct) FROM employees
WHERE department_id = 80;
SELECT last_name, salary, salary + (salary * IFNULL(commission_pct, 0)) FROM
employees;
```
Exercice 4 :
```sql
SELECT last_name, salary, commission_pct FROM employees WHERE
commission_pct IS NULL;
SELECT last_name, salary, commission_pct FROM employees WHERE
commission_pct IS NULL ORDER BY salary DESC;
SELECT last_name, salary, commission_pct FROM employees WHERE
commission_pct IS NOT NULL ORDER BY salary DESC, commission_pct DESC;
SELECT last_name, job_id, hire_date FROM employees ORDER BY hire_date ASC
LIMIT 5;
SELECT DISTINCT job_id FROM employees;
```
Exercice 5 :
```sql
SELECT last_name, hire_date FROM employees WHERE YEAR(hire_date) = 1994;
SELECT last_name FROM employees WHERE last_name LIKE '__a%';
SELECT last_name, department_id FROM employees WHERE department_id IN
(20, 50) ORDER BY last_name ASC;
SELECT last_name, salary FROM employees WHERE salary BETWEEN 5000 AND
12000;
SELECT last_name, salary FROM employees WHERE salary NOT BETWEEN 5000
AND 12000;
SELECT last_name, job_id, salary FROM employees WHERE job_id IN ('SA_REP',
'ST_CLERK') AND salary NOT IN (2500, 3500, 7000);
```
Exercice 6 :
Les deux requêtes diffèrent dans leur résultat à cause de la priorité des
opérateurs logiques :
- Requête a : évalue d'abord (job_id = 'AD_PRES' AND salary > 15000), puis OR
avec job_id = 'SA_REP'
- Requête b : regroupe d'abord la condition OR avec les parenthèses, puis
applique AND salary > 15000