• 领导讲话
  • 自我介绍
  • 党会党课
  • 文秘知识
  • 转正申请
  • 问题清单
  • 动员大会
  • 年终总结
  • 工作总结
  • 思想汇报
  • 实践报告
  • 工作汇报
  • 心得体会
  • 研讨交流
  • 述职报告
  • 工作方案
  • 政府报告
  • 调研报告
  • 自查报告
  • 实验报告
  • 计划规划
  • 申报材料
  • 当前位置: 勤学考试网 > 公文文档 > 自我介绍 > 正文

    数据库上机实验报告_0

    时间:2020-11-14 05:34:34 来源:勤学考试网 本文已影响 勤学考试网手机站

    数据库上机实验报告

    数据库上机实验报告

    试验内容

    1、 数据表的建立

    基本表《简单的》带有主键

    带有外码约束的(外码来自其他表或者本表)

    2、 数据表的修改

    添加删除列

    修改列属性类型

    添加删除约束(约束名)

    元组的添加,修改,删除

    删除数据表

    试验过程

    1、create table Student

    (

    Sno char(9) primary key , /*Sno是主码 列级完整性约束条件*/

    Sname char(20) unique, /*Sname取唯一值*/

    Ssex char(2),

    Sage smallint, /*类型为smallint*/

    Sdept char(20) /*所在系*/

    );

    create table Course

    (

    Cno char(4) primary key, /*列级完整性约束条件,Cno是主码*/

    Cname char(40),

    Cpno char(4), /*Cpno的含义是先行课*/

    Ccredit smallint,

    foreign key (Cpno) references Course(Cno)

    /*表级完整性约束条件,Cpno是外码,被参照表是Course,被参照列是Cno*/

    );

    create table SC

    (

    Sno char(9),

    Cno char(4),

    Grade smallint,

    primary key (Sno,Cno),

    /*主码有两个属性构成,必须作为表级完整性进行定义*/

    foreign key (Sno) references Student(Sno),

    /*表级完整性约束条件,Sno是外码,被参照表是Student*/

    foreign key (Cno) references Course(Cno),

    /*表级完整性约束条件,Cno是外码,被参照表示Course*/

    );

    例1、create table S

    (

    Cno varchar(3), /*变长的字符串,输入2个字符就是两个字符不会补空格*/

    Sname varchar(20),

    Status int,

    city varchar(20),

    constraint pk_sno Primary key(Sno), /*约束条件的名字为pk_sno*/

    );

    create table P

    (

    Pno varchar(3),

    Pname varchar(20),

    Color varchar(3),

    Weight int,

    constraint pk_Pno Primary key (Pno), /*约束条件的名字是pk_Pno*/

    );

    create table J

    (

    Jno varchar(3),

    Jname varchar(20),

    City varchar(20),

    constraint pk_Jno primary key(Jno) /*约束条件的名字为pk_Jno*/

    );

    例2、create table SPJ

    (

    Sno varchar(3), /*第一个表中的主码*/

    Pno varchar(3),

    Jno varchar(3),

    QTY int, /*数量*/

    Constraint pk_SPJ primary key(Sno,Pno,Jno), /*主码由3个属性组成*/

    foreign key(Sno) references S(Sno),

    /*表级完整性约束条件,Sno是外码,被参照表是S*/

    foreign key(Pno) references P(Pno),

    /*表级完整性约束条件,Pno是外码,被参照表是P*/

    foreign key(Jno) references J(Jno),

    /*表级完整性约束条件,Jno是外码,被参照表是J*/

    );

    2、数据表的更改

    在S表中添加一个concat 列

    alter table s add concat varchar(20)

    在S表中删除concat 列

    alter table s drop column concat

    更改s表 concat列的属性 把长度由20改为30

    alter table s alter column concat varchar(30)

    联系方式 名字为concat 修改属性为唯一的 属性名为Con_concat

    alter table s add constraint Con_concat Unique(concat)

    删除约束关系con_concat

    alter table s drop Constraint Con_Concat

    /*插入一个元组*/

    insert into s Valus(‘S1’,’精益’,20,’天津’) /*20不能写成’20’*/

    试验中的问题的排除与总结:

    1、在创建SPJ时

    有三个实体所以从3个实体中取主码,还有一个数量属性也要写上

    主码由那3个主码确定

    2、更改一个数据库中数据表时一定要先使该数据库处于正在使用状态

    3、CONSTRAINT

    是可选关键字,表示 PRIMARY KEY、NOT NULL、UNIQUE、FOREIGN KEY 或 CHECK 约束定义的开始。约束是特殊属性,用于强制数据完整性并可以为表及其列创建索引。

    4、--go可以不加但是要注意顺序 注:go --注释 提示错误

    5、注意添加一个空元素用 null

    附 sql备份

    --创建一个数据库 Student

    create database Student

    go

    --在数据库Student中创建表Student Course SC 注意顺序

    use Student

    ----------------------------------------------------------------

    create table Student

    (

    Sno char(9) primary key, /*Sno是主码 列级完整性约束条件*/

    Sname char(10) unique, /*Sname取唯一值*/

    Ssex char(2),

    Sage smallint, /*类型为smallint*/

    Sdept char(20) /*所在系*/

    ); /*;要加*/

    ----------------------------------------------------------------

    create table Course

    (

    Cno char(4) primary key, /*列级完整性约束条件,Cno是主码*/

    Cname char(20),

    Cpno char(4), /*Cpno的含义是先行课*/

    Ccredit smallint,

    foreign key (Cpno) references Course(Cno)

    /*表级完整性约束条件,Cpno是外码,被参照表是Course,被参照列是Cno*/

    );

    ----------------------------------------------------------------

    create table SC

    (

    Sno char(9),

    Cno char(4),

    Grade smallint,

    primary key (Sno,Cno),

    /*主码有两个属性构成,必须作为表级完整性进行定义*/

    foreign key (Sno) references Student(Sno),

    /*表级完整性约束条件,Sno是外码,被参照表是Student*/

    foreign key (Cno) references Course(Cno),

    /*表级完整性约束条件,Cno是外码,被参照表示Course*/

    );

    -------------------------------------------------------------------

    go

    --创建一个数据库SPJ 习题2-5

    create database SPJ

    go

    --在数据库SPJ中创建表 S P J SPJ

    use SPJ

    go

    --------------------------------------------------------------------------

    create table S

    (

    Sno varchar(3), /*变长的字符串,输入2个字符就是两个字符不会补空格*/

    Sname varchar(20),

    Status int,

    city varchar(20),

    constraint pk_sno Primary key(Sno), /*约束条件的名字为pk_sno*/

    );

    --------------------------------------------------------------------------

    create table P

    (

    Pno varchar(3),

    Pname varchar(20),

    Color varchar(3),

    Weight int,

    constraint pk_Pno Primary key (Pno), /*约束条件的名字是pk_Pno*/

    );

    --------------------------------------------------------------------------

    create table J

    (

    Jno varchar(3),

    Jname varchar(20),

    City varchar(20),

    constraint pk_Jno primary key(Jno) /*约束条件的名字为pk_Jno*/

    );

    --------------------------------------------------------------------------

    create table SPJ

    (

    Sno varchar(3), /*第一个表中的主码*/

    Pno varchar(3),

    Jno varchar(3),

    QTY int, /*数量*/

    constraint pk_SPJ primary key(Sno,Pno,Jno), /*主码由3个属性组成*/

    foreign key(Sno) references S(Sno),

    /*表级完整性约束条件,Sno是外码,被参照表是S*/

    foreign key(Pno) references P(Pno),

    /*表级完整性约束条件,Pno是外码,被参照表是P*/

    foreign key(Jno) references J(Jno),

    /*表级完整性约束条件,Jno是外码,被参照表是J*/

    );

    --------------------------------------------------------------------------

    go

    --数据表的修改 添加一个列 删除一个列 更改列的属性 建立约束 删除约束 元组的添加删除和修改

    --和还是在数据库SPJ中 不用重新use SPJ

    alter table s add concat varchar(20) /*在S表中添加一个concat 列*/

    go

    --go可以不加但是要注意顺序 注:go --注释 提示错误

    alter table s drop column concat /*在S表中删除concat 列*/

    go

    alter table s add concat varchar(20) /*在S表中添加一个concat 列*/

    go

    alter table s alter column concat varchar(30) /*更改s表concat列的属性 把长度由20改为30*/

    go

    alter table s add constraint con_concat unique(concat) /*建立一个约束关系 关系名为con_cat(删除时用到)使concat列具有唯一性*/

    go

    alter table s drop constraint con_concat /*删除约束关系con_concat*/

    go

    alter table s drop column concat /*在S表中删除concat 列*/

    go

    ------------------------------------------------------------------------------

    ---插入数据

    insert into s values(’s1’,’精益’,20,’天津’) /*向表s中插入一个元组*/

    insert into s values(’s2’,’盛锡’,10,’北京’) /*向表s中插入一个元组*/

    insert into s values(’s3’,’东方红’,30,’北京’) /*向表s中插入一个元组*/

    insert into s values(’s4’,’丰泰盛’,20,’天津’) /*向表s中插入一个元组*/

    insert into s values(’s5’,’为民’,30,’上海’) /*向表s中插入一个元组*/

    ---------------------

    insert into p values(’p1’,’螺母’,’红’,12) /*向表p中插入一个元组*/

    insert into p values(’p2’,’螺栓’,’绿’,17) /*向表p中插入一个元组*/

    insert into p values(’p3’,’螺丝刀’,’蓝’,14) /*向表p中插入一个元组*/

    insert into p values(’p4’,’螺丝刀’,’红’,14) /*向表p中插入一个元组*/

    insert into p values(’p5’,’凸轮’,’蓝’,40) /*向表p中插入一个元组*/

    insert into p values(’p6’,’齿轮’,’红’,30) /*向表p中插入一个元组*/

    ---------------------

    insert into j values(’j1’,’三建’,’北京’) /*向表j中插入一个元组*/

    insert into j values(’j2’,’一汽’,’长春’) /*向表j中插入一个元组*/

    insert into j values(’j3’,’弹簧厂’,’天津’) /*向表j中插入一个元组*/

    insert into j values(’j4’,’造船厂’,’天津’) /*向表j中插入一个元组*/

    insert into j values(’j5’,’机车厂’,’唐山’) /*向表j中插入一个元组*/

    insert into j values(’j6’,’无线电厂’,’常州’) /*向表j中插入一个元组*/

    insert into j values(’j7’,’半导体厂’,’南京’) /*向表j中插入一个元组*/

    ---------------------

    --go

    insert into spj values(’S1’,’P1’,’J1’,200) /*向表spj中插入一个元组*/

    insert into spj values(’S1’,’P1’,’J3’,100) /*向表spj中插入一个元组*/

    insert into spj values(’S1’,’P1’,’J4’,700) /*向表spj中插入一个元组*/

    insert into spj values(’S1’,’P2’,’J2’,100) /*向表spj中插入一个元组*/

    insert into spj values(’S2’,’P3’,’J1’,400) /*向表spj中插入一个元组*/

    insert into spj values(’S2’,’P3’,’J2’,200) /*向表spj中插入一个元组*/

    insert into spj values(’S2’,’P3’,’J4’,500) /*向表spj中插入一个元组*/

    insert into spj values(’S2’,’P3’,’J5’,400) /*向表spj中插入一个元组*/

    insert into spj values(’S2’,’P5’,’J1’,400) /*向表spj中插入一个元组*/

    insert into spj values(’S2’,’P5’,’J2’,100) /*向表spj中插入一个元组*/

    insert into spj values(’S3’,’P1’,’J1’,200) /*向表spj中插入一个元组*/

    insert into spj values(’S3’,’P3’,’J1’,200) /*向表spj中插入一个元组*/

    insert into spj values(’S4’,’P5’,’J1’,100) /*向表spj中插入一个元组*/

    insert into spj values(’S4’,’P6’,’J3’,300) /*向表spj中插入一个元组*/

    insert into spj values(’S4’,’P6’,’J4’,200) /*向表spj中插入一个元组*/

    insert into spj values(’S5’,’P2’,’J4’,100) /*向表spj中插入一个元组*/

    insert into spj values(’S5’,’P3’,’J1’,200) /*向表spj中插入一个元组*/

    insert into spj values(’S5’,’P6’,’J2’,200) /*向表spj中插入一个元组*/

    insert into spj values(’S5’,’P6’,’J4’,500) /*向表spj中插入一个元组*/

    ---插入数据

    -----------------------------------------------------------------------------

    use Student

    go

    --go 不加出现错误

    -----------------------------------------------------------------------------

    ---插入数据 注意顺序 Student Course SC

    --------------------------------------

    insert into Student values(’95001’,’李勇’,’男’,20,’CS’) /*向表Student中插入一个元组*/

    insert into Student values(’95002’,’刘晨’,’女’,19,’IS’) /*向表Student中插入一个元组*/

    insert into Student values(’95003’,’王敏’,’女’,18,’MA’) /*向表Student中插入一个元组*/

    insert into Student values(’95004’,’张立’,’男’,19,’IS’) /*向表Student中插入一个元组*/

    --------------------------------------

    -----注意顺序(先行课问题) 注意添加一个空元素用 null

    insert into Course values(’2’,’数学’,null,2)/*向表Course中插入一个元组*/

    insert into Course values(’6’,’数据处理’,null,2)/*向表Course中插入一个元组*/

    insert into Course values(’4’,’操作系统’,’6’,3)/*向表Course中插入一个元组*/

    insert into Course values(’7’,’PASCAL语言’,’6’,4)/*向表Course中插入一个元组*/

    insert into Course values(’5’,’数据结构’,’7’,4)/*向表Course中插入一个元组*/

    insert into Course values(’1’,’数据库’,’5’,4)/*向表Course中插入一个元组*/

    insert into Course values(’3’,’信息系统’,’1’,4)/*向表Course中插入一个元组*/

    --------------------------------------

    insert into SC values(’95001’,’1’,92)/*向表SC中插入一个元组*/

    insert into SC values(’95001’,’2’,85)/*向表SC中插入一个元组*/

    insert into SC values(’95001’,’3’,88)/*向表SC中插入一个元组*/

    insert into SC values(’95002’,’2’,90)/*向表SC中插入一个元组*/

    insert into SC values(’95002’,’3’,80)/*向表SC中插入一个元组*/

    ---插入数据

    • 考试时间
    • 范文大全
    • 作文大全
    • 课程
    • 试题
    • 招聘
    • 文档大全

    推荐访问