DataTutoriel SQL

Implémentation d’opérations d’algèbre relationnelle en SQL

Dans ce tutoriel, nous allons parler de l’implémentation des opérations de l’algèbre dans le langage SQL.

Algèbre relationnelle unaire et binaire : La jointure SQL

Nous expoons ci-après des exemples des opérations algébrique:

Opérations

1. Opérations spéciales unaires

Restriction (eng. k. restriction or selection)
Projection (eng. k. projection)

2. Opérations binaires de la théorie des ensembles

Somme théorique des ensembles (eng. k. union)

Différence ensembliste (différence k. eng.)

Section ou partie commune (eng. k. intersection)

Produit direct (également cartésien ou produit croisé cartésien) (eng. k.

produit cartésien ou produit direct)

Renommer (eng. k. renommer)

3.Opérations spéciales binaires

Theta join
Equijoin

Natural join
(Left) Outer join
Semijoin

L’opération d’algèbre relationnelle 

SELECT * ou SELECT code_fabricant, etc.

FROM Fabricant ; FROM Fabricant ;

Opération d’algèbre relationnelle

La clause WHERE contient une ou plusieurs conditions de recherche qui spécifient les enregistrements, que l’on souhaite trouver. Il implémente l’opération d’algèbre relationnelle “limite”.

Opérations d’algèbre relationnelle

{UNION | INTERSECTION | SAUF} [SOUS] [CORRESPONDING [BY [column1
[,...]}]]

Si CORRESPONDING BY est spécifié, l’opération est effectuée dans la clause

sur des colonnes spécifiées. Si la clause CORRESPONDING est spécifiée, mais pas

clause BY, l’opération est effectuée sur des colonnes communes

(avec le même nom) dans les deux tables.

Si la clause ALL est spécifiée, le résultat peut contenir des lignes en double. Lignes A et B

sont les mêmes que pour les valeurs ordonnées des lignes A et B

a1, a2,…, an et b1, b2, … bn les équations a1=b1 s’appliquent ; a2=b2 ,…, an=bn


Trouver une connexion
Trouver la différenceTrouver un passage
SELECT nom de famille                        
FROM fabricant
OR salaire < 5000
SYNDICAT
SELECT nom de famille
FROM Fabricant
OR salaire > 9000 ;
SELECT Department_no
FROM Département
EN MOI
SELECT Department_no
FROM Fabricant ;
SELECT Department_no
FROM Département
COUPER
SELECT Department_no
FROM Fabricant ;
SQL Opérations
SQL
SQL

Opération d’algèbre relationnelle – Produit croisé cartésien

Dans le produit de deux tables, les données obtenues à la suite de la requête sont la somme de deux
de données dans un ensemble de données (table de données) join. Toutes les lignes
du premier ensemble de données est join à toutes les lignes du second ensemble de données.

Par exemple : SELECT Producer.nom, Department.department_name

Ancienne syntaxe SQL (1) :

FROMTableau1, Tableau2
WHERE Table1.column1 opérateur de comparaison Table2.column2
Règle pour joindre des entrées de table (jointure) dans une requête : soi-disant. conditions d'adhésion
Nombre minimum de (clauses WHERE) = nombre de tables - 1

Avec INNER JOIN

FROM Table1 INNER JOIN Table2
ON Tableau 1.colonne 1 opérateur de comparaison Tableau.colonne 2

Un opérateur de comparaison peut être : “<“,”<>”,”<” ,”>”, “>=”, “<=” utilisé uniquement lorsque la sous-requête renvoie un seul enregistrement.

Ex : SELECT*

         FROM Fabricant

         WHERE salaire >(SELECT salaire FROM Producteur WHERE code_producteur =1);

sous-requête des informations sur les lignes de la requête principale et recommence à chaque fois pour chaque ligne de la requête principale. Une sous-requête est exécutée à plusieurs reprises si la clause WHERE de la sous-requête fait référence à une colonne de la clause principale.

SELECT le nom
         FROM Producteur X
         WHERE salaire >(SELECT Moy(salaire) FROM Fabricant Y WHERE
         X.department_no = Y.department_no);

Sous-requête scalaire – Ce type de sous-requête renvoie une valeur scalaire, c’est-à-dire. une ligne et une colonne.

Une sous-requête qui renvoie une table. Ce type de sous-requête renvoie plusieurs lignes et une ou plusieurs colonnes.

Les sous-requêtes IN et EXISTS peuvent être utilisées pour implémenter l’opération “couper” de l’algèbre relationnelle. Les sous-requêtes NOT IN et NOT EXISTS peuvent être utilisées pour implémenter l’opération “différence” en algèbre relationnelle. N’IMPORTE QUEL v. SOME est utilisé pour les sous-requêtes qui renvoient une seule colonne contenant des nombres. La condition de la clause WHERE est considérée comme vraie si au moins certaines des valeurs renvoyées de la sous-requête la satisfont. ALL est utilisé pour les sous-requêtes qui renvoient une seule colonne contenant des nombres. Une condition dans la clause WHERE est considérée comme vraie si toutes les valeurs renvoyées par la sous-requête la satisfont.

SQL et logique trivalente.

SQL utilise la logique trivalente !

– VRAI

– FAUX

– INCONNU

  Par exemple, une requête est effectuée pour trouver les noms de famille des employés dont le salaire est supérieur à 5000. À la suite de la requête, le programme du système de base de données parcourt tous les enregistrements de la table “Employé”. Pour chaque entrée, on décide si elle satisfait ou non la condition :

– VRAI. Si l’employé a un salaire défini et qu’il est supérieur à 5000, les données de l’employé doivent être émises.

– FAUX. Si l’employé a un salaire défini et qu’il est inférieur à 5000, les données de l’employé ne seront pas publiées.

__ Le nom doit commencer par une majuscule.

__ Aucun espace ne doit être utilisé dans les noms. Vous pouvez utiliser un trait de soulignement ou mettre en majuscule les sous-parties du nom au lieu d’espaces.

__ N’utilisez pas de mots réservés par le système de base de données comme noms (par exemple “table”, “select”, etc.)

__ estonien/anglais/russe etc. utiliser un langage mixte n’est pas un bon ton. Utilisez une langue dans la base de données.

__ Pour chaque système de base de données, il est nécessaire d’étudier quelle norme de nommage est utilisée pour nommer les objets du catalogue système de la base de données. Si nécessaire, les recommandations suivantes doivent être modifiées pour faire la distinction entre les noms des objets de l’annuaire système et les objets créés par l’utilisateur.

__ Comme pour toute norme, elle est plus utile si elle est suivie systématiquement.

Format de date et d’heure selon la norme SQL

Norme ISO 8601:1988

Selon lui, la date est présentée sous la forme aaaa-mm-jj et l’heure sous la forme hh:mm:ss (voir la sous-section suivante). Cela signifie que les quatre numéros d’année sont suivis de deux numéros de mois (01-12) et de deux numéros de jour (01-31) dans la date. C’est ce qu’on appelle le “format de date calendaire”, et la norme SQL92 prévoit également la présentation des données de date de cette manière. Une abréviation de texte n’est pas utilisée pour indiquer le mois, car ces abréviations peuvent être différentes dans différentes langues.

L’heure est donnée selon la norme ISO 8601 (également suivie de SQL92) sous la forme : hh:mm:ss

hh- le nombre d’heures complètement écoulées depuis minuit (0-24)

mm- minutes entièrement écoulées (0-59)

ss- secondes entièrement écoulées (0-59)

Le temps peut être représenté de deux manières :

– Temps universel avec un champ séparé où la différence entre le temps local et le temps universel est écrite. Le symbole “Z” peut être utilisé pour représenter le temps universel.

– Heure locale + référence de fuseau horaire.

L’ISO normalise les codes à trois chiffres pour désigner les fuseaux horaires. (par exemple : EST – Eastern Standard Time aux États-Unis et au Canada. Différence par rapport à UTC -0500).

Autres articles

Guide Complet : Utilisation de la Commande...
La commande INSERT INTO ... SELECT en MySQL est un...
Read more
Mysql Update Jointure - Guide Déraillé
La commande UPDATE jointure en MySQL est utilisée pour...
Read more
Tutoriel langage SQL: requêtes et création des...
Dans ce langage SQL, nous vous montrons comment créer des...
Read more

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *