数据库基础2.docx
《数据库基础2.docx》由会员分享,可在线阅读,更多相关《数据库基础2.docx(14页珍藏版)》请在冰豆网上搜索。
数据库基础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表格布局
例:
一个一行一列的最简单的表格
单元格的合并
制作网页首页的框架
5常用静态的编程控件(html控件)
(1)文本框
用户名:
几乎所有的输入类型的控件都是input类,类型type指定它的具体作用
(2)单选按钮
男
女
逻辑控制语句
1if(条件)
Begin
…..
End
Else
Beging
….
C系列语言中:
If(条件)
{…}
Declare@sgnumeric(4,2)
select@sg=身高from学生表where姓名='李大方'
if(@sg>1.70)
print'比较高'
else
begin
print'不高'
end
注:
当只有一句时可以不用beginend,当是一个语句块多句时要用
If(a>b)
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)+',语文及格'
printrtrim(@xm)+'的生日是:
'+convert(nchar(10),@sr)+',语文不及格'
convert(nchar(10),@sr,20)对日期数据转换为串时,前面长度10可控制日期,小时,分,秒是否需要;20表示是一种日期时间显示格式
测试格式数字变化的结果
declare@nint
set@n=20
while(@n<=22)
Printconvert(nchar(3),@n)+rtrim(@xm)+'的生日是:
'+convert(nchar(10),@sr,@n)+',语文及格'
'+convert(nchar(16),@sr)+',语文不及格'
set@n=@n+1
查询出杨春的语文成绩,判断等级:
90以上为优良,80-90为良好,70以上为中等,70以下为差等
格式1
Case表达式
When常量值then结果值
Elsethen结果值
格式2:
Case
When条件then结果值
Else结果值
方法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)
set@s=@s+@i
set@i=@i+1
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
调用这个过程:
execmypro2'李大方'
跟上哪个姓名就查询哪个人,程序具有通用性
3以上第2例的完善:
Createproceduremypro3@xmnchar(8)
declare@noint
select@no=COUNT(*)from学生表where姓名=@xm
if(@no>=1)
print'无此人,姓名给错了'
4把参数传进过程,同时需要过程传出来给调用处一个结果
编写一个求n!
的过程mypro5,它接收一个n,返回n!
结果
createproceduremypro5@nint,@reintoutput
set@re=1
declare@iint
@i=1
while(@i<=@n)
set@re=@re*@i
@i=@i+1
成功后,可以调用:
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'
from学生表innerjoin成绩表on学生表.学号=成绩表.学号
where学生表.性别='男'and成绩表.课程号='101'
连接主要用于查询,但更新,删除也可以用.
流程控制
If语句和while循环
1求学生表中语文平均分,如果平均在80以上,则输出成绩较好的前3名,如果全班平均在80以下,则输出成绩较差的前3名
declare@pjint
select@pj=AVG(语文)from学生表
if(@pj>=80)
print'平均在以上,输出前三名'
selecttop3*from学生表orderby语文desc
print'平均在以下,输出差三名'
selecttop3*from学生表orderby语文
2把学生表复制到新表”学生表2”中,试探着多次给每个学生语文成绩都累加5,直到最差的学生都能及格.(最高不超过100分)
Select*into学生表2from学生表
set@no=0
declare@botfloat
select@bot=MIN(语文)from学生表
while(@bot<60)
set@no=@no+1
update学生表set语文=语文+5
update学生表set语文=100where语文>100
print@no
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1