mysql 存储过程 isnull?中isnull函数的用法

seosqwseo2个月前 (09-12)测评日记33

一、创建一个存储过程

--如下,可直接**到SQLServer的查询中执行use master

go

--创建数据库

if(db_id('studentDB')) is not null

drop database [studentDB]

create database [studentDB]

go

use [studentDB]

go

--创建学生表

create table [student]

(

[studentId] int identity(1,1) primary key,

[stuName] varchar(50) not null

)

gouse [studentDB]

go

--创建成绩表

create table [score]

(

[studentId] int not null,

[subjectName] varchar(50) not null,

[score] int

)

go

--添加外键约束

--学生ID

alter table [score]

add constraint FK_score_student

foreign key([studentId])

references [student]([studentId])

go

--插入测试数据

insert [student]

select'张三' union

select'李四' union

select'王五' union

select'高六' union

select'赵七'

goinsert [score]

select 1,'语文',50 union

select 1,'数学',51 union

select 1,'英语',52 union

select 2,'语文',60 union

select 2,'数学',61 union

select 2,'英语',62 union

select 3,'语文',70 union

select 3,'数学',71 union

select 3,'英语',72 union

select 4,'数学',null union

select 4,'语文',100 union

select 4,'英语',null

go

use [studentDB]

go

--创建返回学生选课情况的存储过程

alter procedure [pro_GetStudentScore]

@subjectName varchar(50)

as

select stu.[studentId],stu.[stuName],isnull(sco.[subjectName],'该生没选择任何课程') [课程],isnull(convert(varchar(50),sco.[score]),'成绩表中没有这门课的成绩') [成绩]

from [student] stu left join [score] sco on(stu.[studentId]=sco.[studentId])

where sco.[subjectName]=@subjectName

go

--exec [pro_GetStudentScore]'英语'

--select* from score

二、mysql存储过程中执行sql不成功

关键词:启动SQL SERVER时自动执行存储过程

将存储过程创建在master数据库中,然后企业管理器中找到这个存储过程--右键--属性--勾选"每当sql server启动时执行"。

或者在master中创建存储过程后,执行语句设置为自动启动

use master

exec sp_procoption'存储过程名','startup','on'

自动执行存储过程

SQL Server启动时可以自动执行一个或多个存储过程。这些存储过程必须由系统管理员创建,并在 sysadmin固定服务器角色下作为后台过程执行。这些过程不能有任何输入参数。

对启动过程的数目没有限制,但是要注意,每个启动过程在执行时都会占用一个连接。如果必须在启动时执行多个过程,但不需要并行执行,则可以指定一个过程作为启动过程,让该过程调用其它过程。这样就只占用一个连接。

在启动时恢复了后一个数据库后,即开始执行存储过程。若要跳过这些存储过程的执行,请将启动参数指定为跟踪标记 4022。如果以低配置启动 SQL Server(使用-f标记),则启动存储过程也不会执行。有关更多信息,请参见跟踪标记。

若要创建启动存储过程,必须作为 sysadmin固定服务器角色的成员登录,并在 master数据库中创建存储过程。

使用 sp_procoption可以:(中网互赢手机客户端

将现有存储过程指定为启动过程。

三、mysql 存储过程总结(一)

1、存储过程定义:

存储过程是事先经过编译并存储在数据库中的一段 SQL语句的**,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想上很简单,就是数据库 SQL语言层面的代码封装与重用。

2、特点:

封装,复用:可以把某一业务SQL封装在存储过程中,需要用到的时候直接调用即可。

可以接收参数,也可以返回数据:再存储过程中,可以传递参数,也可以接收返回值。

减少网络交互,效率提升:如果涉及到多条SQL,每执行一次都是一次网络传输。而如果封装在存储过程中,我们只需要网络交互一次可能就可以了。

3、基本语法

(1)创建:

(2)调用:

(3)查看:

(4)删除

注意:在命令行中,执行创建存储过程的SQL时,需要通过关键字 delimiter指定SQL语句的结束符。

四、sql***中isnull函数的用法

1,语法:

ISNULL( check_expression, replacement_value)

2,参数:

check_expression**

将被检查是否为 NULL的表达式。check_expression可以是任何类型的。

replacement_value

在 check_expression为 NULL时将返回的表达式。replacement_value必须与check_expresssion具有相同的类型。

3,返回类型:

返回与 check_expression相同的类型。

4,注释:

如果 check_expression不为 NULL,那么返回该表达式的值;否则返回 replacement_value。

5,示例:

将 ISNULL与 **G一起使用

*下面的示例查找所有书的平均价格,用值$10.00替换 titles表的 price列中的所有 NULL条目。

USE pubs

GO

SELECT **G(ISNULL(price,$10.00))

FROM titles

GO*

扩展资料:

Oracle没有 ISNULL()函数。不过,可以使用 NVL()函数达到相同的结果。

MySQL也拥有类似 ISNULL()的函数。不过它的工作方式与微软的 ISNULL()函数有点不同。

在 MySQL中,我们可以使用 IFNULL()函数。

参考资料:百度百科-IsNull

相关文章

小米(MI)电视RedmiX65T质量怎么样

小米(MI)电视RedmiX65T质量怎么样

很多小伙伴在关注小米(MI)电视RedmiX65T怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看...

TCL电视75Q10G质量怎么样

TCL电视75Q10G质量怎么样

很多小伙伴在关注TCL电视75Q10G怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

SHARP夏普电视4T-M65U5EA65英寸液晶4K超高清彩电3G+32G自升降摄像头云游戏AI远场语音智能平板电视怎么样

SHARP夏普电视4T-M65U5EA65英寸液晶4K超高清彩电3G+32G自升降摄像头云游戏AI远场语音智能平板电视怎么样

很多小伙伴在关注SHARP夏普电视4T-M65U5EA65英寸液晶4K超高清彩电3G+32G自升降摄像头云游戏AI远场语音智能平板电视怎么样?质量好不好?使用测评如何?本文...

SONY索尼(SONY)KD-75X80K75英寸图文测评

SONY索尼(SONY)KD-75X80K75英寸图文测评

很多小伙伴在关注SONY索尼(SONY)KD-75X80K75英寸怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的...

TCL电视55V8E怎么样?质量测评好不好用?

TCL电视55V8E怎么样?质量测评好不好用?

很多小伙伴在关注TCL电视55V8E怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

JAV会议平板电视会议一体机同屏器投屏器电脑可双向操作【商业显示】使用感受如何

JAV会议平板电视会议一体机同屏器投屏器电脑可双向操作【商业显示】使用感受如何

很多小伙伴在关注JAV会议平板电视会议一体机同屏器投屏器电脑可双向操作【商业显示】怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推...