数据库编程的基础

一、常量与变量

1.常量


 (1)字符串常量
 字符串是指用单引号或双引号括起来的字符序列。如‘hello’‘你好’等。每个汉字字
 符用两个字节存储,而每个ASCI字符用一个字节存储。
(2)数值常量
 数值常量可以分为整数常量和浮点数常量。
 整数常量即不带小数点的十进制数,如1894、2、+145345234、-2147483648。浮点数常量是使   用小数点的数值常量,如5.26、-1.39、101.5E5、0.5E-2。

(3)日期时间常量
日期时间常量是由用单引号将表示日期时间的字符串括起来构成的。日期型常量包括年、月、日,数据类型为date,表示形式如“1999-06-17”。时间型常量包括小时数、分钟数、秒数及微秒数,数据类型为time,表示形式如“12:30:43.00013”。MySOL还支持日期/时间的组合,数据类型为datetime 或 timestamp,如“1999-06-17 12:30:43”。datetime 和timestamp 的区别在于:datetime 的年份在1000~9999范围内,而timestamp的年份在1970~2037 范围内,还有就是 timestamp在插入带微秒的日期时间时将微秒忽略。timestamp还支持时区,即在不同时区转换为相应时间。
(4)布尔值
布尔值只包含TRUE 和FALSE 两个可能的值。FALSE的数字值为“0”,TRUE 的数
字值为“1”。

2.变量


变量用于临时存放数据,变量中的数据随着程序的运行而变化。变量有名字及其数据类型两个属性,变量名用于标识该变量,变量的数据类型确定了该变量存放值的格式及允许的运算。MySQL中根据变量的定义方式,将变量分为用户变量和系统变量。
(1)用户变量
用户可以在表达式中使用自己定义的变量,这样的变量叫作用户变量。用户变量在使
用前必须定义和初始化。如果使用没有初始化的变量,它的值为NULL。
用户变量与连接有关。也就是说,一个客户端定义的变量不能被其他客户端看到或使
用。当客户端退出时,该客户端连接的所有用户变量将自动释放。
定义和初始化一个用户变量可以使用SET语句。

(2)系统变量
系统变量是MySQL的一些特定的设置。当MySQL数据库服务器启动的时候,这些设置被读取来决定下一步骤。例如,有些设置定义了数据如何被存储,有些设置则影响到处理速度,还有些设置与日期有关。和用户变量一样,系统变量也有一个值和数据类型,但不同的是,系统变量在MySOL服务器启动时就被引入并初始化为默认值。


二、流程控制语句


流程控制语句是用来控制程序执行流程的语句。使用流程控制语句可以提高编程语言的处理能力。
在MySQL中,常见的流程控制语句有IF语句、CASE语句、LOOP语句、WHILE语句和LEAVE语句等。


1.分支语句


(1)IF语句
IF-THEN-ELSE语句用于控制程序根据不同的条件执行不同的操作。
语法格式如下。
 

IF 条件1 THEN 语句序列1
[ELSEIF 条件2 THEN 语句序列2].
[ELSE 语句序列e]
END IF


语法说明如下。
.条件是判断的条件。当条件为真时,就执行相应的SOL语句。
•语句序列中包含一个或多个SQL语句。
I语句不同于系统的内置IF函数,IF函数只能判断两种情况,所以请注意不要混淆。
(2)CASE语句
CASE语句在介绍选择列的时候已经涉及,这里介绍CASE语甸在存储过程中的用法,与之前略有不同。
语法格式如下。

CASE 表达式
    WHEN 值1 THEN 语句序列1
    [WHEN 值2 THEN 语句序列2]…
    [ELSE 语句序列e]
END CASE

CASE
    WHEN 条件1 THEN 语句序列1
    [WHEN 条件2 THEN 语句序列2]                                  
    [ELSE 语句序列e]          
END CASE


语法说明如下。
•第一种格式中的表达式是要被判断的值或表达式,接下来是一系列的WHEN-THEN块,每一块的值参数都要与表达式的值比较,如果为真,就执行语句序列中的SQL语句。如果前面的每一个块都不匹配,就会执行ELSE块指定的语句。CASE语句最后以ENDCASE结束。
.第二种格式中的CASE关键字后面没有参数,在WHEN-THEN块中,条件指定了一个比较表达式,表达式为真时执行THEN后面的语句。
第二种格式与第一种格式相比,能够实现更为复杂的条件判断,使用起来更方便。
一个CASE语句经常可以充当一个IF-THEN-ELSE语句。

2.循环语句


MySQL支持3条用来创建循环的语句,分别为WHILE、REPEAT和LOOP语句。在存储过程中可以定义0个、1个或多个循环语句。

(1)WHILE语句
语法格式如下。

WHILE 条件 DO 
程序段
END WHILE

语法说明如下。
首先判断条件是否为真,为真则执行程序娶中的语甸;然后再次进行判断,为真则继续循环,不为真则结束循环。

(2)REPEAT语句语法格式如下。

REPEAT
    程序段
UNTLL 条件
END REPEAT

语法说明如下。
REPEAT 语句首先执行程序段中的语句,然后判断条件是否为真,为真则停止循环,
不为真则继续循环。REPEAT也可以被标注。
REPEAT语句和WHILE语句的区别在于:REPEAT语句先执行语句,后进行判断;而
WHILE语句是先判断,条件为真时才执行语句。

(3)LOOP语句语法格式如下。

[语句标号:] LOOP
    程序段
END LOOP [语句标号]

语法说明如下。
LOOP语句允许某特定语句或语句群的重复执行,实现一个简单的循环构造,程序段是需要重复执行的语句。在循环内的语何一直重复至循环被退出,退出时通常伴随一个LEAVE 语句。

(4)LEAVE语句
LEAVE语句经常和BEGIN-END或循环一起使用。
语法格式如下。

LEAVE 语句标号

语法说明如下。
语句标号是语句中标注的名字,这个名字是自定义的,加上LEAVE 关键字就可以用
来退出被标注的循环语句。

  • 23
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值