5 存储函数与存储过程ppt课件数据库原理与应用 .pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《5 存储函数与存储过程ppt课件数据库原理与应用 .pptx》由会员分享,可在线阅读,更多相关《5 存储函数与存储过程ppt课件数据库原理与应用 .pptx(84页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、5 存储函数与存储过程教学课件数据库原理与应用 数据库原理数据库原理及应用及应用5.1常用的系统函数数据库原理与设计数据库原理与设计3数据库原理数据库原理及应用及应用ABS(x):返回:返回x的绝对值。的绝对值。PI():返回:返回圆周率圆周率的值。的值。SQRT():返回:返回非负数的二次方根。非负数的二次方根。MOD(m,n):返回:返回m被被n除后的余数。除后的余数。ROUND(x,y):把:把x四舍五入到四舍五入到y指定的精度返回。如果指定的精度返回。如果y为负为负数,则将数,则将保留保留x值到小数点左边值到小数点左边y位。位。【例【例5-15-1】示例示例5.1.1 5.1.1 数学
2、函数数学函数SELECT SQRT(ROUND(ABS(-4.01*4.01),0),MOD(-10,3),MOD(10,-3)数据库原理数据库原理及应用及应用5.1.2 5.1.2 字符串函数字符串函数1、计算字符串字符数的函数和字符串长度的函数计算字符串字符数的函数和字符串长度的函数 CHAR_LENGTH(str):返回:返回字符串字符串str所包含的字符个数。所包含的字符个数。LENGTH(str):返回:返回值为字符串的字节长度。一个汉字是值为字符串的字节长度。一个汉字是3个字个字节,一节,一个数字个数字或字母是或字母是1个字节。个字节。【例【例5-5-2 2】示例示例SELECT
3、CHAR_LENGTH(CHINA),LENGTH(CHINA);SELECT CHAR_LENGTH(中国)字符数,LENGTH(中国)字符串长度;数据库原理数据库原理及应用及应用2.合并字符串函数合并字符串函数 CONCAT(s1,s2,)返回结果为返回结果为s1,s2,连接成的字符串,如连接成的字符串,如果任何一个参数为果任何一个参数为NULL,则返回值为,则返回值为NULL。【例【例5-5-3 3】示例示例SELECT CONCAT(MySQL版本:,version)版本信息1,CONCAT_WS(-,MySQL,8.0.27)版本信息2;CONCAT_WS(sep,s1,s2,)返回
4、结果为返回结果为s1,s2,连接成的字连接成的字符串,并用符串,并用sep字符间隔。字符间隔。数据库原理数据库原理及应用及应用3.字符串大小写转换函数字符串大小写转换函数 LOWER(str)或或LCASE(str)是将字符串是将字符串str中的字母字符全部转换中的字母字符全部转换成小写字母。成小写字母。【例【例5-5-4 4】根据用户名查询根据用户名查询customerscustomers表中指定用户的信息。要表中指定用户的信息。要求:用户在输入用户名时不做大小写字母的限制。求:用户在输入用户名时不做大小写字母的限制。SELECT*FROM customers WHERE LOWER(c_n
5、ame)=LCASE(redhOOK);UPPER(str)或或UCASE(str)是将字符串是将字符串str中的字母字符全部转换中的字母字符全部转换成大写字母。成大写字母。数据库原理数据库原理及应用及应用4.删除空格函数删除空格函数 LTRIM(str)返回删除前端空格的字符串返回删除前端空格的字符串str;【例【例5-5-5 5】根据用户名查询根据用户名查询customerscustomers表中指定用户的信息。请表中指定用户的信息。请考虑到用户输入值时可能存在输入前端或尾部空格的情况。考虑到用户输入值时可能存在输入前端或尾部空格的情况。SELECT*FROM customers WHER
6、E UPPER(c_name)=TRIM(UCASE(redhOOK);TRIM(str)返回删除前端和尾部空格的字符串返回删除前端和尾部空格的字符串str。RTRIM(str)返回删除尾部空格的字符串返回删除尾部空格的字符串str;【注意注意】这】这3个函数只删除字符串前端和尾部空格,不删除字符个函数只删除字符串前端和尾部空格,不删除字符串中间的空格。串中间的空格。数据库原理数据库原理及应用及应用5.取子串函数取子串函数 LEFT(str,length)返回字符串返回字符串str最左侧长度为最左侧长度为length的子串;的子串;【例【例5-5-6 6】返回返回fruitsfruits表中表
7、中f_namef_name值以值以bb开头的水果信息。开头的水果信息。SELECT*FROM fruits WHERE SUBSTRING(f_name,1,1)=b;SUBSTRING(str,start,length)返回字符串返回字符串str从从start开始长度为开始长度为length的子串。的子串。RIGHT(str,length)返回字符串返回字符串str最右侧长度为最右侧长度为length的子串;的子串;SELECT*FROM fruits WHERE f_name LIKE b%;数据库原理数据库原理及应用及应用6.其它字符串函数其它字符串函数函数名功 能INSERT(s1,x
8、,len,s2)将字符串s1中x位置开始长度为len的子串用s2替换REPLACE(s,s1,s2)将字符串s中所有的子串s1用s2替换STRCMP(s1,s2)比较字符串s1和s2,相等返回0,大于等于返回1,小于返回-1REPEAT(s,n)返回字符串s重复n次的结果REVERSE(s)将字符串s反转,返回的字符串顺序和s顺序相反 FIND_IN_SET(s1,s2)返回字符串s1在字符串列表s2中出现的位置,字符串列表s2是一个由多个逗号分开的字符串组成的列表POSITION(s1 IN s2)或LOCATE(s1,s2)返回子串s1在字符串s2中第一次出现的位置数据库原理数据库原理及应
9、用及应用5.1.3 5.1.3 日期和时间函数日期和时间函数1.获取当前系统的日期及取日期的年、月、日函数获取当前系统的日期及取日期的年、月、日函数 CURDATE()或或CURRENT_DATE()返回当前系统日期,返回当前系统日期,格式为格式为YYYY-MM-DD。【例【例5-5-8 8】通过通过ordersorders表和表和customerscustomers表,查询表,查询20212021年下订单的年下订单的客户编号、姓名及所在的城市。客户编号、姓名及所在的城市。SELECT distinct c.c_id,c_name,c_city FROM customers c,orders
10、o WHERE c.c_id=o.c_id AND YEAR(o_date)=2021;YEAR(d)、MONTH(d)、DAY(d)分别返回日期或日期时间分别返回日期或日期时间d的的年、月、日的值。年、月、日的值。数据库原理数据库原理及应用及应用2.获取当前系统日期时间函数获取当前系统日期时间函数NOW()SYSDATE()CURRENT_TIMESTAMP()LOCALTIME()格式为格式为YYYY-MM-DD HH:MM:SS。【例【例5-5-9 9】根据出生日期计算年龄。根据出生日期计算年龄。SELECT SYSDATE(),YEAR(SYSDATE()-YEAR(2003/05/2
11、3)年龄;数据库原理数据库原理及应用及应用3.其它日期和时间函数其它日期和时间函数函数名功 能CURTIME()或CURRENT_TIME()返回当前的系统时间DAYOFWEEK(date)返回date所代表的一星期中的第几天(1-7)QUARTER(date)返回date在一年中的季度(1-4)WEEK(date)返回日期date为一年中第几周(0-53)HOUR(time)返回time的小时值(0-23)MINUTE(time)返回time的分钟数(0-59)SECOND(time)返回time的秒数(0-59)DATE_ADD(date,INTERVAL i keyword)返回日期da
12、te加上间隔时间i的结果。如:DATE_ADD(2021-11-29,INTERVAL 2 YEAR)DATE_SUB(date,INTERVAL i keyword)返回日期date减去间隔时间i的结果。如:DATE_SUB(2021-11-29 20:10:58,INTERVAL 10 SECOND)DATEDIFF(date1,date2)返回起始时间date1和结束时间date2之间的天数。数据库原理数据库原理及应用及应用5.1.4 5.1.4 系统信息函数系统信息函数1.获取获取MySQL版本号、用户名和数据库名函数版本号、用户名和数据库名函数USER()返回当前登录的用户名。返回当
13、前登录的用户名。【例【例5-5-1010】显示当前显示当前MySQLMySQL版本号、登录的用户名和使用的数版本号、登录的用户名和使用的数据库。据库。SELECT VERSION()版本号,USER()登录名,DATABASE()数据库名;VERSION()返回返回MySQL服务器版本号。服务器版本号。DATABASE()返回当前使用数据库名。返回当前使用数据库名。数据库原理数据库原理及应用及应用2.其它系统信息函数其它系统信息函数函数名功 能CONNECTION_ID()返回MySQL服务器当前连接的次数,每个连接都有各自唯一的IDFOUND_ROWS()返回最后一个SELECT查询检索的总
14、行数CHARSET(str)返回字符串str的字符集,默认的字符集是utf8LAST_INSERT_ID()返回最后生成的AUTO_INCREMENT值数据库原理数据库原理及应用及应用5.1.5 5.1.5 条件判断函数条件判断函数1.IF()函数函数IF(条件表达式条件表达式,v1,v2)如果条件表达式是真则函数返回如果条件表达式是真则函数返回v1值,否则返回值,否则返回v2的值。的值。【例【例5-5-1111】显示显示customerscustomers表的表的c_idc_id、c_namec_name和和c_emailc_email,当,当c_emailc_email字段值为字段值为NU
15、LLNULL时,显示值为时,显示值为nonenone,否则显示当前字段的值。,否则显示当前字段的值。SELECT c_id,c_name,IF(c_email IS NULL,none,c_email)c_email FROM customers;数据库原理数据库原理及应用及应用2.IFNULL()函数函数IFNULL(v1,v2)返回参数返回参数v1或或v2的值。假如的值。假如v1不为不为NULL,则返回值为,则返回值为v1,否则返回值为否则返回值为v2。【例【例5-5-1212】显示显示customerscustomers表的表的c_idc_id、c_namec_name和和c_email
16、c_email,当,当c_emailc_email字段值为字段值为NULLNULL时,显示值为时,显示值为nonenone,否则显示当前字段,否则显示当前字段的值。的值。SELECT c_id,c_name,IFNULL(c_email,none)c_email FROM customers;数据库原理数据库原理及应用及应用3.CASE函数函数(1)语法格式一语法格式一 CASE 表达式表达式 WHEN v1 THEN r1 WHEN v2 THEN r2 ELSE rn END【例【例5-5-1313】对对fruitsfruits表表按按f_namef_name的升序排列,的升序排列,显示前
17、三条记录的水果显示前三条记录的水果中文名称。中文名称。SELECT f_name,CASE f_name WHEN apple THEN 苹果 WHEN apricot THEN 杏 WHEN banana THEN 香蕉 END 中文名称 FROM fruits ORDER BY f_name LIMIT 3;数据库原理数据库原理及应用及应用(2)语法格式语法格式二二CASE WHEN 条件表达式条件表达式 THEN r1 WHEN 条件表达式条件表达式 THEN r2 ELSE rnEND数据库原理数据库原理及应用及应用【例【例5-5-1414】对对fruitsfruits表按表按f_na
18、mef_name的升序排列,显示前三条的升序排列,显示前三条记录的水果单价与平均单价的比较信息。记录的水果单价与平均单价的比较信息。SELECT f_name,f_price,CASE WHEN f_price(SELECT AVG(f_price)FROM fruits)THEN 高于平均价格 WHEN f_price=3;orderitemsorderitems表表数据库原理数据库原理及应用及应用3)日期和时间常量)日期和时间常量 日期和时间常量使用特定格式的字符日期值表示,用单引号括起来。【例【例5-5-1818】根据根据ordersorders表和表和customerscustomer
19、s表,查询表,查询20212021年年9 9月月3030日的日的订单编号、用户名称及地址信息。订单编号、用户名称及地址信息。SELECT o_num,c_name,c_address FROM orders o,customers c WHERE o.c_id=c.c_id and o_date=2021/09/30;ordersorders表表customerscustomers表表数据库原理数据库原理及应用及应用4)布尔值常量)布尔值常量 布尔值只有true和false两个值,SQL命令运行结果用1代表true,用0代表false。【例【例5-5-1919】查询查询fruitsfruits
20、表中以表中以tt开头的水果编号的开头的水果编号的f_idf_id、f_namef_name及及f_pricef_price是否大于水果平均单价的判断结果。是否大于水果平均单价的判断结果。SELECT f_id,f_name,f_price(SELECT AVG(f_price)FROM fruits)单价比较结果 FROM fruits WHERE f_id LIKE t%;数据库原理数据库原理及应用及应用5)NULL值值 NULL值适用于各种字段类型,通常表示“不确定的值”,NULL值参与的运算,结果仍为NULL值。【例【例5-5-2020】在在fruitsfruits表中插入一条记录,表中
21、插入一条记录,f_idf_id为为t3,f_namet3,f_name为为orangeorange,s_ids_id为为101101。INSERT INTO fruits(f_id,s_id,f_name)VALUES(t3,101,orange);将插入的f_id值为t3的记录的f_price字段值在原有价格的基础增加1.5元。UPDATE fruits SET f_price=f_price+1.5 WHERE f_id=t3;DELETE FROM fruits WHERE f_price IS NULL;数据库原理数据库原理及应用及应用1)局部变量)局部变量 2.变量变量【例【例5-5
22、-2121】查询查询fruitsfruits表中最高单价值赋给变量表中最高单价值赋给变量max_pricemax_price,并显,并显示其值。示其值。SET max_value=(SELECT MAX(f_price)FROM fruits);SELECT max_value 最高单价;(1)局部变量的定义与赋值 SET 局部变量名=表达式1,局部变量名=表达式2,(2)局部变量的显示 SELECT 局部变量名,局部变量名,数据库原理数据库原理及应用及应用【例【例5-5-2222】查询查询supplierssuppliers表中供应商编号为表中供应商编号为101101的供应商姓名和的供应商姓
23、名和电话的值赋给变量电话的值赋给变量namename和和phonephone,并显示两个变量的结果。,并显示两个变量的结果。SELECT s_name,s_call INTO name,phone FROM suppliers WHERE s_id=101;SELECT name,phone;【例【例5-5-2323】根据根据namename变量所给的值查询变量所给的值查询customerscustomers表中指定客户的表中指定客户的信息。信息。SET name=RedHook;SELECT*FROM customers WHERE c_name=name;数据库原理数据库原理及应用及应用2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 存储函数与存储过程ppt课件数据库原理与应用 存储 函数 过程 ppt 课件 数据库 原理 应用
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内