mysql的变量及数据库表之间的对应关系理解

来源:互联网 发布:网络节点的度 编辑:程序博客网 时间:2024/05/16 14:00

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的存储程序分为四类:函数、触发器、存储过程以及事件。

局部变量定义在存储程序的begin-end语句块之间。此时局部变量首先必须使用declare命令定义,并且必须指定局部变量的数据类型。只有定义局部变量后,才可以使用set命令或者select语句为其赋值。

数据库表之间对应关系的理解:
1、为每张表定义一个主键
2、增加外键表示一对多关系
外键(Foreign Key):如果表A中的一个字段a对应于表B的主键b,则字段a称为表A的外键,此时存储在表A中字段a的值,要么是NULL,要么是来自于表B主键b的值。
情形一:如果实体间的关系为一对多关系,则需要将“一”端实体的主键放到“多”端实体中,然后作为“多”端实体的外键,通过该外键即可表示实体间的一对多关系。
3、一对一可以看成特殊的一对多关系
4、多对多关系

情形二:如果两个实体间的关系为多对多关系,则需要添加新表表示该多对多关系,然后将该关系涉及到的实体的“主键”分别放入到新表中(作为新表的外键),并将关系自身的属性放入到新表中作为新表的字段。

0 0
原创粉丝点击