精华内容
下载资源
问答
  • 数据库实验删除客户信息
    2022-05-14 13:11:07

    数据库设计实验

    实验环境:Windows 10操作系统、MySQL 8.0、Power Designer

    实验内容与完成情况:

    1. 一、实验目的 

    掌握数据库设计基本方法及数据库设计工具。

    1. 二、实验平台和工具

    利用Power Designer数据库设计工具设计该数据库。

    1. 三、实验内容和要求

    掌握数据库设计基本步骤,包括数据库概念结构设计、逻辑结构设计、物理结构设计,数据库模式SQL语句生成。能够使用数据库设计工具进行数据库设计。

    设计一个采购、销售和客户管理应用数据库。其中,一个供应商可以供应多种零件,一种零件也可以有多个供应商。一个客户订单可以订购多种供应商供应的零件。客户和供应商都分属于不同的国家,而国家按世界五大洲八大洋划分地区。请利用Power Designer数据库设计工具设计该数据库。

    识别出零件Part供应商Supplier客户Customer订单Order订单项Lineitem国家Nation地区Region等7个实体。每个实体的属性、码如下。

    1. 零件Part:零件编号 partkey、零件名称name、零件制造商mfgr、品牌brand、类型type、大小size、零售价格retailprice、包装container、备注comment。主码:零件编号 partkey。
    2. 供应商Supplier:供应商编号suppkey、供应商名称name、地址address、国籍nation、电话phone、备注comment等。主码:供应商编号suppkey。
    3. 客户Customer:客户编号custkey、客户名称name、地址address、电话phone、国籍nation、备注comment。主码:客户编号custkey。
    4. 订单Order:订单编号orderkey、订单状态status、订单总价totalprice、订单日期orderdate、订单优先级orderpriority、记账员clerk、运送优先级shippriority、备注comment。主码:订单编号orderkey。
    5. 订单项Lineitem:订单项编号linenumber、所订零件号partkey、所订零件供应商号suppkey、零件数量quantity、零件总价extendedprice、折扣discount、税率tax、退货标记returnflag等。主码:订单项编号linenumber。
    6. 国家Nation:国家编号nationkey、国家名称name、所属地区region、备注comment。主码:国家编号nationkey。
    7. 地区Region:地区编号regionkey、国家名称name、备注comment。主码:地区编号regionkey。

    1. 四、实验步骤
    1. 1.数据库概念结构设计

    根据实体语义,分析实体之间的联系,确定实体之间一对一,一对多和多对多联系。画出实体-联系图。

    1. 2.数据库逻辑结构设计

    按照数据库设计原理中概念结构转化成逻辑结构的规则,每个实体转换成一个关系,多对多的联系也转换成一个关系。因此,根据上述画出的E-R图设计数据库逻辑结构。

    1. 使用Power Designer数据库设计工具设计数据库逻辑结构,打开,并创建一个概念模型(CDM Conceptual Data Model)
    2. 在新建好的概念模型中,使用的最多的是Entity(实体)和Relationship(关系)

    1. 根据E-R图,新建一个供应商的Entity(实体),这里需要注意,书写name的时候,code自行补全,name可以是英文的也可以是中文的,但是code必须是英文的。

    然后选择Attributes框,将供应商表的每一列设计好

    各列说明:

    ·Name: 实体名字一般为中文如论坛用户

    ·Code: 实体代号,一般用英文如XXXUser

    ·Comment:注释对此实体详细说明。

    ·Code属性代号一般用英文UID DataType

    ·Domain域表示属性取值范围如可以创建10个字符的地址域

    ·M:Mandatory强制属性,表示该属性必填。不能为空

    ·P:Primary Identifer是否是主标识符,表示实体店唯一标识符

    ·D:Displayed显示出来,默认全部勾选

    设置的主标识符可以在Identifiers(标识符)这个模块删除or添加主标识符。

    按确定键,供应商表则设计完成

    1. 根据步骤(3),完成其他六个表的的逻辑结构设计

    1. 使用Relationship(关系)这个按钮可以连接七个表之间的关系,发生一对多或者多对一的关系。

    1. 根据E-R图完成数据库逻辑结构

    3.数据库物理结构设计

    数据库物理结构首先根据逻辑结构自动转换生成,然后根据应用需求设计数据库的索引结构、存储结构。

    1. 检查CDM正确性

    在CDM设计界面上选择Tools->Check Model命令,检查CDM正确性,如果存在错误,检查并更正。

    (2)将CDM转换成PDM(物理模型)

    在CDM设计界而上选择Tools-Generate Physical Data Model命合,出现PDM Generation Options对话框,在General选项卡中,设置转换生成的PDM基本属性,包括使用哪种DBMS。

    (3)保存PDM

    选择File->Save,保存该PDM。

    1. 4.数据库模式SQL语句生成

    生成MySQL数据库管理系统的SQL语句。

    选择刚才生成的物理概念模型,在对象浏览区展开Tables,点击各个表格,可以在表格中看到对应DBMS的SQL语句。

    • 供应商表SQL

    • 国家表SQL

    • 地区表SQL

    • 客户表SQL

    • 订单表SQL

    • 订单项SQL

    • 零件表SQL

    出现的问题:

    • 问题一:使用Relationship按钮建立关系时报错:

    解决方案:

    • 问题一:

    name可以是英文的也可以是中文的,但是code必须是英文的。同时code作为实体代号,每个表的code必须不同,一旦相同则报错。

    实验心得:

    通过对概念结构逻辑结构与物理结构的设计方法,了解和掌握学会了使用PowerDesigner设计数据库模型。掌握使用PowerDesigner将CDM转化为PDM的方法。同时,明白了创建数据库前对用户需求做出需求分析的重要性,越好的概念结构逻辑结构设计就能转化成好的物理结构设计,同时生成的对应DBMS的SQL语句也就越符合需求。

    更多相关内容
  • 提供了学生学籍信息的查询,添加,修改,删除;学生成绩的录入,修改,删除,查询班级排名,修改密码等功能。管理员管理拥有最高的权限。允许添加教师信息和课程信息等。其提供了简单.方便的操作。学生信息表:姓名...
  • 数据库实验报告

    2017-12-14 23:37:15
    (2)删除数据库中学号为’200213801’的退学学生有关信息。 (3)将计算机系学生2号课成绩全部提高5%。 查询数据SQL语句: (4)统计有学生选修的课程门数。 (5)统计HU老师所授每门课程的学生平均成绩。 (6)统计所有选修...
  • SQL SERVER为每个触发器都创建了两个临时表INSERTED表和DELETED表,这两个表的逻辑结构与被触发器作用的表一样,用户可以读取这两个表的内容,但不能对它们进行修改,触发器执行完后,这两个表也会自动删除。...
  • 实验用QT designer设计UI界面,python语言,主要用pyqt5,mysql数据库 1. 用户可以在该系统中注册、修改个人基本信息,包括姓名、性别、出生日期、电子邮箱、通讯地址、用户密码(注意,一个用户可以注册多个电子...
  • 利用 图形用户界面 创建备份删除和还原数据库和数据表 50 分每小题 5 分 数据库和表的要求第四版教材第二章习题 5 要求的数据库 数据库名 SPJ其中包含四张表 S表 , P 表 , J 表 , SPJ 表 图 2.1S 表 (供货商表 ) 图...
  • 数据库用mssql 2008 r2,IDE是VS2017貌似低版本的不能运行。有详细实验报告 系统说明: 1) 用户管理:用于对用户的注册,登录,修改密码,修改资料等功能 2) 学生信息管理:用于对学生信息的增、删、改、查等功能 3)...
  • 数据库实验报告1数据库定义实验

    千次阅读 2020-04-29 11:18:58
    (1)理解和掌握数据库DDL语言,能熟练地使用SQL DDL语句创建、修改和删除数据库、模式和基本表。 (2)掌握SQL语句常见语法错误的调试方法。 二、 实验内容: 教材3.3数据定义中例3.1至例3.11的要求操作,并截取...

    一、 实验目的:

    (1)理解和掌握数据库DDL语言,能熟练地使用SQL DDL语句创建、修改和删除数据库、模式和基本表。
    (2)掌握SQL语句常见语法错误的调试方法。

    二、 实验内容:

    教材3.3数据定义中例3.1至例3.11的要求操作,并截取相应的结果图

    1、定义模式
    模式定义语句:CREATE SCHEMA <模式名> AUTHORIZATION <用户名>
    【例3.1】为用户LJY定义一个学生-课程模式S-T
    在这里插入图片描述

    结果为:在这里插入图片描述
    ,在架构中可以找到在这里插入图片描述
    ;但如果写成在这里插入图片描述
    的形式,即把双引号去掉,执行命令会出现错误

    原因是SCHEMA的命名必须以“字母”,“”“@”,“#”开头,后跟“字母”,“”,“数字”,“$”,而“-”违反了SCHEMA的命名规则,所以系统才会报错,但是可以通过加双引号“”的方式来实现任意定义。

    【例3.2】CREATE SCHEMA AUTHORIZATION LJY
    在这里插入图片描述
    该句没有指定<模式名>,所以<模式名>隐含为用户名LJY。但是在架构中却无法找到新的模式:GDM。这是因为SQLServer并没有实现这一功能,但是可以通过直接使用与自己的用户名相同的架构名来创建新模式。

    【例3.3】为用户LJY创建一个模式TEST,并且在其中定义一个表TAB1。在这里插入图片描述
    用户可以在创建模式的同时在这个模式定义中进一步创建基本表、视图等。需要注意的是,上述语句必须一次执行,若分开执行,创建的表是dbo.TAB1,错误。执行命令成功,在架构中可以找到TEST,在表中可以找到TEST.TAB1此时便不能再用SELECT * FROM TAB1语句查询,会出现错误提示, 用查询语句SELECT *FROM TEST.TAB1可以显示成功创建的表的内容在这里插入图片描述

    2、删除模式
    删除语句:DROP SCHEMA <模式名><CASADE|RESTRICI>;
    CASEDE(级联):表示在删除模式的同时把该模式中的所有数据库对象全部删除。
    RESTRICT(限制):表示如果该模式中已经定义了下属的数据库对象(如表、视图等),则拒绝删除语句的执行,只有当该模式中无任何下属的对象时才能执行删除语句。

    【例3.4】DROP SCHEMA JG CASCADE
    在这里插入图片描述
    由于SQL Server中并未实现<cascade|restrict>功能,所以当执行 在这里插入图片描述
    时,会出现在这里插入图片描述
    ,所以删除模式可直接使用DROP SCHEMA JG即可。需要注意的是,当模式中有下属数据库对象时,是无法将其删除的。例如删除TEST模式(有下属对象—TAB1)。

    3、 基本表的定义
    基本表定义语句:CREATE TABLE <表名>(<列名><数据类型>[列级完整性约束条件]
    [,<列名><数据结构>[列级完整性约束条件]]

    [,表级完整性约束条件]);

    【例3.5】建立一个“学生”表student。
    在这里插入图片描述

    SQL语言使用CREATE TABLE语句定义基本表,建表的同时通常还可以定义于该表有关的完整性约束条件,新建的表,默认位于dbo下,即dbo.student。使用查询语句后在这里插入图片描述
    【例3.6】建立一个“课程”表Course.
    在这里插入图片描述

    创建成功后使用查询语句可显示:在这里插入图片描述
    本例说明参照表和被参照表可以是同一个表。
    【例3.7】建立学生选课表SC。
    在这里插入图片描述
    例3.5、例3.6和例3.7会建立如下三个表:在这里插入图片描述
    通过使用查询语句可显示:在这里插入图片描述

    4、 基本表的修改
    修改语句:
    ALTER TABLE<表名>
    [ADD[COLUMN]<新列名><数据类型>[约束条件]]
    [ADD<表级完整性约束>]
    [DROP [COLUMN]<列名>[CASCADE|RESTRICT]]
    [DROP CONSTRAN<完整性约束名>[RESTRICT|CASCADE]]

    【例3.8】向Student表中添加“入学时间”,其数据类型为日期型。
    在这里插入图片描述
    执行结果:在这里插入图片描述
    ADD子句用于增加新列、新的列级完整性约束条件和新的表级完整性约束条件。不管基本表中原来是否有数据,新增加的列一律为空值。

    【例3.9】将年龄的数据类型由字符型(假设原来的字符类型是字符型)改为整数
    在这里插入图片描述
    ALTER COLUMN子句用于修改原有的列定义,包括修改列名和数据类型。

    【例3.10】增加课程名必须取唯一值的约束条件
    在这里插入图片描述
    查询后显示:在这里插入图片描述
    此时的课程名必须取唯一值。

    5.基本表的删除删除语句:DROP TABLE <表名>[RESTRICT|CASCADE]

    【例3.11】删除Student表
    在这里插入图片描述
    RESTRICT:即该表的删除时不能被其他表的约束条件所引用,不能能有视图,不能有触发器,不能有存储过程或函数等,否则将删除失败。
    CASCADE:即该表的删除没有限制,再删除该表的同时,其相关联的依赖对象都将被一起删除。但是SQLServer并未实现这一功能,所以在执行语句时会出现错误提示:在这里插入图片描述
    【拓展】
    在这里插入图片描述
    执行报错:
    在这里插入图片描述
    SQLServer默认restrict,即如果欲删除的表被其他表正在引用,是无法直接删除的。直接删除时系统会报错,这是因为,Student表被SC表的约束引用,所以无法直接删除。需要先将表SC删除,然后再删除表Student.

    CREATE DATABASE LJY  --创建数据库
    USE LJY   --打开数据库
    --定义模式时要键入用户名,所以要新建一个用户名,安全性-用户-新建用户-不带登录名的SQL用户
    
    --例3.1:为用户LJY定义一个学生-课程模式S-T
    CREATE SCHEMA "S-T" AUTHORIZATION LJY
    
    CREATE SCHEMA S-T AUTHORIZATION LJY
    
    --例3.3:为用户LJY创建一个模式TEST,并且在其中定义一个表TAB1
    CREATE  SCHEMA TEST AUTHORIZATION LJY
    CREATE TABLE TAB1(COL1 SMALLINT,
          COL2 INT,
          COL3 CHAR(20),
          COL4 NUMERIC(10,3),
          COL5 DECIMAL(5,2)
          );
    SELECT * FROM  TAB1
    
    --例3.4:DROP SCHEMA JG CASCADE
    CREATE SCHEMA JG AUTHORIZATION LJY
    DROP SCHEMA JG CASCADE
    DROP SCHEMA JG
    
    --例3.5:建立一个“学生”表student
    CREATE TABLE Student(
        Sno CHAR(9 )PRIMARY KEY,  /*列级完整性约束条件,Sno是主码*/
        Sname CHAR(20)UNIQUE,   /*Sname取唯一值*/
        Ssex CHAR(2),
        Sage SMALLINT,
        Sdept CHAR(20)
        );
    SELECT *FROM Student
    
    --例3.6:建立一个“课程”表Course.
    CREATE TABLE Course(
                    Cno CHAR(4 ) PRIMARY KEY,/*列级完整性约束条件,Cno是主码*/
        Cname CHAR(40) NOT NULL,/*列级完整性约束条件,Cname不能取空值*/
        Cpno CHAR(4),            /*Cpno的含义是先修课*/
        Ccredit SMALLINT,
        FOREIGN KEY(Cpno) REFERENCES Course(Cno) 
               /*表级完整性约束条件,Cpno是外码,被参照表是Course,被参照列是Cno*/
                        );
    SELECT *FROM Course
    
    --例3.7:建立学生选课表SC
    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*/
       );
    SELECT *FROM SC
    
    --例3.8:向Student表中添加“入学时间”,其数据类型为日期型。
    ALTER TABLE Student ADD S_entrance DATE;
    SELECT *FROM Student
    
    --例3.9:将年龄的数据类型由字符型(假设原来的字符类型是字符型)改为整数。
    ALTER TABLE Student ALTER COLUMN Sage INT
    
    --例3.10:增加课程名必须取唯一值的约束条件
    ALTER TABLE Course ADD UNIQUE(Cname)
    SELECT *FROM Course
    
    --例3.11:删除Student表
    DROP TABLE Student CASCADE;
    
    DROP TABLE SC;
    DROP TABLE Student;
    
    展开全文
  • 实验1 数据库及数据定义 1、创建一个名为XSCJ的数据库,其初始大小为5MB,最大大小10MB,允许数据库自动增长,增长方式是按10%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。 2、将以上XSCJ数据库的主...
  • 实现对校友信息的维护,维护的权限可以给各班的班长,校友信息主要包括所在班级、专业、姓名、性别、工作单位、所在城市、所在岗位、电话、微信号和qq 号,以及班委信息,可以实现不同级别用户的手机 APP 端或微信小...
  • (3)删除用户。 2.2掌握用户授权和回收权限的基本使用方法 (4)给用户授权。 (5)转授权。 (6)回收用户权限。 (7)级联回收权限 2.3掌握角色的使用方法 (8)创建角色。 (9)删除角色。 (10)给角色授权。 ...
  • 数据库原理及应用》课程实验 实验1 创建数据库和数据表 一、实验目的 熟悉SQL Server Management Studio界面;掌握通过图形化向导和执行Transact-SQL语句创建数据库的方法。 二、实验环境 Windows7操作系统,...
  • 高校数据库MySql课程实验报告--图书管理系统数据库设计,简单使用MySql实现了图书管理系统设计,包括用户注册、管理员注册、图书查询、图书录入、借书等功能。本系统主要实现对图书馆信息的管理,主要功能为管理有关...
  • Oracle数据库实验操作

    2012-07-26 15:00:43
    实验149:收集数据库的统计信息 236 实验150:收集列的统计信息 238 实验151:自动收集统计信息 239 数据库的不同访问模式 240 实验152:全表扫描的优化 240 实验153:索引的五种使用模式 242 实验154:连接的三种...
  • 数据库实验一——数据库定义与操作语言实验一、实验题目二、实验内容和要求三、实验步骤(一)数据库定义实验(二)数据基本查询实验(三)数据高级查询实验(四)数据更新实验(五)视图(六)索引实验四、实验心得...

    一、实验题目

    数据库定义与操作语言实验

    二、实验内容和要求

    数据库定义与操作语言实验包含6 个实验项目,其中5 个必修实验项目, 1 个选修实验项目。其中实验项目1至5为设计型实验,实验项目6为验证型实验。
    六个实验的实验目的和内容如下:
    1.理解和掌握SQL DDL 语句的语法,特别是各种参数的具体含义和使用方法; 使用SQL 语句创建、修改和删除数据库、模式和基本表。
    2. 针对某个数据库设计各种单表查询SQL 语句、分组统计查询语句;设计单个表针对自身的连接查询,设计多个表的连接查询。
    3.针对自定义数据库,正确分析用户查询要求,设计各种嵌套查询和集合查询。
    4.针对自定义数据库设计单元组插入、批量数据插入、修改数据和删除数据等SQL语句。理解和掌握INSERT、UPDATE和DELETE语法结构的各个组成成分,结合嵌套SQL子查询,分别设计几种不同形式的插入、修改和删除数据的语句,并调试成功。
    5.针对给定的数据库模式,以及相应的应用需求,创建视图和带WITH CHECK OPTION的视图,并验证视图WITH CHECK OPTION选项的有效性。
    6.针对给定的数据库模式和具体应用需求,创建唯一索引、函数索引、复合索引等;修改索引;删除索引。设计相应的SQL查询验证索引有效性。

    三、实验步骤

    (一)数据库定义实验

    创建基本表时,为不同的列选择合适的数据类型,正确创建表级和列级完整性约束,如列值是否允许为空、主码和外码等。
    在这里插入图片描述
    这里创建了三个表,Student表中以Sno作为主码,Sname加上unique约束、Course表中Cno作为主码,Cname加上not null约束,同时引用本身的Cno(主码)为Cpno属性列(非主码)作为外码、表SC以Sno、Cno属性组作为主码,同时Sno引用自Student的主键Sno,Cno引用自Course表的主键Cno;
    数据库testdb与三个表都创建成功;
    在这里插入图片描述
    注意:数据完整性约束,可以在创建基本表时定义,也可以先创建表然后定义完整性约束。由于完整性约束的限制,被引用的表要先创建。

    (二)数据基本查询实验

    已经向三个表中填充了一些元组,可以进行基本的查询操作;
    实验重点:分组统计查询、单表自身连接查询、多表连接查询。
    2.1.查询指定列(投影)、选择 在这里插入图片描述

    2.2. 不带分组过滤条件 和 带分组过滤条件的分组统计查询
    在这里插入图片描述
    前者查询选修每门课程的选修人数,后者查询平均成绩大于等于80的学生学号与他的平均成绩,两者都用到了GROUPY BY分组查询,后者还用到HAVING过滤条件;
    在这里插入图片描述
    2.3. 两表连接 与 自身连接
    在这里插入图片描述
    两表连接查询student、sc表中Sno相同的并且将元组连接,而后者同样如此但却将相同的属性仅保留一个,从结果也可以看出;
    在这里插入图片描述
    2.4. 三表连接
    在这里插入图片描述
    可以看到,三表连接涉及到Student、Course、SC三个表,目的是将所有的学生信息查询出来,计算查询表示将查询的结果(某一列的值)经过计算得到新的值打印出来;
    在这里插入图片描述

    (三)数据高级查询实验

    针对自定义数据库,正确分析用户查询要求,设计各种嵌套查询和集合查询。
    实验难点:嵌套查询、相关子查询、多层EXIST嵌套查询。
    3.1. 相关子查询与不相关子查询
    相关子查询表示子查询的查询条件依赖于父查询,不相关子查询则相反;
    在这里插入图片描述
    第一个查询表示不相关子查询,第一步的查询确定刘晨所在的系名,第二部查询是查找所有在CS系中的学生,第一部查询嵌入到第二部查询中,先执行子查询再进行父查询;
    第二个查询是相关子查询,旨在找出每个学生查过他自己选修课程平均成绩的课程号;
    X是表SC的别名,用来表示SC的一个元组,内层循环是求一个学生所有选修课程平均成绩,至于是哪一个学生的平均成绩需要看x.Sno的值,与父查询相关;
    其中该语句的执行过程如下:
    ①外层查询中取出SC的一个元组x,将x的Sno传入内层查询
    ②执行内层查询,得到平均值,用该值代替内层查询,得到外层查询
    ③执行该外层查询
    (与刘晨同系学生)
    3.2. 谓词ANY查询 和 带EXISTS的查询
    子查询返回单值时可以用比较运算符,返回多值时要用ANY;
    EXISTS代表存在量词,带有该谓词的子查询不返回任何数据,只产生逻辑真或假。
    在这里插入图片描述
    前者为带ANY谓词的查询,查找非计算机系中比任意一个计算机系学生年纪小的学生姓名与学号。后者为带EXISITS的查询,查询所有选修了1号课程的学生。
    在这里插入图片描述
    3.3. 多层嵌套EXISTS 与 集合查询
    与EXISTS相对应的就是NOT EXISTS谓词,若内层查询结果为空,则外层的WHERE字句返回真值,否则返回假值。
    SLELE语句的查询结果是元组的集合,所以多个SELETE语句的结果可进行集合操作,包括并操作UNION、交操作INTERSET和差操作EXCEPT。
    注意,参加集合操作的各查询结果列数必须相同,对应项的数据类型也必须相同。
    在这里插入图片描述
    多层嵌套EXISTS查询,查询了全部课程的学生学号、姓名;它表达的语义为;不存在这样的课程y,学生201215122选修了y,而学生x没有选。
    集合UNION查询,查询了计算机科学系的学生与年龄不大于19岁学生的并集,简单的将两个SELETE查询结果并起来;
    在这里插入图片描述

    (四)数据更新实验

    熟悉数据库的数据更新操作,能够使用SQL语句对数据库进行数据的插入、修改、删除操作。
    实验重点:插入、修改和删除数据的SQL。
    实验难点:与嵌套SQL子查询相结合的插入、修改和删除数据的SQL语句;利用一个表的数据来插入、修改和删除另外一个表的数据。
    4.1. 插入数据
    在这里插入图片描述
    插入操作比较简单,使用insert into语句即可;
    但需要注意的是:我们插入的信息需要满足各个表的约束条件,如UNIQUE、PRIMARY KEY条件等;
    在这里插入图片描述
    4.2. 与嵌套子查询相结合的插入
    在这里插入图片描述
    这里建立一个表dept_age用于存储各个系的平均年龄;
    然后使用与嵌套子查询相结合的插入方式对Student表按系分组求平均年龄,再把结果存入新表中;
    在这里插入图片描述
    4.3. 单条更新与批量更新数据
    在这里插入图片描述
    UPDATE语句用于修改指定表中的元组,SET自居给出的表达式的值用于取代相应的属性列值,省略WHERE则表示要修改表中所有元组。
    上面的语句中前者更新一条课程数据,将Cpno为8的元组的Cpno修改为2;
    后者省略where语句,将表中所有语句的Sage加1;
    在这里插入图片描述

    4.4.单条删除与批量删除
    在这里插入图片描述
    DELETE语句的功能是从指定的表中删除满足WHERE子句条件的所有元组,省略Where子句则表示删除表中全部元组,但表定义仍在。
    在这里插入图片描述
    在这里插入图片描述
    4.5. 带子查询的删除
    在这里插入图片描述
    子查询同样可以嵌套在DELETE语句中,用于构造执行删除操作的条件。
    上述语句为删除MBA系所有学生的选课记录。
    在这里插入图片描述
    注:对某个基本表中数据的增、删、改操作有可能会破坏参照完整性!

    (五)视图

    熟悉SQL语言有关视图的操作,能够熟练使用SQL语句来创建需要的视图,定义数据库外模式,并能使用所创建的视图实现数据管理。
    实验重点:创建视图。
    实验难点:可更新的视图和不可更新的视图的区别, WITH CHECK OPTION的验证。
    5.1. 创建视图(带和不带检查选项)
    在这里插入图片描述
    与创建表的方法类似,关键字为CREATE VIEW;
    子查询可以是任意的SELECT语句,是可以包含ORDER BY子句和DISTINCT短语的;
    WITH CHECK OPTION表示对视图进行UPDATE、INSERT、DELETE操作时要保证更新、插入、删除的行满足视图定义中的谓词条件。
    第一个不带检查选项的视图是信息系学生的视图,忽略了IS_Student的列名,隐含了由子查询中三个列名组成。
    第二个带检查选项的视图是成年学生的学号、年龄组成的视图,当我们对视图数据进行更改时需要首先判断是否可行。
    在这里插入图片描述
    5.2. 验证WITH CHECK OPTION选项
    在这里插入图片描述
    我们从adult视图中删除一个元素,那么如果可以删除对应的表中的元组同样会删除;
    在这里插入图片描述
    删除失败!
    这里失败的原因在于student中的Sno 201215121已经被SC表引用作为SC表的外键了,因此不能删除;
    这里可以看出OPTION CHECK OPTION选项有效。
    5.3. 分组视图
    在这里插入图片描述
    用带有聚集函数和GROUPY BY字句查询来定义视图,这种视图成为分组视图。
    上述语句中,将学生的学号以及平均成绩定义为一个视图;
    AS语句中的SELECT语句的目标列平均成绩是通过作用聚集函数得到的,所以CREATE VIEW中必须明确定义组成S_G视图的各个属性列名。S_G是一个分组视图。
    在这里插入图片描述
    5.4. 可更新与不可更新视图
    由于视图是不实际存储数据的虚表,因此对视图的更新最终要转换为对基本表的更新。
    在这里插入图片描述
    前者将信息系学生视图IS_Student中学号为201215125的学生年龄改为19。
    在这里插入图片描述
    更新成功;
    而后一个更新是对视图S_G表中学号为201515121的学生平均成绩改为90;
    在这里插入图片描述
    可以看到,更新一个无法更新的表必然失败!
    关系数据库中,并不是所有视图都是可更新的,有些视图的更新不能唯一的有意义地转换成对相应基本表地更新。
    上面对S_G地更新无法转换成对基本表的更新,因为系统无法修改各科成绩使得平均成绩为90。

    5.5. 视图消解
    在这里插入图片描述
    视图消解就是指将对视图的操作转换成对基本表的操作。
    (视图)(表)
    两者结果相同,视图消解一致。

    (六)索引实验

    为了验证索引效果,要求实验数据集达到10万条记录以上的数据量,因此我在MySql官网中下载了employees数据库并且导入到我的本机Mysql中。
    在这里插入图片描述
    6.1.展示索引
    在这里插入图片描述
    通过SHOW函数来展示出当前表的索引;
    在这里插入图片描述
    此时有处于主键上的索引,类型为BTREE;
    6.2.唯一索引
    在这里插入图片描述
    通过指定UNIQUE字段来创建唯一索引,但是这里的emp_no并不是UNIQUE约束类型的,含有很多重复元素,因此无法创建成功:
    在这里插入图片描述
    6.3.简单索引和复合索引
    在这里插入图片描述
    简单索引就是在单列上进行创建的,而复合索引则是在两列或两列以上创建。
    在这里插入图片描述
    这里可以看到创建索引需要的时间很多,说明索引是需要消耗资源的。

    6.4.使用索引与不使用索引的对比
    在这里插入图片描述
    可以看到,这里通过ignore index字段来指示查询忽略主键,同时通过EXPLAIN来判断是否有使用索引;

    • 使用索引(EXPLAN语句查询是否使用索引)
      在这里插入图片描述

    • 不使用索引(ignore index)
      在这里插入图片描述
      可以看出,使用索引后速度是不使用索引的27倍左右,提高的效率百分比为276.3%;

    四、实验心得

    本次实验通过实践学习了书本上对于数据库的DDL语句的语法、使用SQL 语句创建、修改和删除数据库的语句,SQL 查询语句,SQL嵌套查询和集合查询等各种高级查询,SQL语句对数据库进行数据的插入、修改、删除操作,创建视图和带WITH CHECK OPTION的视图,尤其是掌握索引设计原则和技巧,能够创建合适的索引以提高数据库查询,收获巨大。
    不过碍于实验内容过多,最近太忙,不能非常完整的完成每一个实验所涉及的所有细节,比较遗憾,希望下次实验有充足的时间进行设计、修正。

    展开全文
  • 数据库实验报告一

    一、 实验目的

    理解和掌握数据库DDL语言,能够使用SQL DDL语句创修改和删除数据库、模式和表。

    二、 实验内容

    用SQL定义语句创建符合如下条件的表C-1到C-4(注意各种完整性约束)
    表C-1 Student表结构

    列名 说明 数据类型 约束
    Sno 学号 普通编码定长字符串,长度为7 主键
    Sname 姓名 普通编码定长字符串,长度为10
    Ssex 性别 普通编码定长字符串,长度为2
    Sage 年龄 微整型(tinyint)
    Sdept 所在系 普通编码不定长字符串,长度为20
    Sid 身份证号 普通编码定长字符串,长度为10
    Sdate 入学日期 日期
    

    表C-2 Course表结构

    列名 说明 数据类型 约束
    Cno 课程号 普通编码定长字符串,长度为10 主键
    Cname 课程名 普通编码不定长字符串,长度为20
    Credit 学时数 整型
    Semester 学分 小整型
    

    表C-3 SC表结构

    列名 说明 数据类型 约束
    Sno 学号 普通编码定长字符串,长度为7 主键,引用Student的外键
    Cno 课程号 普通编码定长字符串,长度为10 主键,引用Course的外键
    Grade 成绩 小整型
    

    表C-4 Teacher表结构

    列名 说明 数据类型 约束
    Tno 教师号 普通编码定长字符串,长度为8
    Tname 教师名 普通编码定长字符串,长度为10
    Salary 工资 定点小数,小数点前4位,小数点后2

    表C-1 Student表数据

    学号 姓名 性别 年龄 系别 身份证号 入学日期
    0811101 李勇 男 21 计算机系
    0811102 刘晨 男 20 计算机系
    0811103 王敏 女 20 计算机系
    0811104 张小红 女 19 计算机系
    0821101 张立 男 20 信息管理系
    0821102 吴宾 女 19 信息管理系
    0821103 张海 男 20 信息管理系
    0831101 钱小平 女 21 通信工程系
    0831102 王大力 男 20 通信工程系
    0831103 张姗姗 女 19 通信工程系
    

    表C-2 Course表中的记录

    Cno Cname Credit Semester
    C001 高等数学 4 1
    C002 大学英语 3 1
    C003 大学英语 3 2
    C004 计算机文化学 2 2
    C005 VB 2 3
    C006 数据库基础 4 5
    C007 数据结构 4 4
    C008 计算机网络 4 4
    

    表C-3 SC表中的记录

    Sno Cno Grade
    0811101 C001 96
    0811101 C002 80
    0811101 C003 84
    0811101 C005 62
    0811102 C001 92
    0811102 C002 90
    0811102 C004 84
    0821102 C001 76
    0821102 C004 86
    0821102 C005 73
    0821102 C007 NULL
    0821103 C001 50
    0821103 C004 80
    0831101 C001 50
    0831101 C004 80
    0831102 C007 NULL
    0831103 C004 78
    0831103 C005 65
    0831103 C007 NULL
    

    表C-4 Teacher表中的记录

    Tno Tname Salary
    T001 张美霞 5000
    T002 王洪林 5500
    T003 李丽芬 4800
    T004 周良水 6000
    T005 吴翔 7000
    

    三、实验环境

    MySQL、Navicat 15 for MySQL

    四、实验前准备

    实验数据,写在了实验内容里面。

    五、 实验步骤

    先创建数据库:
    Creat Database
    接下来创建学生表:
    在这里插入图片描述

    创建课表:
    在这里插入图片描述

    创建选课表,以及两个外键(Foreign Key),分别关联student表的Sno和course表的Cno:
    在这里插入图片描述

    创建教师表:
    在这里插入图片描述
    接下来我们来看一下每个表的设计:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    接下来添加数据:
    因为学生表数据有两列没有,所以要写上每一个value对应的列。
    在这里插入图片描述
    课表数据:
    在这里插入图片描述
    选课表数据:
    在这里插入图片描述
    教师表数据:
    在这里插入图片描述
    接下来练习了有关用户的几个操作:
    在这里插入图片描述
    约束的学习:
    直接放上学习的代码啦:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    六、 实验结果

    student、course、sc、teacher几个表创建完成,期望数据添加成功。
    有关完整性的使用:创建时使用主键约束
    在这里插入图片描述

    更改学生姓名,使其非空:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • ______数据库______课程实验报告实验名称:数据库控制(一):数据安全性姓名班级学号实验台编号同组学生实验课表现出勤、表现得分25% 实验报告得分50%实验总分操作结果得分25%实验目的:1.掌握SQL SERVER身份认证的两...
  • 实验七 数据完整性 1实验目的 (1)掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。 (2)掌握完整性约束的运行检查机制。 (3)掌握参照完整性的级联删除和修改方法。 (4)掌握正确设计关系模式...
  • 实验目的(1)理解SQL Server验证用户身份的过程,掌握设置身份验证模式的方法。(2)理解登录账号的概念,掌握混合认证模式下登录账号的建立与取消方法。(3)掌握混合认证模式下数据库用户的建立与取消方法。(4)...
  • 实验2 创建和修改数据表及数据完整性 一、实验目的 ...示例是某公司的产品销售数据库company,company数据库中存在人事表employee、客户表customer、销售表sales、销售明细表sale_item、产品表product。
  • 在这里,我们可以发现root是MySQL最高级别权限的用户,它拥有查看、修改和删除MySQL软件中所有数据库的权限。当需要有多个数据库,并且分配给不同的用户使用,多个用户之间只有查看自己对应数据库的权限,不相互干扰...
  • 南邮数据库实验(2)

    千次阅读 2021-04-14 16:25:56
    实验名称 :DBMS的数据库保护 一、 实验目的和要求 (1) 巩固事务的概念 (2) 正确理解并发及锁机制 (3) 熟悉DBMS的安全控制 二、实验原理及内容 1. 创建用户U1和U2 CREATE USER U1 IDENTIFIED BY B123; GRANT ...
  • 大二数据库实验

    2022-04-14 12:36:20
    数据表的索引建立和删除 为s表的sname字段建立唯一索引 为s表的sdept建立聚簇索引 删除s表的唯一索引 视图的建立、删除和查询 建立一个计算机系学生基本信息视图CSV(SNO,SNAME,SEX,AGE) 在CSV视图中查询1983年...
  • Sql Server 数据库实验报告

    万次阅读 多人点赞 2019-11-28 15:25:37
    数据库原理 实验报告 目录 实验一 SQL Server的安装和配置 4 一、实验目的 4 二、实验内容 4 三、实验步骤 4 四、实验代码和结果 4 五、实验总结与体会 4 实验二 创建数据库 5 一、实验目的 5 二、实验内容 5 三、...
  • 数据库实验报告-实验一:SQL语言

    千次阅读 2021-07-29 10:06:41
    实验1-1数据库及数据表的创建与删除 一、实验目的 掌握利用Oracle Database Configuration Assistant工具来创建和删除Oracle数据库,掌握Oracle中的用Create命令定义表的方法,以及表的完整性定义,并掌握Oracle中的...
  • 数据库实验一实验报告

    千次阅读 2020-03-30 17:40:52
    实验 1 :数据库的定义实验实验需要 2 学时。 一、实验目的 要求学生熟练掌握和使用 SQL 、 Transact-SQL 、 SQLServer 企业管理器创建数据库、表、索引和修改表结构,并学会使用 SQL Server 查询分析器接收 ...
  • 数据库实验

    2015-12-13 19:14:44
    西工大计算机学院 数据库实验报告 利用图形用户界面创建,备份,删除和还原数据库和数据表 (50分,每小题5分)  数据库和表的要求(第四版教材第二章习题5要求的数据库) 数据库名:SPJ,其中包含四张表:S表, P...
  • 掌握Oracle中系统权限和对象权限的概念,能熟练进行用户权限的授予与回收;理解角色的基本概念,能熟练使用角色进行权限的授予与回收。掌握数据库对象如触发器、存储过程和函数的定义和使用。掌握ORACLE数据库系统...
  • 实验一:根据要求建立表,插入3个专业,每个专业不小于10个人,其中包括自己的信息。测试相关的完整性约束,并注意保留出错的提示,分析出错的原因。为每个学生建立相关用户,实现权限控制,每个学生可查询自己的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 65,242
精华内容 26,096
热门标签
关键字:

数据库实验删除客户信息