数据库基础2Word下载.docx
- 文档编号:6281517
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:14
- 大小:20.31KB
数据库基础2Word下载.docx
《数据库基础2Word下载.docx》由会员分享,可在线阅读,更多相关《数据库基础2Word下载.docx(14页珍藏版)》请在冰点文库上搜索。
green"
>
不知道学得会不<
/font>
FF0000"
2图片:
imgsrc=”图片路径/图片名”width=xxheight=xx>
imgalt="
这是一个箭头"
src="
img/jt1.JPG"
width="
100"
/>
注意:
所有的资源文件应该放在本网站的下级子文件夹中.
3DIV层布局:
palign="
center"
&
nbsp;
中国人民<
表示一个半角空格
divalign="
>
fontsize='
6'
中国人人民<
/div>
…<
一般用于控制存放文字内容
div>
….<
可包含任何对象
4表格布局
例:
一个一行一列的最简单的表格
tableborder=’n’width=’n’>
tr>
td>
/td>
/tr>
/table>
单元格的合并
tableborder='
1'
85%"
tdrowspan="
2"
1<
tdcolspan='
2'
制作网页首页的框架
95%"
&
td>
tableborder="
0"
100%"
dddddd<
td>
tddddddd<
5常用静态的编程控件(html控件)
(1)文本框
用户名:
inputid="
Text1"
type="
text"
几乎所有的输入类型的控件都是input类,类型type指定它的具体作用
(2)单选按钮
inputname=’xb’id="
Radio1"
radio"
男
Radio2"
女
逻辑控制语句
1if(条件)
Begin
…..
End
Else
Beging
….
End
C系列语言中:
If(条件)
{…}
Else
Declare@sgnumeric(4,2)
select@sg=身高from学生表where姓名='
李大方'
if(@sg>
1.70)
print'
比较高'
else
begin
不高'
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)+'
语文及格'
printrtrim(@xm)+'
+convert(nchar(10),@sr)+'
语文不及格'
convert(nchar(10),@sr,20)对日期数据转换为串时,前面长度10可控制日期,小时,分,秒是否需要;
20表示是一种日期时间显示格式
测试格式数字变化的结果
declare@xmnchar(8),@srsmalldatetime,@ywint
declare@nint
set@n=20
while(@n<
=22)
begin
Printconvert(nchar(3),@n)+rtrim(@xm)+'
+convert(nchar(10),@sr,@n)+'
+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'
优秀'
=80then'
良好'
=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
select*from学生表where姓名=@xm
调用这个过程:
execmypro2'
跟上哪个姓名就查询哪个人,程序具有通用性
3以上第2例的完善:
Createproceduremypro3@xmnchar(8)
declare@noint
select@no=COUNT(*)from学生表where姓名=@xm
if(@no>
=1)
select*from学生表where姓名=@xm
print'
无此人,姓名给错了'
4把参数传进过程,同时需要过程传出来给调用处一个结果
编写一个求n!
的过程mypro5,它接收一个n,返回n!
结果
createproceduremypro5@nint,@reintoutput
as
set@re=1
declare@iint
@i=1
=@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成绩表.课程号='
连接主要用于查询,但更新,删除也可以用.
流程控制
If语句和while循环
1求学生表中语文平均分,如果平均在80以上,则输出成绩较好的前3名,如果全班平均在80以下,则输出成绩较差的前3名
declare@pjint
select@pj=AVG(语文)from学生表
if(@pj>
=80)
平均在以上,输出前三名'
selecttop3*from学生表orderby语文desc
平均在以下,输出差三名'
selecttop3*from学生表orderby语文
2把学生表复制到新表”学生表2”中,试探着多次给每个学生语文成绩都累加5,直到最差的学生都能及格.(最高不超过100分)
Select*into学生表2from学生表
declare@noint
set@no=0
declare@botfloat
select@bot=MIN(语文)from学生表
while(@bot<
60)
set@no=@no+1
update学生表set语文=语文+5
select@bot=MIN(语文)from学生表
update学生表set语文=100where语文>
100
print@no
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 基础