• ​数据库原理及应用上机(实验二 SQL数据定义功能实验)


    作者:命运之光 
    专栏:数据库原理及应用上机实验

     

    目录

    ✨一、实验目的和要求

    ✨二、实验内容与步骤

    ✨三、附加练习

    ✨四、实验总结


    🍓🍓前言: 数据库原理及应用上机实验报告的一个简单整理后期还会不断完善🍓🍓


    ✨一、实验目的和要求

    1.掌握利用SQL查询分析器和企业管理器进行数据库及基本表的定义、删除与修改;

    2.掌握索引的建立与删除的方法。

    ✨二、实验内容与步骤

    (一)建立数据库

    通过企业管理器或查询分析器建立学生-课程数据库xskc。

    1. create database xskc
    2. on
    3.  ( name=xskc_data,
    4.    filename='e:\sjksy\xskc_data.mdf')
    5. log on
    6.  ( name=xskc_log,
    7.    filename='e:\sjksy\xskc_log.ldf')

    注:先在E:盘上建立一个文件夹(例如:E:\sjksy),数据库文件保存到自建的文件夹中。

    (二)基本表的定义、修改与删除

    1.定义基本表

    利用查询分析器或企业管理器创建基本表,并输入数据。

    例5  建立一个学生表Student。这里要求Sno和Sname不能为空值,且取值唯一。

    1. CREATE TABLE Student                      
    2.     (Sno  CHAR(9) PRIMARY KEY,           /* 列级完整性约束条件,Sno是主码 */
    3.     Sname  CHAR(20) UNIQUE,              /* Sname取唯一值 */
    4.     Ssex  CHAR(2),
    5.     Sage  INT,
    6.     Sdept  CHAR(20)
    7.    );

    说明:在Microsoft SQL Server 2008的查询分析器(Query Analyzer)中使用单条SQL语句,其末尾不需要分号“;”作为命令结尾标记。通常,SQL Server 2008对大多数末尾带有分号的SQL命令都能顺利执行,但对少数的SQL命令,末尾若带分号,则SQL Server 2008会给出错误信息提示。

    例6 建立课程表Course,其属性名意义分别为Cno-课程号, Cname-课程名, Cpno-先修课课程号, Ccredit-学分。

    1. CREATE TABLE Course
    2.    (Cno  CHAR(4) PRIMARY KEY,            /* 列级完整性约束条件,Cno是主码 */
    3.     Cname  CHAR(40),           
    4.     Cpno CHAR(4),
    5.     Ccredit  INT,
    6.     );

    例7 建立学生选修课表SC。其中的属性名意义分别为Sno-学号,Cno-课程号和Grade-成绩。 

    1. CREATE TABLE SC              
    2.     ( Sno  CHAR(9),
    3.       Cno  CHAR(4),
    4.       Grade  INT,
    5.       PRIMARY KEY(Sno,Cno),
    6.       FOREIGN KEY(Sno) REFERENCES Student(Sno),
    7.       FOREIGN KEY(Cno) REFERENCES Course(Cno)
    8.      );

    2 修改基本表

    利用查询分析器或企业管理器修改基本表:

    例8  向基本表Student中增加“入学时间”属性列,其属性名为S_entrance,数据类型为日期型。

    ALTER TABLE Student ADD S_entrance DATETIME;

    例9 将Sage(年龄)的数据类型改为SMALLINT型。

    ALTER TABLE Student ALTER COLUMN Sage SMALLINT;

    例10  增加课程名称必须取唯一值的约束条件。

    ALTER TABLE Course ADD UNIQUE(Cname);

    注意:SQL Server 2008 增加了删除属性的命令。比如,删除属性列S_entrance的命令为:

    ALTER TABLE Student DROP COLUMN S_entrance;

    3 删除基本表

    利用查询分析器或企业管理器删除基本表:

    例11 删除Student表。

    DROP TABLE  Student;

    说明:此表删除后,请立即用例1将其建立起来,以便后面的例子使用。

    4 数据输入

    利用企业管理器向表Student、Course、SC中输入数据。

    (三)索引的建立和删除

    1 建立索引

    例14 为学生-课程数据库中的Student,Course,SC三个表建立索引。其中Student表按Sno(学号)升序建唯一索引,Course表按Cno(课程号)升序建唯一索引,SC表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。其语句为:

    1. CREATE UNIQUE INDEX Stu_Sno ON Student(Sno);
    2. CREATE UNIQUE INDEX Cou_Cno ON Course(Cno);
    3. CREATE UNIQUE INDEX SCno ON SC(Sno ASC, Cno DESC);

    2 删除索引

    例15  删除Student表的Stu_Sname索引。

    DROP INDEX Student.Stu_Sname;

    ✨三、附加练习

    在表student中增加新字段 “班级名称(sclass)“;

    在表student中删除字段“班级名称(sclass)”;

     

    修改表student中字段名为“sname”的字段长度由原来的6改为8;

     

    修改表student中字段“sdept”名称为“dept”,长度为20;

     

    修改表student中sage字段名称为sbirth,类型为smalldatetime;

    修改表student新名称为stu_info;

    ✨四、实验总结

    本次实验主要是学习了SQL数据定义功能,包括数据库和基本表的定义、删除和修改,以及索引的建立与删除。

    通过使用SQL查询分析器和企业管理器,我们学会了创建新的数据库和基本表。使用CREATE DATABASE语句可以定义新的数据库,而CREATE TABLE语句用于定义新的基本表。我们可以指定表的列名、数据类型和约束条件来确保数据的一致性和完整性。

    另外,我们也学习了如何删除数据库和基本表。使用DROP DATABASE和DROP TABLE语句可以永久性地删除不再需要的数据库和表。在执行删除操作时需要谨慎,因为数据将无法恢复。

    此外,我们还了解了索引的概念和作用。索引是用于提高查询效率的数据结构。通过CREATE INDEX语句可以创建索引,并指定要创建索引的列。而使用DROP INDEX语句可以删除不再需要的索引。

    通过本次实验,我们掌握了SQL数据定义功能的基本操作,对于数据库的设计和管理有了更深入的理解。这些知识和技能对于进行数据库操作和优化非常重要。

     

     

  • 相关阅读:
    SpringBoot启动流程
    Sketch在mac运行时崩溃,什么是安全模式以及如何启用它?
    直接选择排序
    10个常见的Java面试问题及其答案
    关于minizip-ng无法解压unix下压缩的带有文件夹的zip文件
    小程序开发 二 (王红元)
    C/C++班主任管家系统
    探索大恒图像|MER2-301-125U3C在制造行业玻璃瓶质量检测的应用
    Scala011--Scala中的常用集合函数及操作Ⅱ
    【Arduino+ESP32专题】Modbus RTU简介
  • 原文地址:https://blog.csdn.net/VLOKL/article/details/130744612