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

 更新时间:2011年09月21日 00:33:49   作者:  
从创建数据库到存储过程与用户自定义函数的小感,深入的学习mysql
复制代码 代码如下:

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('软工系')

相关文章

  • Mysql调优Explain工具详解及实战演练(推荐)

    Mysql调优Explain工具详解及实战演练(推荐)

    这篇文章主要介绍了Mysql调优Explain工具详解及实战演练,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Navicat for MySQL(mysql图形化管理工具)是什么?

    Navicat for MySQL(mysql图形化管理工具)是什么?

    这里就给大家介绍一个常用的MySQL数据库管理工具:Navicat for MySQL,需要的朋友可以参考下
    2015-09-09
  • 解读数据库的嵌套查询的性能问题

    解读数据库的嵌套查询的性能问题

    这篇文章主要介绍了解读数据库的嵌套查询的性能问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • MySQL笔记之修改表的实现方法

    MySQL笔记之修改表的实现方法

    我们在创建表的过程中难免会考虑不周,因此后期会修改表。本篇文章就介绍了在mysql中修改表的实现方法。需要的朋友参考下
    2013-05-05
  • MySQL事务的ACID特性以及并发问题方案

    MySQL事务的ACID特性以及并发问题方案

    这篇文章主要介绍了MySQL事务的ACID特性以及并发问题方案,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • MySQL全文索引实现简单版搜索引擎实例代码

    MySQL全文索引实现简单版搜索引擎实例代码

    这篇文章主要给大家介绍了关于MySQL全文索引实现简单版搜索引擎的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • Django2.* + Mysql5.7开发环境整合教程图解

    Django2.* + Mysql5.7开发环境整合教程图解

    这篇文章主要介绍了Django2.* + Mysql5.7开发环境整合教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • linux CentOS6.5 yum安装mysql5.6

    linux CentOS6.5 yum安装mysql5.6

    这篇文章主要为大家详细介绍了linux CentOS6.5 yum安装mysql5.6的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Mysql 5.7 忘记root密码或重置密码的详细方法

    Mysql 5.7 忘记root密码或重置密码的详细方法

    在Centos中安装完MySQL数据库以后,不知道密码,这可怎么办,下面给大家说一下怎么重置密码
    2016-12-12
  • MySQL官方导出工具mysqlpump的使用

    MySQL官方导出工具mysqlpump的使用

    备份恢复是 DBA 绕不开的核心话题,市面上也有很多开源的备份恢复方案,不过官方的 mysqldump 一直是处于鄙视链底端的那个。终于,官方在 MySQL5.7 之后新添加了一个备份工具:mysqlpump,本文将简单的介绍该工具的使用
    2021-05-05

最新评论