MySQL笔记三

来源:互联网 发布:caffe windows github 编辑:程序博客网 时间:2024/05/23 19:21

第九课
1、为每张表定义一个主键
2、增加外键表示一对多关系
外键(Foreign Key):如果表A中的一个字段a对应于表B的主键b,则字段a称为表A的外键,此时存储在表A中字段a的值,要么是NULL,要么是来自于表B主键b的值。
情形一:如果实体间的关系为一对多关系,则需要将“一”端实体的主键放到“多”端实体中,然后作为“多”端实体的外键,通过该外键即可表示实体间的一对多关系。
3、一对一可以看成特殊的一对多关系
4、多对多关系
情形二:如果两个实体间的关系为多对多关系,则需要添加新表表示该多对多关系,然后将该关系涉及到的实体的“主键”分别放入到新表中(作为新表的外键),并将关系自身的属性放入到新表中作为新表的字段。

第十课

MySQL开发人员经常将频繁使用的业务逻辑封装成存储程序,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命令专门用于定义局部变量及对应的数据类型。局部变量必须定义在存储程序中(例如函数、触发器、存储过程以及事件中),并且局部变量的作用范围仅仅局限于存储程序中,脱离存储程序,局部变量没有丝毫意义。局部变量定义在存储程序的begin-end语句块之间。此时局部变量首先必须使用declare命令定义,并且必须指定局部变量的数据类型。只有定义局部变量后,才可以使用set命令或者select语句为其赋值。