Mysql
 sql >> Base de données >  >> RDS >> Mysql

Introduction aux commandes SQL

Dans le monde actuel de numérisation accrue, de mégadonnées et de cloud computing, la gestion des données fait partie des compétences les plus importantes qu'un ingénieur logiciel puisse avoir. À cette fin, l'un des outils de base de données les plus puissants est SQL.

SQL (Structured Query Language) est le langage de programmation standard utilisé pour manipuler des objets de structure de données. Ils fonctionnent sur des données contenues dans un système de gestion de base de données relationnelle (RDBMS). Certains SGBDR bien connus sont MySQL et PostgreSQL.

Dans ce guide, vous découvrirez les sous-ensembles du langage SQL et comment utiliser certaines commandes SQL fondamentales, telles que SELECT , INSERT , UPDATE , et DELETE .

Sous-ensembles de SQL

La liste ci-dessous comprend les différents sous-ensembles de langage de diverses commandes SQL. Chaque sous-ensemble a sa propre fonction et son propre objectif.

  • Langage de définition des données (DDL) :cela vous permet de créer, de supprimer et de mettre à jour les définitions de schéma de base de données (à savoir, les tables et les index), sans réellement manipuler les données dans les tables de la base de données.
  • Langage de requête de données (DQL) :DQL est utilisé pour récupérer les données de la base de données en utilisant le SELECT déclaration.
  • Langage de manipulation de données (DML) :ce sous-langage permet la manipulation de données dans la base de données en utilisant le INSERT , UPDATE , et DELETE déclarations.

Ce guide utilise un exemple de base de données pour une école afin de démontrer davantage les commandes SQL pour chaque sous-ensemble répertorié ci-dessus. La base de données de l'école comporte plusieurs tables, pour les étudiants, les cours, les notes, etc. La définition de l'Student le tableau contient des colonnes pour le SSNumber de l'élève , Firstname , et Lastname , et la définition du CourseTaken la table contient des colonnes pour SSNumber , CourseId , NumericGrade , et YearTaken .

L'exemple suppose qu'il y a trois élèves dans l'école, chacun ayant terminé deux cours. Les exemples de données sont présentés dans le tableau ci-dessous :

SSNumber Nom Prénom ID de cours Grade numérique Année prise
111111111 Smith Jean CSC101 98 2021
111111111 Smith Jean ENG101 95 2022
222222222 Jones Marie CSC101 100 2022
222222222 Jones Marie EEE101 75 2022
333333333 Hansen Robert POL101 92 2021
333333333 Hansen Robert SOC103 84 2022

Créer, modifier et supprimer des tables à l'aide de commandes SQL

Depuis la ligne de commande, utilisez le CREATE TABLE commande suivie du nom de la table et des données de la table. La commande ci-dessous crée le Student tableau.

CREATE TABLE Student (
  SSNumber CHAR(9) NOT NULL,
  LastName VARCHAR(30) NOT NULL,
  FirstName VARCHAR(20) NOT NULL
);

La parenthèse entoure les données du tableau, en commençant par une colonne qui étiquette les données de chaque ligne. La colonne suivante indique le type de données que contient cette ligne. CHAR indique un type de données chaîne de longueur fixe et VARCHAR indique un type de données chaîne de longueur variable. Dans la dernière colonne, le NOT NULL L'attribut garantit qu'un enregistrement ne peut pas être ajouté à la table si l'un des NOT NULL les colonnes ne sont pas associées à des données.

Remarque Le CREATE TABLE est délimitée par un point-virgule final (;), bien qu'il soit possible que certains systèmes commerciaux de bases de données relationnelles n'exigent pas ce délimiteur.
Remarque Sauf mention contraire, toutes les commandes de base de données présentées dans ce guide fonctionnent bien sur MySQL et PostgreSQL .

Pour créer le CourseTaken table, exécutez la commande suivante :

CREATE TABLE CourseTaken (
  SSNumber CHAR(9) NOT NULL,
  CourseId CHAR(6) NOT NULL,
  NumericGrade INT NOT NULL
);

L'YearTaken la colonne n'est intentionnellement pas incluse dans le CourseTaken table pour démontrer l'utilisation de ALTER TABLE commande. Pour ajouter le YearTaken colonne dans le CourseTaken table, vous n'avez pas besoin de supprimer le CourseTaken tableau entièrement. Au lieu de cela, vous pouvez utiliser le DDL ALTER TABLE commande. La commande suivante modifie le CourseTaken tableau en ajoutant la colonne manquante au tableau.

ALTER TABLE CourseTaken
  ADD (YearTaken INT NOT NULL);

La commande ci-dessus suit une syntaxe similaire à la précédente. Il nécessite le nom de la table ainsi que trois arguments :le nom de la ligne, le type de données de la ligne et NOT NULL attribut. Si vous souhaitez supprimer le CourseTaken table entièrement, émettez le DDL DROP TABLE commande suivie du nom de la table.

DROP TABLE CourseTaken;
Attention La suppression d'un tableau supprime toutes les données du tableau.

Comment insérer des données dans une table en SQL

Pour insérer les données dans la table, utilisez le SQL INSERT INTO déclaration. Pour appeler cette commande, indiquez le nom de la table et la liste des noms de lignes (entre parenthèses) dans lesquelles vous souhaitez insérer les données. Ceci est suivi des VALUES mot-clé et les valeurs réelles (entre parenthèses) que vous souhaitez insérer. Les valeurs sont insérées dans les lignes dans l'ordre dans lesquelles elles sont appelées.

Remarque
  • Les commandes SQL peuvent être réparties sur plusieurs lignes. La fin de la commande SQL est délimitée par un point-virgule (; ).
  • Les données de caractère sont délimitées par une apostrophe ouvrante et fermante ( ), contrairement aux données numériques.

Le INSERT suivant les commandes insèrent trois lignes dans le Student table. Ces commandes utilisent plusieurs INSERT déclarations.

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('111111111', 'Smith', 'John');

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('222222222', 'Jones', 'Mary');

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('333333333', 'Hansen', 'Robert');

De même, vous pouvez également insérer plusieurs lignes dans la table dans une seule requête SQL, comme indiqué ci-dessous :

INSERT INTO CourseTaken
(SSNumber, CourseId, NumericGrade, YearTaken)
VALUES
('111111111', 'CSC101', 98, 2021),
('111111111', 'ENG101', 95, 2022),
('222222222', 'CSC101', 100, 2022);
Remarque

Vous pouvez utiliser le INSERT INTO commande similaire dans PostgreSQL pour ajouter des lignes au tableau. Assurez-vous que les valeurs correspondent à l'ordre des colonnes dans la définition de table.

INSERT INTO student VALUES ('111111111', 'Smith', 'John');

Supprimer des données d'un tableau

Pour supprimer des données d'une table, utilisez le SQL DELETE FROM déclaration. Utilisez le WHERE clause pour spécifier la condition, et s'il y a plus d'une condition, utilisez le AND clause avec WHERE .

Par exemple, la commande suivante supprime un enregistrement du CourseTaken table avec SSNumber 333333333 et ID de cours POL101 .

Attention Si vous omettez le WHERE clause, tous les enregistrements de la table sont supprimés.
DELETE FROM CourseTaken WHERE SSNumber = '333333333' AND CourseId = 'POL101';

Commande SQL pour mettre à jour les données dans une table

Pour mettre à jour l'enregistrement existant dans une table, utilisez le SQL UPDATE commande. Le SET La clause est utilisée pour définir (mettre à jour) une nouvelle valeur à une colonne particulière et le WHERE La clause est utilisée pour mettre à jour les lignes sélectionnées.

Par exemple, la commande suivante met à jour le NumericGrade colonne du CourseTaken table pour les enregistrements avec SSNumber 222222222 et ID de cours EEE101 .

UPDATE CourseTaken
SET NumericGrade = 95
WHERE SSNumber = '222222222' AND CourseId = 'EEE101';

Commande SQL pour récupérer les données d'une table

La véritable puissance des systèmes de bases de données relationnelles réside dans leur capacité à récupérer des informations dans un schéma multi-tables, via le SQL SELECT commande et la possibilité de joindre des tables via des clés communes. Bien que ce guide d'introduction n'examine pas la création de clés et d'index utilisant ces clés, il utilise le SSNumber colonne de chaque table en tant que véhicule (clé) pour relier (ou joindre) les tables afin de générer des informations. Les exemples suivants fournissent différents cas d'utilisation de SQL SELECT commande depuis la ligne de commande.

Exemple 1 : Pour récupérer la liste de tous les élèves de l'école.

SELECT * from Student;

Sortie :

+-----------+----------+-----------+
| SSNumber  | LastName | FirstName |
+-----------+----------+-----------+
| 111111111 | Smith    | John      |
| 222222222 | Jones    | Mary      |
| 333333333 | Hansen   | Robert    |
+-----------+----------+-----------+

Exemple 2 : Pour récupérer la liste de tous les étudiants et des cours qu'ils ont suivis.

SELECT Student.SSNumber, Student.LastName,
       Student.FirstName, CourseTaken.CourseId
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber;

Sortie :

+-----------+----------+-----------+----------+
| SSNumber  | LastName | FirstName | CourseId |
+-----------+----------+-----------+----------+
| 111111111 | Smith    | John      | CSC101   |
| 111111111 | Smith    | John      | ENG101   |
| 222222222 | Jones    | Mary      | CSC101   |
+-----------+----------+-----------+----------+
Remarque Dans la commande ci-dessus, les deux tables, Student et CourseTaken sont jointes pour récupérer les informations requises. Les noms de colonne dans le SELECT et WHERE les clauses sont précédées de leurs noms de table pour plus de clarté. Cependant, dans le cas du SSNumber colonne, nous devons spécifier les préfixes de nom de table appropriés, car les deux tables partagent le même nom de colonne. Le FROM La clause indique les tables qui sont utilisées dans cette requête.

Exemple 3 : Récupérer la liste des étudiants avec CourseId CSC101 et l'année où ils ont suivi ce cours.

SELECT Student.LastName, Student.FirstName,
       CourseTaken.CourseId, CourseTaken.YearTaken
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber
AND CourseTaken.CourseId = 'CSC101';

Sortie :

+----------+-----------+----------+-----------+
| LastName | FirstName | CourseId | YearTaken |
+----------+-----------+----------+-----------+
| Smith    | John      | CSC101   |      2021 |
| Jones    | Mary      | CSC101   |      2022 |
+----------+-----------+----------+-----------+

Exemple 4 : Récupérer la liste des noms d'étudiants, des cours suivis et des notes reçues, pour ceux qui avaient des notes de cours supérieures à 90 .

SELECT Student.LastName, Student.FirstName,
       CourseTaken.CourseId, CourseTaken.NumericGrade
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber
AND CourseTaken.NumericGrade > 90;

Sortie :

+----------+-----------+----------+--------------+
| LastName | FirstName | CourseId | NumericGrade |
+----------+-----------+----------+--------------+
| Smith    | John      | ENG101   |           95 |
| Smith    | John      | CSC101   |           98 |
| Jones    | Mary      | CSC101   |          100 |
+----------+-----------+----------+--------------+

Remarque Le AND La clause dans la commande ci-dessus vous permet de filtrer les résultats par un test de note conditionnelle.

Conclusion

Ce guide sur les commandes SQL est une introduction à la création de schémas de base de données et à la manipulation des données dans ces bases de données. Bien que les concepts présentés ici ne fassent qu'effleurer la surface en ce qui concerne l'utilisation des systèmes de bases de données relationnelles, il s'agit d'un bon point de départ pour les commandes et concepts de base et essentiels.