Principales requêtes SQL en Python que tout développeur Python devrait connaître

Publié: 2021-01-29

SQL signifie langage de requête structuré qui aide à gérer, manipuler et stocker des bases de données relationnelles. Une base de données relationnelle comprend des collections de tables corrélées sous une forme ou une autre. Plusieurs tables nous permettent de séparer différentes entités des informations cibles et d'éviter que des centaines de colonnes ne soient regroupées dans une table, ce qui pourrait compliquer la gestion de la base de données.

C'est un langage de requête et non la base de données elle-même. Ces requêtes peuvent être effectuées sur n'importe quel système de gestion de base de données relationnelle comme Oracle, Microsoft SQL Server, mais il existe une approche pythonic pour créer et exécuter des requêtes SQL.

Table des matières

SQLite3

Il s'agit de la bibliothèque intégrée Python qui nous permet de créer une base de données légère sans avoir besoin d'exécuter un modèle client-serveur réel. Il peut être utilisé en interne par les applications pour stocker des données et exécuter des commandes SQL. Le package est facile à utiliser et permet de répliquer le même schéma dans n'importe quelle base de données de production comme Postgresql. Voyons comment configurer la base de données.

  • Déclaration d'importation standard :

importer sqlite3 en tant que sq

La bibliothèque est importée en tant qu'alias "sq".

  • Maintenant, nous devons créer une connexion à la base de données. L'objet de connexion servira à cet effet :

connexion = sq.connect("exemple.db")

Si ce fichier n'a pas été créé auparavant, il sera créé dès que cette commande sera exécutée.

  • Pour accéder et extraire des informations de la base de données, un objet curseur doit être créé.

curseur = connexion.curseur()

Maintenant que la configuration de base a été effectuée, nous pouvons pousser les données dans la base de données en créant les tables respectives, mais avant cela, révisons quelques commandes SQL.

Commandes de base en SQL

SQL est excellent en termes de commandes lisibles en anglais. Ceux-ci sont généralement tapés en majuscules et il n'y a aucune restriction à ce sujet. Ceci est généralement pratiqué afin que les mots-clés de la requête soient mis en surbrillance et qu'ils se distinguent des attributs de la table. Mais comme nous avons maintenant de puissants IDE qui les mettent en évidence dans une couleur différente, n'importe quelle méthode fonctionnerait.

1. Créer un tableau

Cela vous permet de créer les données contenant des objets, des tables dans votre base de données. Une base de données peut avoir plusieurs tables avec une ou plusieurs relations. Les tables ont des en-têtes pour chaque colonne qui décrit la valeur qu'elle contient. Lors de la création de la table, vous devez spécifier le nom de la colonne, le type de données qu'elle contiendra et sa taille. Vous pouvez ajouter d'autres attributs, par exemple si la colonne est une clé primaire, peut avoir des valeurs nulles, etc.

Une table de base peut être créée comme suit :

CREATE TABLE company_data (

identifiant entier,

nom varchar (24),

no_of_employee int

);

2. SÉLECTIONNER et DE

Comme son nom l'indique, il est utilisé pour sélectionner et récupérer les données des tables. C'est l'étape la plus importante qui vous permettrait d'avoir un aperçu des données. Il est similaire à la fonction tête ou queue des pandas.

Une requête simple utilisant ces commandes ressemblerait à ceci :

SELECT <nom(s)_colonne(s)>

DE <nom_table> ;

Pour récupérer toutes les colonnes de la table, vous pouvez mettre l'étoile (*) à la place de tous les noms de colonnes. Le mot-clé LIMIT aide à définir le nombre maximum de lignes. Considérez cette requête :

SÉLECTIONNER *

FROM example_table

LIMITE 5 ;

3. Où

La clause where est utilisée pour spécifier les conditions supplémentaires sur la requête. Vous pouvez inclure la plage pour les colonnes, toute comparaison spécifique ou négations.

Par exemple:

SELECT nom_client, nom_entreprise

FROM données_entreprise

WHERE company_name = 'upGrad' ;

4. Insérer

Cette clause est utilisée pour ajouter les valeurs aux tables de données. Les valeurs sont insérées dans le même ordre que les noms de colonne sont ajoutés dans la table dans la commande de création de table. On peut insérer plusieurs lignes ou une à la fois.

Par exemple, la requête ci-dessous insère 3 enregistrements dans une table :

INSERT INTO company_data (id, nom, no_of_employees)

VALEURS

(1, 'entreprisez_A', 100),

(2, 'entreprise_B', 200),

(3, 'entreprise_C', 500);

Exécution via Python

Maintenant que vous connaissez les commandes, il est temps de les exécuter dans le code. Jusqu'à présent, nous sommes connectés à la base de données et avons créé un objet curseur. Cet objet aidera à exécuter les commandes sur la base de données :

curseur.execute(''' <QUERY> ''')

La requête est passée sous forme de chaîne et entre guillemets triples. Cette modification ne sera pas répercutée dans la base de données tant que vous n'aurez pas validé cette modification. La fermeture de la connexion à la base de données à la fin garantit qu'aucune nouvelle exécution ne sera effectuée après ce point.

Regardez ce code simple :

importer sqlite3 en tant que sq

connexion = sq.connect("exemple.db")

curseur = connexion.curseur()

curseur.execute("'

CRÉER TABLE table1 (

identifiant entier,

nom varchar (24)

)

”')

curseur.execute("'

INSERT INTO table1 (id, nom)

VALEURS

(1, 'mise à niveau'),

(2, 'blogs')

”')

curseur.execute("'

SÉLECTIONNER *

DE table1

”')

connexion.commit()

connexion.close()

Conseils importants

1. Comme les requêtes sont transmises sous forme de chaînes, les modifier à l'aide de f-string peut sembler être une bonne option pour rendre le programme dynamique et contrôlé par l'utilisateur, mais cela peut entraîner des problèmes de sécurité tels que des attaques par injection SQL. Pour les éviter, utilisez l'espace réservé "?" partout où vous souhaitez remplacer certaines valeurs dans la requête. Par exemple:

curseur.execute('"SELECT ? FROM ?''', nom_col, nom_table)

Vous pouvez demander à l'utilisateur de fournir le nom de la colonne et cette valeur sera remplacée ici.

2. Utilisez des fonctions telles que fetchone() et fetchall() pour parcourir les résultats. Fetchone renvoie la ligne suivante dans la requête et fetchall renvoie toutes les lignes extraites par le curseur. Les résultats sont renvoyés sous forme de tuple afin qu'ils ne puissent pas être modifiés par des fonctions externes dans le programme.

3. Si vous souhaitez ajouter des valeurs en bloc à la base de données, vous pouvez utiliser la fonction executemany() et transmettre la liste des tuples contenant les valeurs à ajouter. Par exemple:

to_add = [(1, 'bonjour') , (2, 'Monde')]

curseur.executemany('INSERER DANS LES VALEURS de la table (?, ?)', to_add)

Lisez également : Idées et sujets de projet Python

Apprenez des cours de science des données en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Conclusion

SQL est le langage de base de données préféré et facile à comprendre. Il est conseillé à la plupart des débutants en science des données de pratiquer SQL car il améliore le processus de récupération des données et donne un aperçu de la façon dont l'ingénierie des données est effectuée. C'est le langage standard pour toute manipulation de base de données et offre un accès plus rapide à la base de données.

Si vous êtes curieux d'en savoir plus sur la science des données, consultez le diplôme PG de IIIT-B & upGrad en science des données qui est créé pour les professionnels en activité et propose plus de 10 études de cas et projets, des ateliers pratiques, un mentorat avec des experts de l'industrie, 1- on-1 avec des mentors de l'industrie, plus de 400 heures d'apprentissage et d'aide à l'emploi avec les meilleures entreprises.

Que savez-vous des contraintes en SQL ?

Les contraintes déterminent le type de données qui seront entrées dans le tableau. Ils sont spécifiés lors de la création de la table et peuvent être appliqués à un seul champ ou à plusieurs champs. Les contraintes en SQL sont :
NOT NULL - Empêche la valeur NULL d'être entrée dans un champ.
CHECK- Vérifie si toutes les valeurs d'un champ satisfont à la condition donnée.
DEFAULT- Attribue automatiquement une valeur par défaut à un champ si aucune valeur n'a été saisie.
UNIQUE- Autorise uniquement la saisie de valeurs uniques dans un champ.
INDEX - Indexe un champ permettant une récupération plus rapide des enregistrements.
CLÉ PRIMAIRE - Identifie de manière unique chaque enregistrement dans une table.
FOREIGN KEY- Actions de retenue qui pourraient nuire aux liens entre les tables.

Expliquer un index et ses types ?

Un index ou un index de base de données peut être appelé une table de recherche spéciale qui accélère considérablement l'opération de récupération des données. Il consomme plus de mémoire et d'écritures supplémentaires afin de rechercher les données plus rapidement. Un index peut être de 4 types :
1. Index unique
2. Index non unique
3. Index groupé

Qu'est-ce qu'une relation en SQL et quels sont ses types ?

Une relation entre plusieurs entités ou plusieurs objets matériels et immatériels qui ont quelque chose à voir les uns avec les autres est connue sous le nom de relation. Il existe 4 types de relations en SQL :
1. Individuel
2. Un à plusieurs/Plusieurs à un
3. Plusieurs à plusieurs
4. Relations d'auto-référence.