存储参数设计
① 设计一个存储过程,要求有两个参数(输入和输出),该存储过程能够返回指定字段(输入)的最大值(输出)
--设计一个存储过程,要求有两个参数(输入和输出),该存储过程能够返回指定字段(输入)的最大值(输出)
GO
IF exists (SELECT * FROM sysobjects WHERE id=object_id(N'Test_Procere'))
DROP PROCEDURE Test_Procere
GO
CREATE PROCEDURE Test_Procere
@Input INT, --输入参数
@Output INT OUTPUT --指定参数为输出参数
AS
BEGIN
SELECT @Output=MAX(<指定列>) FROM <表> --给输出参数赋值
SELECT <指定列> FROM <表> WHERE <条件> --返回的结果集
END
② 存储过程的参数问题
as前面的参数是外参,是调用存储过程的时候要给他设置的,
as后面的参数是内参,是存储过程内部使用的,declare是定义参数用的,就好像下面这样:
public int test(int id)
{
int result=0;
return result;
}
id就是外参,就是调用test方法的时候需要输入的,就像as前面的,result就是内参,是test方法内部使用的,就像as后面的参数
③ 如何创建带参数的存储过程
创建带参数的存储过程首先要在存储过程中声明该参数,每个存储过程参数都必须用唯一的名称进行定义。与T-SQL变量相同,参数名必须以@为前缀,并且遵从标识符规则。当用户不提供该参数的值时可以使用一个默认值来代替。
④ 在数据库存储结构设计时要考虑哪些因素
第一:各个参数是否对应的一个对象(面向对象编程思想);
第二:各个参数可能类型和出现的最大长度,之后合理的设计各个字段的最大长度和相应类型;
第三:各个参数中哪些字段具有唯一性,考虑作为主键或者是外键来进行表关联;
第四:根据数据量的大小来考虑是否需要进行分区处理;
第五:哪些字段是不经常便跟字段,可以考虑进行多张表的存储来节省存储空间(可能影响查询修改效率)
⑤ 如何定义存储过程的默认参数值.
在定义存储过程的参数时候设定
例如:@a int =1
后面的 1 就是参数默认值
⑥ vb.net编写程序时如何存储设置参数
比较专业的做法是在项目中添加微软的Application Settings类,详细帮助文档:
http://msdn.microsoft.com/zh-cn/library/c9db58th.aspx
使用极其简单,假设在settings1.settings设置一个项目,名称:IP,类型:String,范围:用户,值:192.168.1.1
调用:Dim sIP As String = setting.IP
获取缺省值:Dim sIP As String = Settings1.Default.IP
保存: setting.IP = "192.168.1.30" : setting.Save()
⑦ 关于数据库的存储过程的设计
这样的问题回答过多次了。楼上说的都有一些道理,但不是全部。sp当然有执行效率,安全性高一点的好处,但并不是主要的。我认为sp的主要好处,是可以将部分运算集中在数据库服务器上。
举个例子。比方我有个功能,查询某一篇新闻,查询出这篇文章的上一篇,下一篇文章,并把本类文章相关的文章按点击量取出来,同时给这篇文章的点击量加1,再同时把本类文章的访问量加1。如果你不用存储过程,你怎么写?用语句当然可以写,要写一大堆。更重要的是,你要先把本条文章的类别查询出来,才能进行别的查询。如果我用存储过程,我就都写存储过程里了,一,减少了程序和数据库之间的交互次数,自然也减少了连接数。此外,逻辑也灵活一些,比方那个我现在不想让每次点击都加一,我只要在存储过程里把那条语句注释起来就可以了。
存储过程好处很多。当然凭个人爱好,很多不用存储过程,程序一样写得很好。
⑧ 数据库存储过程设计
--第一题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
)
go
use [studentDB]
go
--创建课程表
create table [subject]
(
[subjectId] int identity(1,1) primary key,
[subjectName] varchar(50) not null
)
go
use [studentDB]
go
--创建成绩表(选课表)
create table [score]
(
[studentId] int,
[subjectId] int,
[score] int
)
go
--添加外键约束
--学生ID
alter table [score]
add constraint FK_score_student
foreign key([studentId])
references [student] ([studentId])
go
--科目ID
alter table [score]
add constraint FK_score_subject
foreign key([subjectId])
references [subject] ([subjectId])
go
--插入测试数据
insert [student]
select '张三' union
select '李四' union
select '王五' union
select '高六' union
select '赵七'
go
insert [subject]
select '语文' union
select '数学' union
select '英语'
go
insert [score]
select 1,1,50 union
select 1,2,51 union
select 1,3,52 union
select 2,1,60 union
select 2,2,61 union
select 2,3,62 union
select 3,1,70 union
select 3,2,71 union
select 3,3,72 union
select 5,1,90 union
select 5,2,89 union
select 5,3,88
go
use [studentDB]
go
--创建返回学生选课情况的存储过程
create procere [pro_GetStudentScore]
@stuName varchar(50)
as
select sco.[studentId],sub.[subjectName],sco.[score]
from [subject] sub,[score] sco
where sub.[subjectId]=sco.[subjectId]
and sco.[studentId]=(select [studentId] from [student] where [stuName] = @stuName)
go
exec [pro_GetStudentScore] '赵七'
--select * from [student]
--select * from [subject]
--select * from [score]
⑨ 存储过程中的参数问题
需要两个输入参数:
@CODE
@NAME
create proc uspSelcte
@code int,
@name varchar(20)
as
begin
select *
from student
where code=@code or name=@name
end
--------------------
使用方法:
EXEC uspSelcte '1',''
或者
EXEC uspSelcte '','张三'
⑩ 存储器的技术参数是什么
记忆元件可以是磁芯,半导体触发器、MOS电路或电容器等。 位(bit)是二进制数的最基本单位,也是存储器存储信息的最小单位,8位二进制数称为一个字节(byte)。当一个数作为一个整体存入或取出时,这个数叫做存储字。存储字可以是一个字节,也可以是若干个字节。若干个忆记单元组成一个存储单元,大量的存储单元的集合组成一个存储体(MemoryBank)。 为了区分存储体内的存储单元,必须将它们逐一进行编号,称为地址。地址与存储单元之间一一对应,且是存储单元的唯一标志。应注意存储单元的地址和它里面存放的内容完全是两回事。 存储器在计算机中处于不同的位置,可分为主存储器和辅助存储器。在主机内部,直接与CPU交换信息的存储器称主存储器或内存储器。在执行期间,程序的数据放在主存储器内,各个存储单元的内容可通过指令随机访问,这样的存储器称为随机存取存储器(RAM)。另一种存储器叫只读存储器(ROM),里面存放一次性写入的程序或数据,仅能随机读出。RAM和ROM共同分享主存储器的地址空间。 因于结构、价格原因,主存储器的容量受限。为满足计算的需要而采用了大容量的辅助存储器或称外存储器,如磁盘、光盘等。 存储器的主要技术指标 存储器的特性由它的技术参数来描述。 一、存储容量:存储器可以容纳的二进制信息量称为存储容量。主存储器的容量是指用地址寄存器(MAR)产生的地址能访问的存储单元的数量。如N位字长的MAR能够编址最多达2N个存储单元。一般主存储器(内存)容量在几十K到几M字节左右;辅助存储器(外存)在几百K到几千M字节。 二、存储周期:存储器的两个基本操作为读出与写入,是指将信息在存储单元与存储寄存器(MDR)之间进行读写。存储器从接收读出命令到被读出信息稳定在MDR的输出端为止的时间间隔,称为取数时间TA;两次独立的存取操作之间所需的最短时间称为存储周期TMC。半导体存储器的存储周期一般为100ns-200ns。 三、存储器的可靠性:存储器的可靠性用平均故障间隔时间MTBF来衡量。MTBF可以理解为两次故障之间的平均时间间隔。MTBF越长,表示可靠性越高,即保持正确工作能力越强。 四、性能价格比:性能主要包括存储器容量、存储周期和可靠性三项内容。性能价格比是一个综合性指标,对于不同的存储器有不同的要求。对于外存储器,要求容量极大,而对缓冲存储器则要求速度非常快,容量不一定大。因此性能/价格比是评价整个存储器系统很重要的指标