数据库基础2.docx

上传人:b****7 文档编号:10275151 上传时间:2023-02-09 格式:DOCX 页数:14 大小:20.31KB
下载 相关 举报
数据库基础2.docx_第1页
第1页 / 共14页
数据库基础2.docx_第2页
第2页 / 共14页
数据库基础2.docx_第3页
第3页 / 共14页
数据库基础2.docx_第4页
第4页 / 共14页
数据库基础2.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

数据库基础2.docx

《数据库基础2.docx》由会员分享,可在线阅读,更多相关《数据库基础2.docx(14页珍藏版)》请在冰豆网上搜索。

数据库基础2.docx

数据库基础2

 

软件环境安装:

V2008/2010

C++.NET,C#.NET

 

一常用HTML控件及代码

补:

进入VS界面,文件---新建---网站

App_data文件下存放你的数据库文件

Default.aspx网站的首页,进入一个网站自动执行的程序.(保存的是网页前台HTML代码)

Default.aspx.cs网页的后台程序代码

Web.conifg:

网页的配置文件(记录本网站的参数)

1文字处理:

(1)文字提行:

……

:

隔行


不隔行的换行

这是我的
第一个网页

试着学习

html语言

不知道学得会不

(2)文字大小,颜色:

不知道学得会不

不知道学得会不

2图片:

注意:

所有的资源文件应该放在本网站的下级子文件夹中.

3DIV层布局:

 中国人民

 表示一个半角空格

中国人人民

注意:

一般用于控制存放文字内容

….
可包含任何对象

4表格布局

例:

一个一行一列的最简单的表格

例:

单元格的合并

111

111

1111

例:

制作网页首页的框架

 

dddddddddddd

dddddddddddd

dddddddddddd

dddddd

 

5常用静态的编程控件(html控件)

(1)文本框

用户名:

注意:

几乎所有的输入类型的控件都是input类,类型type指定它的具体作用

(2)单选按钮

 

逻辑控制语句

1if(条件)

Begin

…..

End

Else

Beging

….

End

C系列语言中:

If(条件)

{…}

Else

{…}

Declare@sgnumeric(4,2)

select@sg=身高from学生表where姓名='李大方'

if(@sg>1.70)

print'比较高'

else

begin

print'不高'

end

注:

注意:

当只有一句时可以不用beginend,当是一个语句块多句时要用

If(a>b)

begin

T=a;

a=b;

b=t;

end//此时三句,begin不能省

说明:

如果不是语句块,则可省掉beginend

例1:

编程实现:

查询出杨春的语文成绩,差判断它是否及格

declare@xmnchar(8),@srsmalldatetime,@ywint

select@xm=姓名,@sr=生日,@yw=语文from学生表where姓名='杨春'

if(@yw>=60)

Printrtrim(@xm)+'的生日是:

'+convert(nchar(10),@sr,20)+',语文及格'

else

printrtrim(@xm)+'的生日是:

'+convert(nchar(10),@sr)+',语文不及格'

说明:

convert(nchar(10),@sr,20)对日期数据转换为串时,前面长度10可控制日期,小时,分,秒是否需要;20表示是一种日期时间显示格式

例:

测试格式数字变化的结果

declare@xmnchar(8),@srsmalldatetime,@ywint

select@xm=姓名,@sr=生日,@yw=语文from学生表where姓名='杨春'

declare@nint

set@n=20

while(@n<=22)

begin

if(@yw>=60)

Printconvert(nchar(3),@n)+rtrim(@xm)+'的生日是:

'+convert(nchar(10),@sr,@n)+',语文及格'

else

printrtrim(@xm)+'的生日是:

'+convert(nchar(16),@sr)+',语文不及格'

set@n=@n+1

end

 

例:

编程实现:

查询出杨春的语文成绩,判断等级:

90以上为优良,80-90为良好,70以上为中等,70以下为差等

补:

格式1

Case表达式

When常量值then结果值

Elsethen结果值

End

格式2:

Case

When条件then结果值

Else结果值

End

方法1

select姓名,语文,等级=

case

when语文>=90then'优秀'

when语文>=80then'良好'

when语文>=70then'中等'

else'差'

endfrom学生表where姓名='杨春'

2while循环

While(条件)

语句/语句块

[break]

[continue]

例:

求s=1+2+3+…+100

declare@sint,@iint

set@i=1

set@s=0

while(@i<=100)

begin

set@s=@s+@i

set@i=@i+1

end

print@s

 

下面列举实例

编程实例:

1求员工的平均工资

 

2给员工加工资,确保工资超过1600,(保证给学生表中的语文达到80分,超过100分的学生不加)

declare@mint,@czint

SELECT@m=MIN(语文)from学生c

set@cz=80-@m

update学生cset语文=语文+@cz

update学生cset语文=100where语文>100//超过100者,回到100

select*from学生c

 

视图view

引例:

使用学生表和成绩表生成一个新表temp11

select学生表.*,成绩表.课程号,成绩表.成绩intotemp11from学生表innerjoin成绩表

on学生表.学号=成绩表.学号

select*fromtemp11

说明:

temp11是一完全独立于学生和成绩表的,学生表和成绩的数据变化不再影响temp11

如果要让原表数据变化实时地反应到新表(视图),

createviewtemp12as(

select学生表.*,成绩表.课程号,成绩表.成绩from学生表innerjoin成绩表

on学生表.学号=成绩表.学号)

select*fromtemp12

视图是一个虚拟表,它的数据来源于数据库原表(或视图),视图依赖于原表存在的,不能单独存在.

createviewmyv1asselect*from学生表where性别='男'

把学生表中的男生提取出来形成一个视图myv1

select*frommyv1

视图与一般表的区别:

如果b表是由a表复制出来的数据,则a,b不再存在关系,数据变化互不影响;

如果b是a表建立的视图,则当a表数据变化时,直接影响b视图的数据结果

例:

使用成绩表和课程表建立一个视图myv2

createviewmyv2as

select成绩表.*,名称,学分from成绩表innerjoin课程表

on成绩表.课程号=课程表.课程号

把两个表中的数据提取出,列向上合并成一个新视图myv2

select*frommyv2

存储过程:

只看用户自定义存储过程

1无参数传递最简单的存储过程

Createproceduremypro1as

declare@xmnchar(8)

set@xm='杨春'

select*from学生表where姓名=@xm

运行它,生成一个过程mypro1

然后可以使用:

execmypro1来运行这个过程

2(mypro2)有参数从外部传入到过程内部

如:

可实验输入一个姓名,查询该人

Createproceduremypro2@xmnchar(8)

as

select*from学生表where姓名=@xm

调用这个过程:

execmypro2'李大方'

跟上哪个姓名就查询哪个人,程序具有通用性

3以上第2例的完善:

Createproceduremypro3@xmnchar(8)

as

declare@noint

select@no=COUNT(*)from学生表where姓名=@xm

if(@no>=1)

select*from学生表where姓名=@xm

else

print'无此人,姓名给错了'

4把参数传进过程,同时需要过程传出来给调用处一个结果

例:

编写一个求n!

的过程mypro5,它接收一个n,返回n!

结果

createproceduremypro5@nint,@reintoutput

as

set@re=1

declare@iint

@i=1

while(@i<=@n)

begin

set@re=@re*@i

@i=@i+1

end

成功后,可以调用:

declare@mint

execmypro56,@moutput

print@m

 

数据插入和更新

Insertinto表1(select*from表2where…)

适用于表2的记录添加到表1后面---合并表

Sql=”select*from学生表where性别=’男’”

Xb=”男”

Sql=”select*from学生表where性别=xb”错

Sql=“select*from学生表where性别=‘“&xb&”’”

Sql=”Insertinto学生表(学号,姓名,身高)value(‘10111’,‘张三’,1.75)”

Xh=”10111”

Xm=”张三”

Sg=1.75

Sql=”Insertinto学生表(学号,姓名,身高)value(‘”

+xh+”‘,’“+xm+”‘,“+sg+”)”

?

sql

 

给男生的101课程的成绩+10

update成绩表set成绩=成绩+10

where学号in(select学号

from学生表where性别='男')

and课程号='101'

update成绩表set成绩=成绩+10

from学生表innerjoin成绩表on学生表.学号=成绩表.学号

where学生表.性别='男'and成绩表.课程号='101'

注意:

连接主要用于查询,但更新,删除也可以用.

流程控制

If语句和while循环

编程实例:

1求学生表中语文平均分,如果平均在80以上,则输出成绩较好的前3名,如果全班平均在80以下,则输出成绩较差的前3名

declare@pjint

select@pj=AVG(语文)from学生表

if(@pj>=80)

begin

print'平均在以上,输出前三名'

selecttop3*from学生表orderby语文desc

end

else

begin

print'平均在以下,输出差三名'

selecttop3*from学生表orderby语文

end

2把学生表复制到新表”学生表2”中,试探着多次给每个学生语文成绩都累加5,直到最差的学生都能及格.(最高不超过100分)

Select*into学生表2from学生表

declare@noint

set@no=0

declare@botfloat

select@bot=MIN(语文)from学生表

while(@bot<60)

begin

set@no=@no+1

update学生表set语文=语文+5

select@bot=MIN(语文)from学生表

end

update学生表set语文=100where语文>100

print@no

1无参数传递最简单的存储过程

Createproceduremypro1as

declare@xmnchar(8)

set@xm='杨春'

select*from学生表where姓名=@xm

运行它,生成一个过程mypro1

然后可以使用:

execmypro1来运行这个过程

2(mypro2)有参数从外部传入到过程内部

如:

可实验输入一个姓名,查询该人

Createproceduremypro2@xmnchar(8)

as

select*from学生表where姓名=@xm

调用这个过程:

execmypro2'李大方'

跟上哪个姓名就查询哪个人,程序具有通用性

3以上第2例的完善:

Createproceduremypro3@xmnchar(8)

as

declare@noint

select@no=COUNT(*)from学生表where姓名=@xm

if(@no>=1)

select*from学生表where姓名=@xm

else

print'无此人,姓名给错了'

4把参数传进过程,同时需要过程传出来给调用处一个结果

例:

编写一个求n!

的过程mypro5,它接收一个n,返回n!

结果

createproceduremypro5@nint,@reintoutput

as

set@re=1

declare@iint

@i=1

while(@i<=@n)

begin

set@re=@re*@i

@i=@i+1

end

成功后,可以调用:

declare@mint

execmypro56,@moutput

print@m

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 图表模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1