Skip to content

Les variables

Il existe deux types de variables :

  • les variables systemes (ex. : sql_mode)
    SEL nom_variable
    SET @@nom_variable
    
  • Les variables utilisateurs
    SET @nom_variable
    

    Pour assigner une valeur à une variable, on peut procéder par :

    • @nom_variable = ‘valeur’
    • @nom_variable := ‘valeur’ : obligatoire dans un select

    Spécificité des variables utilisateurs

    Un nom de variable est un identifiant : il est sensible à la casse. Les variables ne sont disponibles que pour l'utilisateur qui les a crées

    Une variable non assignée vaut NULL

    On peut mettre n'importe quel type de valeur à une variable

    Exercices

    Afficher le pays qui à le plus de langues parlées officielles avec le nombre et les langues sous la syntaxe suivante :

    +------------------------------------------------------
    | text
    +------------------------------------------------------
    | Le pays XXX : X langues officielles : YY,YY,YY,...
    +------------------------------------------------------
    
    //Correction
    
    SELECT  CONCAT(
    	'Le pays ',
    	(
    		SELECT
    		IF (
    			(@nombre_langues := COUNT(*))
    		    AND (@langues := GROUP_CONCAT(cl.language)), C.name, C.name
    		)
    		FROM country AS c INNER JOIN countryLanguage AS cl ON(c.code = cl.countryCode)
    		WHERE cl.IsOfficial = 'T'
    		GROUP BY c.code
    		ORDER BY count(*) DESC, Name
    		LIMIT 1
    	) ,
    	'est :',@nombre_langues,' langues officielle ',@langues
    		) AS text;