Ce qui est possible en utilisant le langage SQL. SQL : un langage universel pour travailler avec des bases de données

Salut tout le monde! Aujourd'hui, je vais essayer de vous parler le plus simplement possible, notamment pour les débutants, de qu'est-ce que SQL, et à quoi il sert. À partir de ce matériel, vous apprendrez également ce qu'est une base de données et un système de gestion de base de données, ainsi que ce qu'est un dialecte du langage SQL, car l'ensemble de l'article sera construit pour vous guider en douceur vers une compréhension de ce qu'est SQL.

Je pense que vous imaginez déjà que SQL est une sorte de langage associé à une sorte de base de données, mais pour mieux comprendre ce qu'est SQL, vous devez comprendre à quoi sert SQL, à quoi sert ce langage, c'est-à-dire son but.

Par conséquent, je vais d'abord vous donner quelques informations d'introduction, à partir desquelles l'objectif du langage SQL sera clair et pourquoi il est nécessaire en général.

Qu'est-ce qu'une base de données

Et je commencerai par le fait qu’une base de données est généralement comprise comme tout ensemble d’informations stockées d’une certaine manière et pouvant être utilisées. Mais si nous parlons de certaines bases de données automatisées, nous parlons bien sûr des bases de données dites relationnelles.

Base de données relationnelle– il s’agit d’informations ordonnées interconnectées par certaines relations. Il est présenté sous forme de tableaux dans lesquels se trouvent toutes ces informations. Et c'est très important, car il faut désormais imaginer une base de données moderne simplement sous forme de tables ( parler dans le contexte de SQL), c'est à dire. D'une manière générale, une base de données est un ensemble de tables. Bien sûr, il s’agit d’une définition très simplifiée, mais elle donne une compréhension pratique de la base de données.

Qu'est-ce que SQL

Du fait que les informations de la base de données sont organisées, divisées en certaines entités et présentées sous forme de tableaux, il est facile d'accéder et de trouver les informations dont nous avons besoin.

Et ici se pose la question principale : Comment pouvons-nous la contacter et obtenir les informations dont nous avons besoin ?

Il doit y avoir un outil spécial pour cela, et ici SQL nous vient en aide, qui est l'outil avec lequel les données sont manipulées ( créer, récupérer, supprimer, etc.) dans la base de données.

SQL (Langage de requêtes structurées) est un langage de requête structuré utilisé pour écrire des requêtes spéciales ( ce qu'on appelle les instructions SQL) vers une base de données dans le but d'obtenir des données de la base de données ou de manipuler ces données.

Il convient également de noter que la base de données, et en particulier le modèle relationnel, est basée sur la théorie des ensembles, ce qui implique la combinaison de différents objets en un tout ; par un tout dans la base de données, nous entendons une table. Ceci est important, puisque le langage SQL fonctionne spécifiquement avec un ensemble, avec un ensemble de données, c'est-à-dire avec des tableaux.

Matériel utile sur le sujet :

  • Création d'une base de données dans Microsoft SQL Server - instructions pour les débutants ;
  • Ajout de données aux tables dans Microsoft SQL Server - Instruction INSERT INTO.

Qu'est-ce qu'un SGBD

Vous vous posez peut-être la question : si une base de données est une sorte d'information stockée dans des tables, à quoi ressemble-t-elle physiquement ? Comment le considérer dans son ensemble ?

Bref, ce n'est qu'un fichier créé dans un format spécial, c'est exactement à quoi ressemble une base de données ( dans la plupart des cas, la base de données comprend plusieurs fichiers, mais maintenant à ce niveau ce n'est plus si important).

Allons plus loin, si une base de données est un fichier dans un format spécial, alors comment le créer ou l'ouvrir ? Et ici la difficulté surgit, car juste comme ça, sans aucun outil, créez un tel fichier, c'est-à-dire une base de données relationnelle n'est pas possible ; pour cela, vous avez besoin d'un outil spécial capable de créer et de gérer la base de données, en d'autres termes, de travailler avec ces fichiers.

C'est précisément l'instrument Le SGBD est un système de gestion de base de données, abrégé en SGBD.

Quels types de SGBD existe-t-il ?

En fait, il existe de nombreux SGBD différents, certains d'entre eux sont payants et coûtent très cher si l'on parle de versions complètes, mais même les plus, pour ainsi dire, les plus « cool » ont des éditions gratuites, qui , soit dit en passant, sont parfaits pour apprendre.

Parmi tous, en termes de capacités et de popularité, on peut distinguer les systèmes suivants :

  • Microsoft SQL Server est un système de gestion de base de données de Microsoft. Il est très apprécié dans le secteur des entreprises, notamment dans les grandes entreprises. Et ce n'est pas seulement un SGBD, c'est tout un ensemble d'applications qui vous permettent de stocker et de modifier des données, de les analyser, de sécuriser ces données, et bien plus encore ;
  • Base de données Oracle est un système de gestion de base de données d'Oracle. C'est également un SGBD très populaire, également parmi les grandes entreprises. En termes de capacités et de fonctionnalités, Oracle Database et Microsoft SQL Server sont comparables, ils sont donc de sérieux concurrents et le coût de leurs versions complètes est très élevé ;
  • MySQL est un système de gestion de base de données également d'Oracle, mais seulement il est distribué gratuitement. MySQL a acquis une très grande popularité dans le segment Internet, c'est-à-dire Presque tous les sites sur Internet fonctionnent sur MySQL, en d'autres termes, la plupart des sites sur Internet utilisent ce SGBD comme moyen de stockage de données ;
  • PostgreSQL– Ce système de gestion de base de données est également gratuit et il est très populaire et fonctionnel.

Matériel utile sur le sujet :

  • Installation de Microsoft SQL Server 2016 Express - un exemple d'installation de l'édition gratuite de Microsoft SQL Server sur Windows ;
  • Installation de Microsoft SQL Server 2017 Express sur Ubuntu Server - un exemple d'installation de l'édition gratuite de Microsoft SQL Server sur Linux ;
  • Installation de PostgreSQL 11 sur Windows - exemple d'installation de PostgreSQL sur Windows ;
  • Installation de MySQL sur Windows - exemple d'installation de MySQL sur Windows ;
  • Installation et configuration de MySQL sur Linux Mint - un exemple d'installation de MySQL sur Linux ;
  • Installation d'Oracle Database Express Edition 11g - un exemple d'installation de l'édition gratuite d'Oracle sur Windows ( L'article a été écrit il y a longtemps, mais il sera toujours utile).

Dialectes SQL (extensions SQL)

Le langage SQL est un standard, il est implémenté dans toutes les bases de données relationnelles, mais chaque SGBD possède une extension de ce standard, possède son propre langage pour travailler avec les données, on l'appelle généralement le dialecte SQL, qui, bien sûr, est basé sur SQL, mais offre plus de possibilités de programmation à part entière ; de plus, un tel langage interne permet d'obtenir des informations système et de simplifier les requêtes SQL.

Voici quelques dialectes SQL :

  • Transact-SQL(en abrégé T-SQL) – utilisé dans Microsoft SQL Server ;
  • PL/SQL(Langage procédural / Langage de requête structuré) – utilisé dans la base de données Oracle ;
  • PL/pgSQL(Langage procédural/Langage de requête structuré PostGres) – utilisé dans PostgreSQL.

Ainsi, cela dépend du SGBD quelle extension vous utiliserez pour écrire des instructions SQL. Si nous parlons de requêtes SQL simples, par exemple,

SELECT ProductId, ProductName FROM Marchandises

alors, bien sûr, de telles requêtes fonctionneront dans tous les SGBD, car SQL est un standard.

Note! Il s'agit d'une simple requête SQL permettant de récupérer les données d'une table, générant deux colonnes.

Cependant, si vous souhaitez programmer, utilisez toutes les capacités internes du SGBD ( développer des procédures, utiliser des fonctions intégrées, obtenir des informations sur le système, etc.), vous devez alors apprendre un dialecte spécifique de SQL et vous entraîner en conséquence dans le SGBD qui utilise ce dialecte. Ceci est important car la syntaxe de nombreuses constructions diffère, tout comme les capacités et bien plus encore. Et si, par exemple, vous exécutez une instruction SQL qui utilise les capacités d'une certaine extension SQL sur un autre SGBD, une telle instruction ne sera bien sûr pas exécutée.

Par exemple, je me spécialise personnellement dans le langage T-SQL, et par conséquent, je travaille avec Microsoft SQL Server depuis plus de 8 ans !

Bien que, bien sûr, j'ai également travaillé avec d'autres SGBD ; à un moment donné, j'ai pris en charge deux applications, dont l'une fonctionnait avec PostgreSQL et la seconde, probablement déjà claire, avec Microsoft SQL Server.

J'ai travaillé avec MySQL, comme probablement beaucoup d'autres, dans le cadre de la maintenance de sites Web et de services. Eh bien, j'ai dû travailler avec Oracle Database dans le cadre d'autres projets.

J'ai regroupé toute mon expérience accumulée dans le langage T-SQL en un seul endroit et je l'ai mise sous forme de livres, donc si vous avez envie d'apprendre le langage Transact-SQL (T-SQL), je vous recommande de lire mes livres :

  • The T-SQL Programmer's Path - un tutoriel sur le langage Transact-SQL pour les débutants. J'y parle en détail de toutes les constructions du langage et je passe constamment du simple au complexe. Convient à un apprentissage complet du langage T-SQL ;
  • Style de programmation T-SQL - les bases d'un codage correct. Un livre visant à améliorer la qualité du code T-SQL ( pour ceux qui connaissent déjà le langage T-SQL, c'est à dire. connaît au moins les bases).

J'espère que vous comprenez maintenant ce qu'est SQL et à quoi il sert. Dans les documents suivants, je vais vous expliquer comment créer des requêtes SQL, vous indiquer quels outils vous devez utiliser pour cela et pour quel SGBD, puisque chaque SGBD a le sien. outils, alors suivez la sortie de nouveaux articles dans mes groupes sur les réseaux sociaux.

Commandes SQL de base que tout programmeur devrait connaître

SQL ou Structured Query Language est un langage utilisé pour gérer les données dans un système de base de données relationnelle (SGBDR). Cet article couvrira les commandes SQL couramment utilisées que tout programmeur devrait connaître. Ce matériel est idéal pour ceux qui souhaitent parfaire leurs connaissances en SQL avant un entretien d'embauche. Pour ce faire, regardez les exemples donnés dans l'article et rappelez-vous que vous avez étudié les bases de données en binôme.

Notez que certains systèmes de bases de données nécessitent un point-virgule à la fin de chaque instruction. Le point-virgule est le pointeur standard vers la fin de chaque instruction SQL. Les exemples utilisent MySQL, un point-virgule est donc requis.

Mise en place d'une base de données pour des exemples

Créez une base de données pour démontrer le fonctionnement des équipes. Pour travailler, vous devrez télécharger deux fichiers : DLL.sql et InsertStatements.sql. Après cela, ouvrez un terminal et connectez-vous à la console MySQL à l'aide de la commande suivante (l'article suppose que MySQL est déjà installé sur le système) :

Mysql -u racine -p

Entrez ensuite votre mot de passe.

Exécutez la commande suivante. Appelons la base de données « université » :

CRÉER UNE BASE DE DONNÉES universitaire ; UTILISER l'université ; SOURCE ; SOURCE

Commandes pour travailler avec des bases de données

1. Afficher les bases de données disponibles

AFFICHER LES BASES DE DONNÉES ;

2. Créez une nouvelle base de données

CRÉER UNE BASE DE DONNÉES ;

3. Sélection d'une base de données à utiliser

UTILISER ;

4. Importez des commandes SQL à partir d'un fichier .sql

SOURCE ;

5. Supprimez la base de données

SUPPRIMER LA BASE DE DONNÉES ;

Travailler avec des tableaux

6. Afficher les tables disponibles dans la base de données

AFFICHER LES TABLEAUX ;

7. Créez un nouveau tableau

CRÉER UN TABLEAU ( , , CLÉ PRIMAIRE ( ), CLÉ ÉTRANGÈRE ( ) LES RÉFÉRENCES ());

Contraintes d'intégrité lors de l'utilisation de CREATE TABLE

Vous devrez peut-être créer des restrictions sur certaines colonnes d'un tableau. Lors de la création d'un tableau, vous pouvez définir les restrictions suivantes :

  • une cellule de tableau ne peut pas avoir une valeur NULL ;
  • clé primaire - PRIMARY KEY (col_name1, col_name2, ...) ;
  • clé étrangère - CLÉ ÉTRANGÈRE (col_namex1, …, col_namexn) RÉFÉRENCES table_name(col_namex1, …, col_namexn) .

Vous pouvez spécifier plusieurs clés primaires. Dans ce cas, vous obtiendrez une clé primaire composite.

Exemple

Créer une table "instructeur" :

CREATE TABLE instructeur (ID CHAR(5), nom VARCHAR(20) NOT NULL, nom_dept VARCHAR(20), salaire NUMERIC(8,2), CLÉ PRIMAIRE (ID), CLÉ ÉTRANGÈRE (nom_dept) RÉFÉRENCES département(nom_dept)) ;

8. Informations sur le tableau

Vous pouvez afficher diverses informations (type de valeur, clé ou non) sur les colonnes de la table avec la commande suivante :

DÉCRIRE ;

9. Ajout de données au tableau

INSÉRER DANS (, , , ...) VALEURS ( , , , …);

Lorsque vous ajoutez des données à chaque colonne d'un tableau, vous n'avez pas besoin de spécifier les noms des colonnes.

INSÉRER DANS VALEURS ( , , , …);

10. Mise à jour des données du tableau

MISE À JOUR ENSEMBLE = , = , ... OÙ ;

11. Suppression de toutes les données du tableau

SUPPRIMER DE ;

12. Supprimer un tableau

TABLEAU DE DÉPÔT ;

Commandes pour créer des requêtes

13. SÉLECTIONNER

SELECT est utilisé pour récupérer les données d'une table spécifique :

SÉLECTIONNER , , … DEPUIS ;

La commande suivante peut afficher toutes les données du tableau :

SÉLECTIONNER * DEPUIS ;

14. SÉLECTIONNER DISTINCT

Les colonnes du tableau peuvent contenir des données en double. Utilisez SELECT DISTINCT pour récupérer uniquement les données non dupliquées.

SÉLECTIONNER DISTINCT , , … DEPUIS ;

15. OÙ

Vous pouvez utiliser le mot clé WHERE dans SELECT pour spécifier des conditions dans une requête :

SÉLECTIONNER , , … DEPUIS ;

Les conditions suivantes peuvent être précisées dans la demande :

  • comparaison de texte ;
  • comparaison de valeurs numériques;
  • opérateurs logiques ET (et), OU (ou) et NON (négation).

Exemple

Essayez les commandes suivantes. Faites attention aux conditions spécifiées dans OÙ :

SELECT * FROM cours WHERE dept_name=’Comp. Sci.'; SELECT * FROM cours WHERE crédits>3 ; SELECT * FROM cours WHERE dept_name="Comp. Sci." ET crédits>3 ;

16. GROUPER PAR

L'opérateur GROUP BY est souvent utilisé avec des fonctions d'agrégation telles que COUNT, MAX, MIN, SUM et AVG pour regrouper les valeurs de sortie.

SÉLECTIONNER , , … DEPUIS PAR GROUPE ;

Exemple

Affichons le nombre de cours pour chaque faculté :

SELECT COUNT(course_id), dept_name FROM course GROUP BY dept_name ;

17. AVOIR

Le mot-clé HAVING a été ajouté à SQL car WHERE ne peut pas être utilisé avec les fonctions d'agrégation.

SÉLECTIONNER , , ... DEPUIS PAR GROUPE AYANT

Exemple

Affichons une liste des facultés qui ont plus d'un cours :

SELECT COUNT(course_id), dept_name FROM course GROUP BY dept_name HAVING COUNT(course_id)>1 ;

18. COMMANDER PAR

ORDER BY est utilisé pour trier les résultats de la requête par ordre décroissant ou croissant. ORDER BY triera par ordre croissant sauf si ASC ou DESC est spécifié.

SÉLECTIONNER , , … DEPUIS COMMANDÉ PAR , , …ASC|DESC;

Exemple

Affichons une liste de cours par ordre croissant et décroissant de crédits :

SELECT * FROM cours ORDER PAR crédits ; SELECT * FROM cours ORDER BY crédits DESC;

19. ENTRE

BETWEEN est utilisé pour sélectionner des valeurs de données dans une plage spécifique. Des valeurs numériques et textuelles, ainsi que des dates, peuvent être utilisées.

SÉLECTIONNER , , … DEPUIS ENTRE ET ;

Exemple

Affichons une liste des instructeurs dont le salaire est supérieur à 50 000, mais inférieur à 100 000 :

SELECT * FROM instructeur OÙ salaire ENTRE 50000 ET 100000 ;

20. COMME

L'opérateur LIKE est utilisé dans WHERE pour spécifier un modèle de recherche pour une valeur similaire.

Il existe deux opérateurs gratuits utilisés dans LIKE :

  • % (aucun, un ou plusieurs caractères) ;
  • _ (un caractère).
SÉLECTIONNER , , … DEPUIS COMME ;

Exemple

Affichons une liste de cours dont les noms contiennent "to" et une liste de cours dont les noms commencent par "CS-" :

SELECT * FROM cours WHERE titre LIKE '%to%'; SELECT * FROM cours WHERE course_id LIKE "CS-___" ;

21. DANS

En utilisant IN, vous pouvez spécifier plusieurs valeurs pour la clause WHERE :

SÉLECTIONNER , , … DEPUIS DANS ( , , …);

Exemple

Affichons une liste d'étudiants des majors Comp. Sci., Physique et Elec. Ing. :

SELECT * FROM student WHERE dept_name IN ('Comp. Sci.', 'Physics', 'Elec. Eng.');

22. REJOIGNEZ

JOIN est utilisé pour lier deux ou plusieurs tables en utilisant des attributs communs en leur sein. L'image ci-dessous montre les différentes manières de rejoindre SQL. Notez la différence entre une jointure externe gauche et une jointure externe droite :

SÉLECTIONNER , , … DEPUIS REJOINDRE SUR = ;

Exemple 1

Nous afficherons une liste de tous les cours et des informations pertinentes sur les facultés :

SELECT * FROM cours REJOINDRE le département ON course.dept_name=department.dept_name ;

Exemple 2

Nous afficherons une liste de tous les cours obligatoires et des détails les concernant :

SELECT prereq.course_id, title, dept_name, credits, prereq_id FROM prereq LEFT OUTER JOIN course ON prereq.course_id=course.course_id ;

Exemple 3

Nous afficherons une liste de tous les cours, qu'ils soient obligatoires ou non :

SELECT course.course_id, title, dept_name, credits, prereq_id FROM prereq RIGHT OUTER JOIN course ON prereq.course_id=course.course_id ;

23. Voir

View est une table SQL virtuelle créée à la suite de l'exécution d'une expression. Il contient des lignes et des colonnes et ressemble beaucoup à une table SQL classique. View affiche toujours les dernières informations de la base de données.

Création

CRÉER UNE VUE COMME SÉLECTIONNER , , … DEPUIS ;

Suppression

VUE GOUTTE ;

Exemple

Créons une vue composée de cours avec 3 crédits :

24. Fonctions agrégées

Ces fonctions permettent d'obtenir un résultat agrégé lié aux données en question. Les fonctions d'agrégation suivantes sont couramment utilisées :

  • COUNT (col_name) - renvoie le nombre de lignes ;
  • SUM (col_name) - renvoie la somme des valeurs de cette colonne ;
  • AVG (col_name) - renvoie la valeur moyenne d'une colonne donnée ;
  • MIN (col_name) - renvoie la plus petite valeur d'une colonne donnée ;
  • MAX (col_name) - Renvoie la plus grande valeur d'une colonne donnée.

25. Sous-requêtes imbriquées

Les sous-requêtes imbriquées sont des requêtes SQL qui incluent des clauses SELECT , FROM et WHERE imbriquées dans une autre requête.

Exemple

Retrouvons les cours qui ont été dispensés à l'automne 2009 et au printemps 2010 :

SELECT DISTINCT course_id FROM section OÙ semestre = 'Automne' ET année = 2009 ET course_id IN (SELECT course_id FROM section OÙ semestre = 'Printemps' ET année = 2010);

Pour commencer à étudier SQL nous devons d'abord comprendre ce qu'est une base de données.

1. Qu'est-ce qu'une base de données

Base de données (BD)- un ensemble ordonné de données logiquement liées, utilisées ensemble et stockées en un seul endroit. Bref, le plus simple Base de données il s'agit d'un tableau ordinaire avec des lignes et des colonnes dans lesquelles différents types d'informations sont stockés (un exemple serait un tableau dans Exceller). Alors, souvent, avec Base de données lier indissolublement Systèmes de gestion de bases de données (SGBD), qui fournissent des fonctionnalités pour travailler avec Base de données. Langue SQL c'est juste une partie SGBD, qui gère les informations dans Base de données. Nous compterons Base de données un ensemble de tables régulières stockées dans des fichiers séparés.

2. Qu'est-ce que SQL

Alors passons à SQL.

SQL est un langage de programmation simple qui comporte peu de commandes et peut être appris par n'importe qui. Représente Langage de requêtes structurées est un langage de requête structuré conçu pour fonctionner avec Base de données, à savoir recevoir/ajouter/modifier des données, pouvoir traiter de grandes quantités d'informations et obtenir rapidement des informations structurées et regroupées. Il existe de nombreuses options linguistiques SQL, mais ils ont tous les mêmes commandes de base. Il y a aussi beaucoup SGBD, mais les principaux sont : Microsoft Access, Microsoft SQL Server, MySQL, Oracle SQL, IBM DB2 SQL, PostgreSQL et Sybase Adaptive Server SQL. Travailler avec SQL code, nous aurons besoin de l'un des éléments ci-dessus SGBD. Pour la formation, nous utiliserons SGBD Microsoft Access.

SQL comme les autres langages de programmation, il possède ses propres commandes (opérateurs), à l'aide desquelles des instructions sont données pour récupérer les données. Pour voir comment fonctionnent les opérateurs SQL, nous utiliserons l'imaginaire Base de données avec des informations sur les produits vendus.

Bienvenue dans le développement de bases de données utilisant le langage de requête SQL standard. Les systèmes de gestion de bases de données (SGBD) disposent de nombreux outils qui fonctionnent sur une grande variété de plates-formes matérielles.

  • Bases de base de données relationnelles

    Dans ce chapitre... | Organisation des informations | Qu'est-ce qu'une base de données | Qu'est-ce qu'un SGBD | Comparaison des modèles de bases de données | Qu'est-ce qu'une base de données relationnelle

  • Bases de SQL

    Dans ce chapitre... | Qu'est-ce que SQL | Idées fausses sur SQL | Un regard sur les différentes normes SQL | Introduction aux commandes SQL standard et aux mots réservés | Représenter des nombres, des symboles, des dates, des heures et d'autres types de données | Valeurs et restrictions non définies

  • Composants SQL

    Dans ce chapitre... | Création de bases de données | Traitement des données | Protection des bases de données | SQL est un langage spécialement conçu pour créer et maintenir des données dans des bases de données relationnelles. Et bien que les sociétés qui fournissent des systèmes pour gérer de telles bases de données proposent leurs propres implémentations de SQL, le développement du langage lui-même est déterminé et contrôlé par la norme ISO/ANSI.

  • Création et maintenance d'une base de données simple

    Dans ce chapitre... | Créez, modifiez et supprimez une table d'une base de données à l'aide de l'outil RAD. | Créer, modifier et supprimer une table d'une base de données à l'aide de SQL. | Transférer une base de données vers un autre SGBD.

  • Création d'une base de données relationnelle multi-tables

    Dans ce chapitre... | Que devrait contenir la base de données | Définir des relations entre les éléments de la base de données | Lier des tables à l'aide de clés | Conception de l'intégrité des données | Normalisation de base de données | Ce chapitre présentera un exemple de création d'une base de données multi-tables.

  • Manipulation des données de la base de données

    Dans ce chapitre... | Travailler avec des données | Obtention des données nécessaires à partir du tableau | Afficher les informations sélectionnées dans un ou plusieurs tableaux | Mise à jour des informations dans les tableaux et les vues | Ajouter une nouvelle ligne à un tableau

  • Définir des valeurs

    Dans ce chapitre... | Utiliser des variables pour réduire le codage redondant | Récupération des informations fréquemment demandées situées dans un champ de table de base de données | Combiner des valeurs simples pour créer des expressions composées | Ce livre souligne continuellement l'importance de la structure d'une base de données pour maintenir l'intégrité d'une base de données.

  • Des expressions complexes et pleines de sens

    Dans ce chapitre... | Utilisation d'instructions de cas conditionnelles | Conversion d'un élément de données d'un type de données à un autre | Gagnez du temps de saisie de données avec des expressions à valeur d'enregistrement | Au chapitre 2, SQL était appelé sous-langage de données.

  • "Ciblage" sur les données requises

    Dans ce chapitre... | Spécification des tables requises | Séparer les lignes nécessaires de toutes les autres | Création de clauses Where efficaces | Comment travailler avec des valeurs nulles | Création d'expressions composées avec des connecteurs logiques | Regroupement des résultats de la requête par colonne

  • Opérateurs relationnels

    Dans ce chapitre... | Joindre des tables ayant une structure similaire | Fusionner des tables ayant des structures différentes | Obtenir les données dont vous avez besoin à partir de plusieurs tables | SQL est un langage de requête utilisé dans les bases de données relationnelles.

  • Utilisation de requêtes imbriquées

    Dans ce chapitre... | Récupération de données de plusieurs tables avec une seule instruction SQL | Rechercher des éléments de données en comparant une valeur d'une table à un ensemble de valeurs d'une autre | Recherche d'éléments de données en comparant une valeur d'une table avec une valeur unique sélectionnée à l'aide d'une instruction select d'une autre

  • Requêtes récursives

  • Sécuriser la base de données

    Dans ce chapitre... | Contrôler l'accès aux tables de la base de données | Décider d'accorder ou non l'accès | Octroi d'autorisations d'accès | Révocation de l'autorité d'accès | Empêcher les tentatives d'accès non autorisées

  • Protection des données

    Dans ce chapitre... | Comment éviter la corruption de la base de données | Problèmes causés par des opérations simultanées | Résoudre ces problèmes à l'aide des moteurs SQL | Définition du niveau de sécurité requis à l'aide de la commande set transaction

  • Utiliser SQL dans les applications

    Dans ce chapitre... | SQL dans les applications | Partager SQL avec des langages procéduraux | Comment éviter les incompatibilités | Code SQL intégré au code procédural | Appel de modules SQL à partir du code procédural | Appeler SQL à partir d'un outil RAD | Dans les chapitres précédents, nous avons principalement examiné les commandes SQL individuellement, c'est-à-dire La tâche de traitement des données a été formulée et une requête SQL a été créée pour celle-ci.

  • ODBC et JDBC

    Dans ce chapitre... | Définition ODBC | Description des pièces ODBC | Utilisation d'ODBC dans un environnement client/serveur | Utiliser ODBC sur Internet | Utiliser ODBC dans les réseaux locaux | Utiliser JDBC | Chaque année, les ordinateurs d'une ou de plusieurs organisations différentes sont de plus en plus connectés les uns aux autres. Il est donc nécessaire d’établir un accès partagé aux bases de données sur le réseau.

  • SQL : 2003 et XML

    Dans ce chapitre... | Utiliser SQL avec XML | XML, bases de données et Internet | L'une des nouvelles fonctionnalités les plus importantes de SQL:2003 est la prise en charge des fichiers XML (Extensible Markup Language), qui deviennent de plus en plus une norme universelle pour l'échange de données entre des plates-formes disparates.

  • Curseurs

    Dans ce chapitre... | Définir la portée du curseur dans l'instruction declare | Curseur d'ouverture | Échantillonnage de données ligne par ligne | Fermeture du curseur | SQL diffère de la plupart des langages de programmation les plus populaires en ce sens qu'il effectue simultanément des opérations sur les données de toutes les lignes d'une table, tandis que les langages procéduraux traitent les données ligne par ligne.

  • Dans les deux articles précédents de cette série, publiés dans les numéros 6 et 7 de notre magazine, nous avons examiné différents mécanismes d'accès aux données, notamment ADO, BDE et leurs alternatives. Nous savons désormais comment choisir une technologie d'accès aux données pour un couple « SGBD - outil de développement » particulier.

    Avec la technologie permettant d’accéder aux données en place, nous pouvons enfin réfléchir à la manière dont les données et les métadonnées elles-mêmes devraient être manipulées. Les méthodes de manipulation peuvent être spécifiques à un SGBD donné (par exemple, l'utilisation d'objets dans la partie client de ce SGBD pour accéder aux objets de la base de données) ou à un mécanisme d'accès aux données donné. Néanmoins, il existe une manière plus ou moins universelle de manipuler les données, prise en charge par presque tous les SGBD relationnels de serveur et la plupart des mécanismes d'accès aux données universels (y compris lorsqu'ils sont utilisés conjointement avec des SGBD de bureau). Cette méthode consiste à utiliser le langage SQL (Structured Query Language). Ci-dessous, nous examinerons l'objectif et les fonctionnalités de ce langage, et apprendrons également comment l'utiliser pour extraire et résumer des données, ajouter, supprimer et modifier des enregistrements, protéger les données contre tout accès non autorisé et créer des bases de données. Pour une étude plus détaillée de SQL, nous pouvons vous recommander les livres de Martin Graber « Introduction to SQL » (M., Laurie, 1996) et « SQL. Guide de référence" (M., Lori, 1997).

    Introduction

    Le langage de requête structuré est un langage non procédural utilisé pour gérer les données dans les SGBD relationnels. Le terme « non procédural » signifie qu’un langage donné peut formuler ce qui doit être fait avec les données, mais il ne peut pas indiquer comment cela doit être fait exactement. En d’autres termes, ce langage n’a pas de constructions algorithmiques telles que des étiquettes, des opérateurs de boucle, des sauts conditionnels, etc.

    Le langage SQL a été créé au début des années 70 à la suite d'un projet de recherche d'IBM dont le but était de créer un langage permettant de manipuler des données relationnelles. Il s’appelait à l’origine SEQUEL (Structured English Query Language), puis SEQUEL/2, et enfin simplement SQL. La norme SQL officielle a été publiée par l'ANSI (American National Standards Institute, États-Unis) en 1986 (il s'agit de l'implémentation de SQL la plus couramment utilisée aujourd'hui). Cette norme a été étendue en 1989 et 1992, la dernière norme SQL s'appelle donc SQL92. Des travaux sont actuellement en cours sur le standard SQL3, qui contient quelques extensions orientées objet.

    Il existe trois niveaux de conformité ANSI : Débutant, Intermédiaire et Complet. De nombreux fournisseurs de SGBD serveur, tels qu'IBM, Informix, Microsoft, Oracle et Sybase, utilisent leurs propres implémentations SQL basées sur la norme ANSI (répondant au moins au niveau initial de conformité à la norme) et contenant certaines extensions spécifiques au SGBD.

    Des informations plus détaillées sur la conformité de la version de SQL utilisée dans un SGBD particulier peuvent être trouvées dans la documentation fournie avec ce SGBD.

    Comment fonctionne SQL

    Voyons comment fonctionne SQL. Supposons qu'il existe une base de données gérée à l'aide d'une sorte de SGBD. Pour en extraire des données, une requête formulée en SQL est utilisée. Le SGBD traite cette requête, récupère les données demandées et les renvoie. Ce processus est schématisé sur la Fig. 1 .

    Comme nous le verrons plus tard, SQL vous permet non seulement de récupérer des données, mais également de définir la structure des données, d'ajouter et de supprimer des données, de restreindre ou d'accorder l'accès aux données et de maintenir l'intégrité référentielle.

    Veuillez noter que SQL lui-même n'est ni un SGBD ni un produit distinct. Il s'agit d'un langage utilisé pour interagir avec le SGBD et, dans un certain sens, en fait partie intégrante.

    Langage de définition de données (DDL)

    Le langage de définition de données contient des opérateurs qui vous permettent de créer, modifier et détruire des bases de données et les objets qu'elles contiennent (tables, vues, etc.). Ces opérateurs sont répertoriés dans le tableau. 1.

    Tableau 1

    Opérateur

    Description

    Utilisé pour ajouter une nouvelle table à la base de données

    Utilisé pour supprimer une table d'une base de données

    Utilisé pour changer la structure d'une table existante

    Utilisé pour ajouter une nouvelle vue à la base de données

    Utilisé pour supprimer une vue de la base de données

    Utilisé pour créer un index pour un champ donné

    Utilisé pour supprimer un index existant

    Utilisé pour créer un nouveau schéma dans la base de données

    Utilisé pour supprimer un schéma de la base de données

    Utilisé pour créer un nouveau domaine

    Utilisé pour redéfinir un domaine

    Utilisé pour supprimer un domaine de la base de données

    Langage de manipulation de données (DML)

    Data Manipulation Language contient des opérateurs qui vous permettent de sélectionner, ajouter, supprimer et modifier des données. Notez que ces instructions ne sont pas nécessaires pour terminer la transaction dans laquelle elles sont appelées. Les instructions DML sont présentées dans le tableau. 2.

    Tableau 2

    L'instruction SELECT est parfois classée dans une catégorie distincte appelée Data Query Language (DQL).

    Langage de contrôle du curseur (CCL)

    Les instructions Cursor Control Language sont utilisées pour définir un curseur, préparer les instructions SQL pour l'exécution et plusieurs autres instructions. Les déclarations CCL sont présentées dans le tableau. 5.

    Tableau 5

    Opérateur

    Description

    Utilisé pour déterminer le curseur de la requête

    Utilisé pour décrire un plan de requête. Cette instruction est une extension SQL pour Microsoft SQL Server 7.0. Il n'est pas nécessaire de l'exécuter dans d'autres SGBD. Par exemple, dans le cas d'Oracle, l'instruction EXPLAIN PLAN doit être utilisée

    Utilisé pour ouvrir le curseur lors de la réception des résultats de la requête

    Utilisé pour obtenir une chaîne à partir des résultats de la requête

    Utilisé pour fermer le curseur

    Utilisé pour préparer une instruction SQL pour l'exécution

    Utilisé pour exécuter une instruction SQL

    Utilisé pour décrire une demande préparée

    Toutes les instructions SQL ont la forme illustrée à la Fig. 2.

    Chaque instruction SQL commence par un verbe, qui est un mot-clé qui spécifie ce que fait l'instruction (SELECT, INSERT, DELETE...). L'instruction contient également des phrases contenant des informations sur les données sur lesquelles les opérations sont effectuées. Chaque clause commence par un mot-clé tel que FROM, WHERE, etc. La structure de la clause dépend de son type : certaines clauses contiennent des noms de table ou de champ, d'autres peuvent contenir des mots-clés, des constantes ou des expressions supplémentaires.

    Comment exécuter des instructions SQL ?

    Tous les SGBD de serveur modernes (ainsi que de nombreux SGBD de bureau populaires) contiennent des utilitaires qui vous permettent d'exécuter une instruction SQL et d'afficher son résultat. En particulier, la partie client Oracle contient l'utilitaire SQL Plus et Microsoft SQL Server contient l'utilitaire SQL Query Analyzer. C'est cet utilitaire que nous utiliserons pour démontrer les capacités de SQL, et comme base de données sur laquelle nous allons « expérimenter », nous prendrons la base de données NorthWind incluse dans le package Microsoft SQL Server 7.0. En principe, vous pouvez utiliser une autre base de données et tout autre utilitaire capable d'exécuter des instructions SQL dans cette base de données et d'afficher les résultats (ou même d'écrire les vôtres à l'aide de n'importe quel outil de développement - Visual Basic, Delphi, C++Builder, etc.). Cependant, il est recommandé de sauvegarder cette base de données au cas où.

  • Partager