GVKun编程网logo

MySQL:@variable 与变量。有什么不同?

15

针对MySQL:@variable与变量。有什么不同?这个问题,本篇文章进行了详细的解答,同时本文还将给你拓展$VARIABLE和${VARIABLE}之间有什么区别、(*variable)和*&va

针对MySQL:@variable 与变量。有什么不同?这个问题,本篇文章进行了详细的解答,同时本文还将给你拓展$ VARIABLE和$ {VARIABLE}之间有什么区别、(*variable) 和 *&variable 有什么区别?、linux – $VARIABLE和${VARIABLE}之间有什么区别、Local variable AND Instance variable / 局部变量 与 实例变量区别等相关知识,希望可以帮助到你。

本文目录一览:

MySQL:@variable 与变量。有什么不同?

MySQL:@variable 与变量。有什么不同?

在我发布的另一个问题中,有人告诉我,两者之间存在差异:

@variable

和:

variable

在 MySQL 中。他还提到了 MSSQL 如何具有批处理范围而 MySQL 具有会话范围。有人可以为我详细说明一下吗?

答案1

小编典典

MySQL 有一个 用户定义变量 的概念。

它们是松散类型的变量,可以在会话中的某处初始化并保持其值直到会话结束。

它们前面带有一个@标志,如下所示:@var

SET您可以使用语句或在查询中初始化此变量:

SET @var = 1SELECT @var2 := 2

在 MySQL 中开发存储过程时,可以传递输入参数并声明局部变量:

DELIMITER //CREATE PROCEDURE prc_test (var INT)BEGIN    DECLARE  var2 INT;    SET var2 = 1;    SELECT  var2;END;//DELIMITER ;

这些变量前面没有任何前缀。

过程变量和特定于会话的用户定义变量之间的区别在于,NULL每次调用过程时都会重新初始化过程变量,而特定于会话的变量则不会:

CREATE PROCEDURE prc_test ()BEGIN    DECLARE var2 INT DEFAULT 1;    SET var2 = var2 + 1;    SET @var2 = @var2 + 1;    SELECT  var2, @var2;END;SET @var2 = 1;CALL prc_test();var2  @var2---   ---2     2CALL prc_test();var2  @var2---   ---2     3CALL prc_test();var2  @var2---   ---2     4

如您所见,var2每次调用过程时都会重新初始化 (procedure variable),而@var2(session-specific
variable) 则不会。

(除了用户定义的变量,MySQL 还有
一些预定义的“系统变量”,可能是“全局变量”如@@global.port或“会话变量”如@@session.sql_mode;这些“会话变量”与会话特定的用户定义无关变量。)

$ VARIABLE和$ {VARIABLE}之间有什么区别

$ VARIABLE和$ {VARIABLE}之间有什么区别

任何人都可以请给我一个解释,为什么一些Linux专家build议我们在Bash脚本中使用$ {VARIABLE}? 似乎没有任何区别。

不能使用任何环境variables

为什么不从bash脚本导出工作

程序使用过时的(不是当前的)envvariables值

shell和环境variables之间的区别

Debian $ PATHvariables的变化

假设你想打印$VARIABLE ,紧接着是"string"

echo "$VARIABLEstring" # tries to print the variable called VARIABLEstring echo "${VARIABLE}string" # prints $VARIABLE and then "string"

Bash还支持使用此语法的字符串操作 。

你可能想要这样做的一个原因是作为分隔符:

a=42 echo "${a}sdf" # 42sdf echo "$asdf" # prints nothing because there's no variable $asdf

这个功能通常用来保护周围字符的变量名。

$ var=foo

如果我们希望在$var的末尾连接一个字符串我们不能这样做:

$ echo $varbar $

因为这是试图使用一个新的变量$varbar 。

相反,我们需要将{} var {}括在{}中:

$ echo ${var}bar foobar

(*variable) 和 *&variable 有什么区别?

(*variable) 和 *&variable 有什么区别?

(*variable) 和 *&variable 有什么区别?

问题内容

我正在使用 exercism.com 学习 go,并阅读教学大纲中推荐的文档和文章。

现在我在结构中并找到了下一个代码

package main

import "fmt"

type Employee struct {
  firstName, lastName string
  salary              int
  fullTime            bool
}

func main() {
  employee := &Employee{
    firstName: "Walddys",
    lastName:  "Dorrejo",
    salary:    1200,
    fullTime:  true,
  }
  fmt.Println("firstName", (*employee).firstName)
}
登录后复制

但是错误地,我输入了 fmt.println("firstname", *&employee.firstname),这给我带来了与之前在代码块中使用的相同结果。

我的问题是,使用这个指针是否存在不同或相同?


正确答案


&x 生成一个指向 x 的指针,而 *p 取消引用指针 p。因此 * 和 & 有效地相互抵消,例如 v := *&x 和 v := x 两个语句是相同的。

这意味着 *&employee.firstName 与 employee.firstName 相同。

其中 employee 是指向结构体的指针,而 firstName 是该结构体的字段,则表达式 employee.firstName 实际上是 (*employee).firstName 的简写。

这意味着 *&employee.firstName 也与 (*employee).firstName 相同。

请注意,您应该始终更喜欢使用速记符号。

以上就是(*variable) 和 *&variable 有什么区别?的详细内容,更多请关注php中文网其它相关文章!

linux – $VARIABLE和${VARIABLE}之间有什么区别

linux – $VARIABLE和${VARIABLE}之间有什么区别

任何人都可以请我解释为什么有些 Linux专家建议我们在Bash脚本中使用${VARIABLE}?似乎没有任何差别.

解决方法

假设您要立即打印$VARIABLE后跟“string”
echo "$VARIABLEstring"    # tries to print the variable called VARIABLEstring
echo "${VARIABLE}string"  # prints $VARIABLE and then "string"

Bash还使用此语法支持string manipulation.

Local variable AND Instance variable / 局部变量 与 实例变量区别

Local variable AND Instance variable / 局部变量 与 实例变量区别

One extra thing I can think of:

Instance variables are given default values, ie null if it''s an object reference, 0 if it''s an int.

Local variables don''t get default values, and therefore need to be explicitly initialized (and the compiler usually complains if you fail to do this).

 

Local variable:

  • is declared inside a method/constructor or within a block (enclosed in braces)
  • must be initialized before use, otherwise it won''t compile.

Instance variable:

  • is declared inside a class.
  • initialization is not compulsory: if omitted, it contains default value (0, 0.0, false, null, etc.)

今天关于MySQL:@variable 与变量。有什么不同?的讲解已经结束,谢谢您的阅读,如果想了解更多关于$ VARIABLE和$ {VARIABLE}之间有什么区别、(*variable) 和 *&variable 有什么区别?、linux – $VARIABLE和${VARIABLE}之间有什么区别、Local variable AND Instance variable / 局部变量 与 实例变量区别的相关知识,请在本站搜索。

本文标签: