1 returns char ??应该renturn int吧。
10年积累的成都做网站、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先建设网站后付款的网站建设流程,更有叙州免费网站建设让你可以放心的选择与我们合作。
2. null是没查到数,加一个处理 select nvl(成绩, 0) from 选课信息表 ....
在使用mysql的过程中,mysql自带的函数可能不能完成我们的业务需求,这时就需要自定义函数,
函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。
在MySQL——函数的使用方法与MySQL内部函数的使用方法一样。
函数名: 自己取,只要符合标识符规范即可 ,是假设表中的性别字段名为sex,并且字段类型为
字符串,字段值只能是"男" ,"女". 因为有些表中,sex为smallint类型,值1 代表男,
0代表女.
表名: 是你所要操作的表。如学生表,员工表
sql语句 where sex = sex : 第一个sex 是表中的字段名sex ,第二个sex,是从外部传进来的 值。如传 "男" ,当然也可以传 "女",就能得到女生的人数.
create function 函数名(sex varchar(2)) returns smallint
begin
declare peoples int;
select count(*) from 表名 where sex=sex into peoples;
return peoples;
end;
在使用MySQL数据库时,有时会遇到MySQL函数不能创建的情况。出错信息大致类似:ERROR1418(HY000):ThisfunctionhasnoneofDETERMINISTIC,NOSQL,orREADSSQLDATAinitsdeclarationandbinaryloggingisenabled(you*might*wanttousethelesssafelog_bin_trust_function_creatorsvariable)ERROR1418(HY000):ThisfunctionhasnoneofDETERMINISTIC,NOSQL,orREADSSQLDATAinitsdeclarationandbinaryloggingisenabled(you*might*wanttousethelesssafelog_bin_trust_function_creatorsvariable)MySQL函数不能创建,是未开启功能:mysql show variables like '%func%'; +---------------------------------+-------+ | Variable_name | Value | +---------------------------------+-------+ | log_bin_trust_function_creators | OFF | +---------------------------------+-------+ 1 row in set (0.00 sec) mysql set global log_bin_trust_function_creators=1; Query OK, 0 rows affected (0.00 sec) mysql show variables like '%func%'; +---------------------------------+-------+ | Variable_name | Value | +---------------------------------+-------+ | log_bin_trust_function_creators | ON | +---------------------------------+-------+ 1 row in set (0.00 sec)mysql
DELIMITER $$
CREATE FUNCTION `ChkInsert`(in_pk int) returns int
begin
declare _count int;
declare _returnValue int;
set _count = 0;
select count(列1) into _count from 你的表 where 列1 = in_pk;
if _count 0 then
set _returnValue = 2;
else
insert into 你的表 ( 列1 ) values ( in_pk );
set _returnValue = 0;
end if;
return _returnValue;
end $$
mysql CREATE FUNCTION HelloWorld4()
- RETURNS VARCHAR(20)
- BEGIN
- RETURN 'Hello World!';
- END;
- //
Query OK, 0 rows affected (0.00 sec)
mysql select HelloWorld4() //
+---------------+
| HelloWorld4() |
+---------------+
| Hello World! |
+---------------+
1 row in set (0.00 sec) ...展开mysql CREATE FUNCTION HelloWorld4()
- RETURNS VARCHAR(20)
- BEGIN
- RETURN 'Hello World!';
- END;
- //
Query OK, 0 rows affected (0.00 sec)
mysql select HelloWorld4() //
+---------------+
| HelloWorld4() |
+---------------+
| Hello World! |
+---------------+
1 row in set (0.00 sec)