mysql中的变量:
注:变量的具体应用,会在以后的文章中用示例举出。
·变量分为系统变量(以@@开头)以及用户自定义变量。用户自定义变量分为用户会话变量(以@开头)以及局部变量(不以@开头) 。
1、用户自定义变量
·用户会话变量(以@开头)用户会话变量的定义与赋值
一般情况下,用户会话变量的定义与赋值会同时进行。用户会话变量的定义与赋值有两种方法:使用set命令或者使用select语句。
方法一:使用set命令定义用户会话变量,并为其赋值,语法格式如下:
set @user_variable1=expression1 [,@user_variable2= expression2 , …]
用户会话变量的数据类型是根据赋值运算符“=”右边表达式的计算结果自动分配的。也就是说,等号右边的值决定了用户会话变量的数据类型
方法二:使用select语句定义用户会话变量,并为其赋值,语法格式有两种。
第一种语法格式:select @user_variable1:=expression1 [,user_variable2:= expression2 , …]
第二种语法格式:select expression1 into @user_variable1, expression2 into @user_variable2,…
第一种与第二种语法格式的区别在于:第一种语法格式中的select语句会产生结果集,第二种语法格式中的select语句,仅仅用于会话变量的定义及赋值(但不会产生结果集)。
用户会话变量在本次会话期间一直有效,直至关闭服务器连接。·局部变量
declare命令专门用于定义局部变量及对应的数据类型。局部变量必须定义在存储程序中(例如函数、触发器、存储过程以及事件中),并且局部变量的作用范围仅仅局限于存储程序中,脱离存储程序,局部变量没有丝毫意义。
MySQL开发人员经常将频繁使用的业务逻辑封装成存储程序,MySQL的存储程序分为四类:函数、触发器、存储过程以及事件。
数据库表之间对应关系的理解:
1、为每张表定义一个主键
2、增加外键表示一对多关系
外键(Foreign Key):如果表A中的一个字段a对应于表B的主键b,则字段a称为表A的外键,此时存储在表A中字段a的值,要么是NULL,要么是来自于表B主键b的值。
情形一:如果实体间的关系为一对多关系,则需要将“一”端实体的主键放到“多”端实体中,然后作为“多”端实体的外键,通过该外键即可表示实体间的一对多关系。
3、一对一可以看成特殊的一对多关系
4、多对多关系
情形二:如果两个实体间的关系为多对多关系,则需要添加新表表示该多对多关系,然后将该关系涉及到的实体的“主键”分别放入到新表中(作为新表的外键),并将关系自身的属性放入到新表中作为新表的字段。