SQLScript est un langage de base de données développé par SAP. Il est basé sur le SQL standard, mais ajoute des fonctionnalités supplémentaires pour exploiter les fonctionnalités avancées de SAP HANA Cloud.
Voici quelques-unes des fonctionnalités clés de SQL Script :
- SQLScript étend le SQL ANSI-92. Tout comme d'autres fournisseurs de bases de données étendent le SQL dans leurs bases de données, SAP HANA étend le SQL à l'aide de SQLScript.
- SQLScript vous permet d'accéder à des fonctionnalités spécifiques à SAP HANA telles que les tables de colonnes, les vues d'informations paramétrées, les mémoires tampons delta, l'utilisation de plusieurs ensembles de résultats en parallèle, les conversions de devises intégrées au niveau de la base de données, la recherche de texte floue, les types de données spatiales et les bibliothèques d'analyse prédictive.
- SQLScript permet aux développeurs de pousser une logique gourmande en données dans la base de données.
- SQLScript encourage les développeurs à maintenir des algorithmes à l'aide d'un paradigme orienté ensemble, au lieu d'un seul enregistrement à la fois paradigme.
- SQLScript permet cependant de boucler les résultats et d'utiliser la logique if-then-else.
- SQLScript vous permet de décomposer des requêtes complexes en plusieurs instructions plus petites, simplifiant ainsi votre codage SQL et améliorant le parallélisme via l'optimiseur.
Remarque
La version de SQL standard sur laquelle SQLScript est basé est la version ANSI-92 populaire qui est prise en charge par presque toutes les bases de données.
Les fonctionnalités supplémentaires de SQLScript incluent l'utilisation de tables de colonnes SAP HANA Cloud, le transfert de paramètres entre les vues de calcul et SQLScript, l'utilisation de types de données spatiales et les bibliothèques d'analyse prédictive.
Développement d'une logique applicative avec SQLScript
Dans les approches client-serveur traditionnelles, la logique applicative est définie et exécutée sur le serveur d'application à l'aide de langages de programmation d'applications tels que ABAP ou C++. Avec SAP HANA Cloud, une grande partie de cette logique peut désormais être définie à l'aide de SQLScript, ce qui permet au développeur de définir et d'exécuter toutes les tâches de traitement des données dans la base de données afin d'améliorer les performances.
SQLScript vous permet d'utiliser des variables pour décomposer une grande instruction SQL complexe en instructions plus petites et plus simples. Cela rend le code beaucoup plus facile à comprendre. Cela facilite également les performances de SQL HANA Cloud car la plupart de ces instructions plus petites peuvent être exécutées en parallèle.
Regardez cette vidéo pour voir un exemple :
Dans l'exemple étudié, nous voulons savoir quel éditeur a le plus de livres :
12books_per_publisher = SELECT publisher, COUNT (*) AS num_books FROM BOOKS GROUP BY publisher;
publisher_with_most_books = SELECT * FROM :books_per_publisher WHERE num_books >= (SELECT MAX (num_books) FROM :books_per_publisher);Le compilateur et l'optimiseur SQLScript déterminent la meilleure façon d'exécuter ces instructions, que ce soit en utilisant une expression de sous-requête commune avec des notes de base de données ou en les combinant en une seule requête complexe. Le code devient plus facile à écrire et à comprendre, plus gérable et la productivité des développeurs augmente.
En divisant le SQLScript en instructions plus petites et en renseignant les variables de table, vous reflétez également la manière dont vous avez appris à créer vos vues de calcul. Tout comme lorsque vous commencez à créer des vues de calcul dans des couches, en partant du bas vers le haut, vous faites de même avec votre code SQLScript. Gardez à l'esprit que la séquence précise de vos étapes SQLScript n'est pas nécessairement l'ordre d'exécution, car l'optimiseur décidera toujours du meilleur plan d'exécution. Cependant, l'optimiseur ne modifiera jamais le résultat souhaité. Cela est également vrai pour les vues calculées.
Utilisation de variables
L'utilisation de variables dans les instructions SQL n'est pas spécifiée par le SQL ANSI-92. Dans SAP HANA Cloud, SQLScript implémente le concept de variable comme extension de ANSI-92 SQL.
Les variables peuvent être déclarées, affectées et réutilisées dans un script.
Utilisation de variables dans SQLScript
Déclarer une variable
DECLARE <variable_name> <type> [NOT NULL] [= <value>]
Exemple 1 : DECLARE a int;
Exemple 2 : DECLARE b int = 0; (la valeur est affectée lors de la création de la variable)
Affecter une variable (définir la valeur d'une variable)
<variable_name> = <value> or <expression>
Exemple 1 : a = 3;
Exemple 2 : b = select count(*) from baseTable;
Utiliser une variable dans une expression
:<variable_name> (avec deux-points) renvoie la valeur actuelle de la variable
Exemple : b = :a + 5; (affecte la valeur de a + 5 à b)
Types de données SQLScript
SQLScript ajoute également des types de données supplémentaires pour aider à traiter les fonctionnalités manquantes de SQL standard, par exemple, les types de données spatiales et les types de données texte.
Types de données ANSI-92 et SQLScript
| Classification | Types de données ANSI-92 standard | Types de données spécifiques à SQLScript |
|---|---|---|
| Date/Heure | DATE, HEURE, HORODATAGE | SECONDDATE |
| Numérique | DÉCIMAL, INTEGER, SMALLINT, FLOAT, REAL, DOUBLE | TINYINT, BIGINT, SMALLDECIMAL |
| Chaîne de caractères | CHAR, NCHAR, VARCHAR, NVARCHAR | ALPHANE, TEXTE COURT |
| Binaire | BINAIRE, VARBINAIRE | |
| Grand objet | BLOB, CLOB, NCLOB, TEXT, BINTEXT | |
| Booléen | BOOLÉEN | |
| Spatial | ST_POINT, ST_GEOMETRY |
Traitement des paramètres d'entrée définis dans les vues de calcul avec SQLScript
Lorsque vous utilisez une instruction SELECT dans SQLScript pour interroger une vue de calcul comportant des paramètres d'entrée, vous utilisez le mot-clé PLACEHOLDER avec le nom du paramètre d'entrée enveloppé en symboles $$ et la valeur que vous souhaitez transmettre au paramètre d'entrée, par exemple :
- Transfert des paramètres d'entrée à la vue calculée
Utilisez le mot-clé PLACEHOLDER pour transmettre les paramètres d'entrée à la vue de calcul dans une instruction select :
Code Snippet1234SELECT "PRODUCT", sum("TAXED_AMOUNT") FROM "_SYS_BIC"."MyPackage/SalesResults" ('PLACEHOLDER' = ('$$Tax Amount$$', '17.5')) GROUP BY "PRODUCT"- Référence au paramètre d'entrée dans le script SQL
Dans SQLScript, vous faites référence au paramètre d'entrée à l'aide de deux-points : ;
Code Snippet1Sales with tax = Sales Revenue * :Tax_Amount
Il est également possible de transférer les paramètres de sortie générés à partir d'un SQLScript dans une vue de calcul à l'aide de la fonctionnalité de mappage de paramètres.
