首页 > 数据库 >【scau数据库实验一】mysql_navicat_数据库定义实验、基本命令

【scau数据库实验一】mysql_navicat_数据库定义实验、基本命令

时间:2024-05-30 21:29:11浏览次数:21  
标签:数据库 navicat age 实验 KEY employee TABLE ALTER ID

实验一开始之前,如果还有不会使用navicat建议花五分钟补课哦~

补课地址:【scau数据库实验先导】mysql_navicat_数据库新建、navicat的使用-CSDN博客

实验目的:

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

实验报告要求:

实验报告中简单描述实验步骤,详细写明建库及建表的代码,并以截图的形式显示操作是否成功。

实验内容:

一、采用SQL语言建立EMPLOYEE1数据库。

运行均成功(OK)以后,重新双击打开表那一栏

可以看见,新建成功的表

CREATE TABLE company (  
    company_name VARCHAR(30) NOT NULL,  
    city VARCHAR(20) NOT NULL,  
    PRIMARY KEY (company_name)  
);  
  
CREATE TABLE employee (  
    employee_ID INT NOT NULL,  
    employee_name VARCHAR(20) NOT NULL,  
    street VARCHAR(20) NOT NULL,  
    city VARCHAR(20) NOT NULL,  
    PRIMARY KEY (employee_ID)  
);  
  
CREATE TABLE manages (  
    employee_ID INT NOT NULL,  
    manager_ID INT NOT NULL,
    PRIMARY KEY (employee_ID),  
    FOREIGN KEY (employee_ID) REFERENCES employee(employee_ID) ON DELETE CASCADE,  
    FOREIGN KEY (manager_ID) REFERENCES employee(employee_ID) ON DELETE RESTRICT
);  
  
CREATE TABLE works (  
    employee_ID INT NOT NULL,  
    company_name VARCHAR(30) NOT NULL,
    salary NUMERIC(8,2) CHECK (salary > 3000),  
    PRIMARY KEY (employee_ID),  
    FOREIGN KEY (employee_ID) REFERENCES employee(employee_ID) ON DELETE CASCADE,  
    FOREIGN KEY (company_name) REFERENCES company(company_name) ON DELETE CASCADE
);

二、采用可视化工具(例如:Navicate)创建上述数据库,命名为EMPLOYEE2。

为节省时间,这里仅作操作示例,余下的同学们自行完成

设计表完成并保存后,重新双击‘表’,会出现新建的表了

三、修改、删除基本表(注意:完成每个操作后请用DESC操作查看表结构)

(1)向基本表employee 中增加“性别”属性列,其属性名为sex,数据类型为字符型。

解题步骤:

①选中employee2右键新建查询,输入:

        ALTER TABLE employee ADD sex VARCHAR(20);

②将此查询保存并命名为sex。

(2)向基本表employee中增加“年龄”属性列,其属性名为age,数据类型为

SMALLINT, 并且年龄在15至30之间。

解题步骤:

①选中employee2右键新建查询,输入:

        ALTER TABLE employee ADD age SMALLINT CONSTRAINT numcons CHECK (age BETWEEN 15 AND 30);

②将此查询保存并命名为age_add。

(3)将employee中的age年龄的数据类型改为INT型。

解题步骤:

①选中employee2右键新建查询,输入:

        alter  table  employee  MODIFY COLUMN age INT CONSTRAINT numcons2 CHECK (age BETWEEN 15 AND 30)

②将此查询保存并命名为age_change_type。

(4)将employee中的age字段改名为emp_age。

解题步骤:

①选中employee2右键查询,输入:

        ALTER TABLE employee Drop Constraint numcons;
        ALTER TABLE employee CHANGE age emp_age INT;
        ALTER TABLE employee ADD CONSTRAINT numcons CHECK (emp_age BETWEEN 15 AND 30);

②将此查询保存并命名为emp_age。

(5)将employee中的sex列允许为空值的属性更改为不允许为空值。

解题步骤:

①选中employee2右键查询,输入:

        ALTER TABLE employee MODIFY COLUMN sex VARCHAR(20) NOT NULL;

②将此查询保存并命名为sex_notnull。

(6)向company表中增加id字段,并添加自增约束。

解题步骤:

①选中employee2右键查询,输入:

        ALTER TABLE works DROP FOREIGN KEY works_ibfk_2;

        ALTER TABLE company DROP PRIMARY KEY;

        ALTER TABLE company ADD id INT NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST;

②将此查询保存并命名为id_add。

(7)删除employee表中的sex列。

解题步骤:

①选中employee2右键查询,输入:

        ALTER TABLE employee DROP sex;

②将此查询保存并命名为sex_delete。

(8)删除employee表。思考:由于主键、外键的约束,如何才能对employee表执行删除操作。

解题步骤:

①选中数据库employee2后右键查询,需要先取消其他表中的关联再删除表。输入:

        ALTER TABLE manages DROP FOREIGN KEY manages_ibfk_1;

        ALTER TABLE manages DROP FOREIGN KEY manages_ibfk_2;

        ALTER TABLE works DROP FOREIGN KEY works_ibfk_1;

        ALTER TABLE employee DROP PRIMARY KEY;

        DROP TABLE employee;

②将此查询保存并命名为drop_employee。

(9)向manages表中的manager_ID字段上添加not null约束,观察结果,并说明原因。

解题步骤:

①选中employee2右键查询,输入:

        ALTER TABLE manages MODIFY manager_ID INT NOT NULL;

②将此查询保存并命名为manager_ID_add。

思考题:

(1)在定义有外码约束的基本表时,必须先定义主表,不能颠倒次序,否则容易出错。请截图解释说明。

        外键的作用是保持数据一致性,完整性,主要目的是控制存储在外键表中的数据,使两张表形成关联。给表中添加外键时,需要选择该属性是从其他哪些参考表中的属性连接而来的,因此需要先定义主表,否则从表中的属性无法通过主表定义。

(2)如果在创建关系数据库基本表时,未创建完整性约束条件,对于数据库会有何影响?请截图解释说明。

        会导致整个数据库出现严重错误,如数据缺失,数据溢出等漏洞。

(3)在定义外码约束时,如果主表主码的数据类型与从表外码的数据类型不一致,以哪一个为准?

        以主表主码为准。

标签:数据库,navicat,age,实验,KEY,employee,TABLE,ALTER,ID
From: https://blog.csdn.net/weixin_53762564/article/details/139058630

相关文章

  • 7-1 sdut-C语言实验-母牛的故事
    代码长度限制16KB时间限制400ms内存限制64MB栈限制8192KB题目:有一对夫妇买了一头母牛,它从第2年起每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?输入格式:输入为一个整数n(0<n<55)输出格......
  • 模型节点操作学习笔记(Appendix)实验1 -- Tflite int8 删除最后的Round节点 (持续更新)
    背景如下:我要删除Round节点,同时看了一下,Dequantize和Quantize也是没有必要的。所以最好一起删除。原始项目地址:PINTO0309/hand-gesture-recognition-using-onnx:ThisisahandgesturerecognitionprogramthatreplacestheentireMediaPipeprocesswithONNX.Simultane......
  • 链表9(优化版)7-9 sdut-C语言实验-约瑟夫问题
    7-9sdut-C语言实验-约瑟夫问题分数20全屏浏览切换布局作者 马新娟单位 山东理工大学n个人想玩残酷的死亡游戏,游戏规则如下:n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。请输出最后一个人的编号......
  • Milvus向量数据库详解
    Milvus向量数据库是一款专为向量查询与检索设计的云原生数据库,它具备高性能、高可用、易拓展的特点,主要用于处理由深度神经网络和其他机器学习模型生成的Embedding向量。以下是关于Milvus向量数据库的详细说明:定义与用途:Milvus是一款云原生向量数据库,专为处理海量向量数据......
  • 基于SpringBoot的舞蹈工作室系统的设计与实现(期末大作业)+附源码+数据库
      摘要当代互联网的迅速发展以及疫情导致的社会环境的变化,传统型的舞蹈工作室教学管理模式已经满足不了学生的需求,在信息型便捷式的社会中,人类的生活环境、工作速度越来越快,因此我们需要不断的面对新涌出来的知识、新技术。为了适应社会的需求,跟上时代的步伐。而舞蹈工作室......
  • MySQL数据库-基础
    MySQL数据库P1数据库的作用2022/6/191.简介MySQL是一个[关系型数据库管理系统]由瑞典[MySQLAB](https://baike.baidu.com/item/MySQLAB/2620844)公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(Relat......
  • 如何获得Sybase中的数据库、表名、字段的SQL语句
    如何获得Sybase中的数据库、表名、字段的SQL语句1.获得Sybase中所有数据库:selectdbid,namefrommaster..sysdatabases2.获得指定数据库中的表列表:selectnamefrom数据库..sysobjects wheretype='U'orderbyname3.获得指定数据库中的视图列表:selectnamefrom数据库......
  • SQL Server报错:数据库"YourDatabaseName"的事务日志已满,原因为"LOG_BACKUP"
      通过以下代码可以收缩日志,执行完后就不报错了。--设置简单模式USE[master]GOALTERDATABASEYourDatabaseNameSETRECOVERYSIMPLEWITHNO_WAITGOALTERDATABASEYourDatabaseNameSETRECOVERYSIMPLEGO--设置压缩后的日志大小为2M,可自定义USEY......
  • 19.基于SSM的点餐系统|基于SSM框架+JSP+ Mysql+Java+B/S框架设计与实现(可运行源码+数
    内容概要:全套项目源码+详尽文档,一站式解决您的学习与项目需求。适用人群:计算机、通信、人工智能、自动化等专业的学生、老师及从业者。使用场景及目标:无论是毕设、期末大作业还是课程设计,一键下载,轻松部署,助您轻松完成项目。项目代码经过调试测试,确保直接运行,节省您的时......
  • sybase数据库导出
    sybase数据库导出摘自:https://blog.51cto.com/u_16213425/9054434在数据库管理中,数据导出是一项重要的任务,它可以将数据库中的数据导出到其他形式的文件中,以便进行备份、迁移或与其他系统进行数据交互。Sybase数据库是一个流行的关系型数据库管理系统,本文将向您介绍如何在Sybase......