est la clause FROM nécessaire dans chaque instruction SELECT? Merci ..clause FROM nécessaire dans chaque instruction SELECT
Répondre
Pas vraiment - vous pouvez utiliser SELECT pour initialiser une variable.
Exemples from here:
mysql> SELECT 1 + 1; -> 2
Non, vous pouvez très facilement faire
SELECT 1+1
Pas dans MySQL, non. Vous pouvez le faire:
SELECT 1 + 1;
Ce sera dans certains DBMSs si - Oracle par exemple, il faudrait vous faire:
SELECT 1 + 1 FROM DUAL;
FYI, serveur sql permet SELECT x aussi bien –
(EDIT: Maladroit l'onglet MYSQL.)
Cela dépend de la base de données.
Dans Oracle, IIRC, la valeur de est requise. Mais Oracle a une table DUAL qui renvoie toujours une ligne pour les cas où tout le travail est fait dans la clause SELECT.
D'autre part, SQL Server ne nécessite pas FROM, pour renvoyer la valeur d'une variable suffit de le sélectionner:
SELECT @myVar
Comme mentionné par ocedecio DE n'est pas nécessaire dans chaque déclaration.
Par exemple, je tendance à utiliser la syntaxe suivante pour initialiser une table avec des données
insert into status(code, description)
select 'O', 'Open'
union all select 'C', 'Closed'
union all select 'P', 'Parked'
etc ..
EDIT (suite aux commentaires par gamecat)
L'exemple ci-dessus montre lorsque SELECT sans FROM peut avoir une utilisation pratique. Vous pouvez bien sûr il suffit d'appeler:
select 'O', 'Open'
union all select 'C', 'Closed'
union all select 'P', 'Parked'
insert! = Select ;-) –
oui, mais ce que vous pouvez utiliser la partie select séparément, je viens de donner un exemple pratique où il peut être utilisé – kristof
Fondamentalement dans SQL Server 2005 mot clé FROM n'est pas nécessaire pour les fonctions de valeur et Scalar les fonctions du système, mais obligatoire pour les fonctions d'une valeur de table.
Scalar fonctions à valeurs peuvent exécutable comme ci-dessous la syntaxe
Sélectionnez functionname (arguments)
Tableau fonctions à valeurs peuvent exécutable comme ci-dessous la syntaxe
Select * from functionname (arguments)
autre
Sélectionnez col1, col2 à partir du nom de fonction (argument1, argument2)
En fait, les deux "SELECT 1" et "SELECT 1 FROM DUAL" fonctionnent dans les dernières versions de MySQL.
Assez intéressant, "SELECT 1 1 = 1" nécessite une clause FROM: "SELECT 1 FROM DUAL 1 = 1" est très bien. Dans d'autres plates-formes, comme PostgreSQL, "SELECT 1 WHERE 1 = 1" fonctionne correctement.
Une autre bizarrerie: "SELECT 1 FROM DUAL GROUP BY 1 A 1 = 1" fonctionne en MySQL 5.7, mais échoue en MySQL 5.5.
Résumé du nécessaire/optionnelle de clause dans différentes plates-formes:
- MySQL, MariaDB, Amazon Aurora: en option ou utiliser "FROM dual".
- Oracle: utilisez "FROM dual".
- IBM DB2: utilisez "FROM sysibm.sysdummy1".
- Informix: utiliser "DE SysTables OU tabid = 1"
- Firebird, Interbase: utiliser "FROM RDB $ database".
- Microsoft Access: requis, mais pas de table fictive. Essayez d'utiliser "FROM (SELECT COUNT (*) FROM first_table_found WHERE 1 = 0) AS double".
- SQL Server, SQL Azure, SQL Server CE, Sybase ASE, SQL Anywhere, Ingres, PostgreSQL, Redshift, SQLite: facultatif.
- 1. Utilisation de la variable from dans une instruction select
- 2. Instruction IF dans ORDER BY Clause d'une instruction SELECT dans une procédure stockée SQL Server
- 3. SQL: Utilisation de la table cible dans une instruction UPDATE dans une imbriquée clause FROM
- 4. Utilisation d'une instruction SELECT dans la clause WHERE IN WHERE dans (SELECT b ...)
- 5. Est-il possible d'utiliser une instruction Case dans un SQL? De la clause From
- 6. Instruction conditionnelle dans la clause WHERE
- 7. Fonction dans SQL Select Instruction
- 8. Instruction SQL SELECT Tricky
- 9. Encapsulation LINQ instruction select
- 10. Reportez-vous à d'autres instructions SQL SELECT Lissé comme tables dans la clause FROM
- 11. LINQ clause where pas dans l'instruction select
- 12. Mise en veille prolongée DetachedCriteria dans la clause FROM
- 13. php select function génère bizarre where clause
- 14. instruction d'insertion SQL avec select
- 15. TSQL: UPDATE avec INSERT INTO SELECT FROM
- 16. Instruction IF dans un SELECT LINQ
- 17. Instruction SELECT conditionnelle MySQL
- 18. Clause conditionnelle where dans l'instruction Select
- 19. Lambda Expression de Select * from TableName
- 20. MYSQL MyISAM Comment inscrire 2 instruction select + select count
- 21. Utilisation d'un type d'objet dans une instruction select dans Oracle
- 22. Crystal Reports SELECT instruction CASE
- 23. Instruction Django SELECT, ordre par
- 24. SQL: Utilisation d'un INSERT dans une instruction SELECT
- 25. SQL SELECT FROM ... AS avec spécificateur de type de données?
- 26. Comment faire "INSERT INTO table1 (...) SELECT (...) FROM table2" dans LINQ?
- 27. Transact-SQL: insérer dans xyz (select * from abc)
- 28. SQL - instruction Select à l'aide LastIndex
- 29. Variable LIMIT Clause dans MySQL
- 30. SQL - Affectation d'une variable bit instruction select
Je ne pensais pas à l'initialisation des variables. – TheTXI
Oracle ne vous a-t-il pas obligé à SELECT FROM DUAL? –
@Paul - il demande à propos de mysql, je crois que vous avez raison à propos d'Oracle –