HTML与数据库知识点回顾

来源:互联网 发布:适合程序员的十款壁纸 编辑:程序博客网 时间:2024/06/10 01:38

数据库知识点:

完整性约束

第二范式是消除部分依赖

第三范式是消除传递依赖

三大重要知识点:

存储过程:--(1)创建存储过程(P6_1) ,给定老师姓名,删除学习该老师的选课记录。存储过程的参数为老师姓名,返回删除记录的个数。


go


CREATE PROCEDURE P6_1
  @jsxm char(10), @rowcount char(10) OUTPUT  --jsxm教师姓名,rowcount返回删除记录的个数
AS
BEGIN
  declare @jsbh char(10)
  select @jsbh = tno from teacher where tname=@jsxm
  delete from score where cno IN(
             select cno from course where tno=@jsbh )
  set @rowcount=@@rowcount
END;


游标:

创建一个存储过程,打印给定学生姓名的选课信息,并计算其平均绩点。
说明:
(1)数据的查询处理用游标实现。
(2)绩点的计算方法如下:60-100分:1.0-5.0;60分以下:0。
(3)打印格式:
     X X X同学的成绩表
    课程名称    成绩    
绩点
---------------------------------
  XXX            XX      X.X
---------------------------------
  平均绩点: X.X

use mydb06;


if exists(select * from sys.objects where name='P8')
drop PROCEDURE P8

GO

CREATE PROCEDURE P8
  @pro_xm char(10)
AS
BEGIN

declare @xm nvarchar(20),@kcmc nvarchar(20),@cj int,@jd decimal(5,1),@avg_jd decimal(5,1)
,@kcsl decimal(5,1)
set @avg_jd=0
set @kcsl=0


--定义游标
declare retrive_grade cursor for
select sname,cname,grade from student,course,score
where student.sno=score.sno
and score.cno=course.cno
and student.sname=@pro_xm;//给定学生姓名

--打开游标
open retrive_grade

fetch next from retrive_grade into @xm,@kcmc,@cj

print convert(varchar(10),@xm)+'同学的成绩表'

print '课程名称     成绩     绩点'
print '--------------------------'
--提取数据
while @@fetch_status=0
begin
if @cj<60
set @jd=0
else
   set @jd=convert(decimal(5,1),@cj)/10-5


     set @avg_jd=@avg_jd+@jd
set @kcsl=@kcsl+1
print convert(varchar(10),@kcmc)+'        '+convert(varchar(10),@cj)+'     '+convert(varchar(10),@jd)
  fetch next from retrive_grade into @xm,@kcmc,@cj
end
print '--------------------------'

print '平均绩点: '+convert(varchar(10),convert(decimal(5,1),@avg_jd/@kcsl))

CLOSE retrive_grade
DEALLOCATE retrive_grade

END;


3.触发器:--(1)定义一个点delete触发器,删除course表中的课程信息时,同时删除score表中相应的选课信息。
go
create trigger delete_course on course
instead of delete
as
begin
    delete from score where cno =(select cno from deleted)
end;

--(2)定义一个update触发器,当更新course表中的课程标号cno时,修改score表中相应课程标号cno的信息。
go
create trigger update_course on course
   instead of update
AS 
BEGIN
  declare @cno_new char(10), @cno_old char(10),@rows int
  select @cno_new=cno from inserted  --更新后的课程号
  select @cno_old=cno from deleted   --更新前的课程号
  select @rows=count(*) from course where cno=@cno_new
  if @rows = 0
    insert into course 
      select * from inserted      --在course中插入更新后的数据
  insert into score(sno,cno) 
     select sno, @cno_new from score where cno=@cno_old   --在score中插入新数据
  delete from score where cno=@cno_old  --删除旧数据
  delete from course where cno=@cno_old
END

关于外键的说明:

如果 F是关系R的一个属性或者属性组,但不是关系R的主键;K是另一个关系S的主键。且F和K相对应。
那么 则称F是关系R的外码。(这是教材上对外码的定义)

从定义中不难看出F一定和另外一个表(S)的主键是对应的,也就是说一定是另外一个表(S)的主键。但是在此表(R)中外键的值可以为空,不应定非要取值。

比如这里有两张表:
学生选课表(学号,姓名,课程号)
课 程 表(课程号,任课教师)
可以看出“课程号”是表“学生选课表”的外键,同时也是表“课程表”的主键,
在这里它就可以取空值,表示有一个学生没选课。

从表中使用foreign key设置外码,参照主表中的主码,在foreign key的最后如果加上了on delete cascade,则在删除主表中的数据时,从表中对应的数据会被一起级联删除;在foreign key的最后如果加上了on delete set null,则在删除主表中的数据时,从表中对应的数据会被设置为null;在foreign key的最后什么也不加,则在删除主表中的数据时,如果从表中有对应数据参照它,主表中这些数据就无法删除,会报错。


HTML知识点:

1.<p> 段落标签</p>,<b>文字黑体标签</b>

2.空元素是指<br/>类元素标签, 空元素标签在开始标签中关闭

3.HTML 链接由 <a> 标签定义。链接的地址在 href 属性中指定:

4.标签的属性值应该始终被包括在引号内。双引号是最常用的,不过使用单引号也没有问题。在某些个别的情况下,比如属性值本身就含有双引号,那么您必须使用单引   号,例如:name='Bill "HelloWorld" Gates' 

5.CSS三种样式:





6. 表格table,tr,td

7. 有序列ul,li    无序列ol , li

8. 如果与 CSS 一同使用,<div> 元素可用于对大的内容块设置样式属性, 定义 span,用来组合文档中的行内元素
9. 表单是一个包含表单元素的区域form

10.css用法:

11.

12.

13.

14.

15.

16.


17.

18.

19.



1 0
原创粉丝点击