从创建数据库到存储过程与用户自定义函数的小感

时间:2024-01-16 23:42:05 


create database MyDb
on
(
name=mainDb,
filename='c:\MyDb\mainDb.mdf',
size=10,
maxsize=100,
filegrowth=4
),
(
name=secondDb,
filename='C:\MyDb\secondDb.ndf',
size=15,
maxsize=28,
filegrowth=2
)
log on
(
name=log_Db,
filename='C:\MyDb\log_Db',
size=20,
filegrowth=10%
)
--创建数据库的一般格式
use mydb
create table student
(
stuId int primary key identity (1,1),
stuName varchar (20) not null,
stuAge int not null check(stuAge between 20 and 50),
stuSex varchar(4) not null check(stusex in('F','M')),
stuDept varchar(20) check( stuDept in('软工系','环艺系','电子商务系')),
stuAddress varchar(20) not null
)
drop table student
select * from student
insert into student values ('孙业宝',22,'M','软工系','河北省邢台市')
insert into student values ('孙婷',20,'F','电子商务系','河北省邢台市')
insert into student values ('孟几',22,'F','电子商务系','河北省邢台市')
insert into student values ('小五',22,'M','软工系','河北省革要市')
insert into student values ('王丹丹',22,'M','软工系','河北省阜阳市')
insert into student values ('陈海波',22,'M','软工系','河北省合肥市')
--单一的输入输出参数的存储过程,
create proc Myproc
@Dept varchar(20),@count int output
As
if not exists(select * from student where Studept=@dept)
print '没有指定类型的学生存在!!'
else
select @count=Count(*) from student where studept=@dept
drop proc myproc
--执行该存储过程
declare @result int
Exec myproc '软工系',@result output
print @result
--多输入输出的存储过程.
create proc Searchstu
@area varchar(20),@Sex varchar(2),@count int output,@avg_age int output
as
select @count=count(*),@avg_age=Avg(stuage) from student
where stuaddress=@area and stusex=@sex
--执行该存储过程
declare @stuNo int ,@stuAvg_age int
exec searchstu '河北省邢台市','M',@stuNo output,@stuAvg_age output
select @stuNo as 学生总数,@stuavg_age as 平均年龄
--用户自定义的函数(求立方体体积定义标题函数返回单一值)
create function dbo.CubicVolume
(@CubeLength int,@CubeHenght int,@CubeWidth int)
Returns int
as
begin
return (@CubeLength*@CubeHenght*@CubeWidth)
end
drop function CubicVolume
--调用该方法
select dbo.CubicVolume(10,10,10)
--用户自定义的函数(内嵌表形式,返回一个表)
create function f_stuInfo(@studept varchar(20))
returns table
as
return
(
select * from student where studept=@studept
)
--调用该方法
select * from dbo.f_stuInfo('软工系')
--用户自定义的函数(多语句表值函数,返回一个用户想要显的部分数据的表)
create function f_stuSexTye(@stuDept varchar(10))
returns @t_stuDetailInfo table(
stuName varchar(20),
stuAge int ,
stuSex varchar(4)
)
as
begin
insert into @t_stuDetailInfo
select Stuname,stuage,
Case stusex
when 'M' then '男'
when 'F' then '女'
end
from student
where stuDept=@studept
return
end
--调用该方法函数
select * from dbo.f_stuTye('软工系')
标签:存储过程,自定义函数
0
投稿

猜你喜欢

  • python实现抖音点赞功能

    2023-08-13 04:06:50
  • 如何优化下面这段代码?

    2010-01-23 11:30:00
  • python爬取youtube视频的示例代码

    2021-10-02 16:25:26
  • 网页设计图标使用指南[译]

    2009-03-11 21:13:00
  • 对架构师的建议:博学笃志,切问近思

    2009-09-25 12:55:00
  • golang/python实现归并排序实例代码

    2023-12-13 04:19:01
  • asp日期 时间 星期函数使用方法详解

    2007-09-21 17:38:00
  • OpenCV 基本图形绘制函数详解

    2022-01-22 11:09:59
  • Python OpenCV之图片缩放的实现(cv2.resize)

    2023-01-08 14:02:48
  • sql 自定义百分比转换小数函数代码

    2011-09-30 11:54:01
  • 分享101个MySQL调试与优化技巧

    2024-01-20 23:36:58
  • golang中defer的基本使用教程

    2023-07-03 01:19:02
  • Python + opencv对拍照得到的图片进行背景去除的实现方法

    2022-09-06 19:14:51
  • 基于golang的简单分布式延时队列服务的实现

    2024-05-08 10:44:03
  • php出现Cannot modify header information问题的解决方法大全

    2024-05-02 17:35:21
  • python利用xlsxwriter模块 操作 Excel

    2023-02-11 00:43:02
  • 一段Asp301重定向过程代码

    2010-05-04 16:38:00
  • Python实现绘制双柱状图并显示数值功能示例

    2023-12-06 06:31:03
  • Python性能分析工具py-spy原理用法解析

    2021-08-30 14:57:23
  • 你需要理解的关于MySQL的锁知识

    2024-01-21 05:17:11
  • asp之家 网络编程 m.aspxhome.com