[MySQL]实训七

2023-10-28

  • 【实训目的】
  1. 设置字段的默认值约束;
  2. 设置字段的自动增长约束;
  3. 设置字段的外键约束;

(有关上述三种约束的概念在上一篇文章中有提及)

http://t.csdn.cn/9rV9T

1、在数据库db_school中重新定义表tb_student,要求以表级完整性约束定义外键

表级完整性约束:需要在表中所有字段定义后添加一条primary key语法格式的子句。

首先,创建并使用数据库db_shool;

//创建数据库
mysql> create database db_school;
Query OK, 0 rows affected (0.03 sec)

//使用数据库
mysql> use db_school;
Database changed

 按照题意其次,下面就是创建学生表tb_student。

但我们在《数据完整性约束》中提到过,添加外键约束的,需要有一个被参照表

所以我们在此处要先创建被参照表tb_class,需要注意的是,我们此前提到过一个规则:

——必须为被参照表定义主键或候选键——

故真正的建表格式应该如下所示:

mysql> create table tb_class(
    -> classNo char(6) primary key comment'班级编号',
    -> className varchar(20) comment'班级名称',
    -> department varchar(30) comment'所属院系',
    -> grade int comment'年级',
    -> classNum int comment'班级最大人数',
    -> constraint uq_class unique(classname)
    -> );
Query OK, 0 rows affected (0.01 sec)

然后再创建学生表tb_student并表级完整性约束为其定义外键约束

mysql> create table tb_student(
    -> studentNo char(10) comment'学号',
    -> studentName varchar(20) comment'姓名',
    -> sex char(2) comment'性别',
    -> birthday date comment'出生日期',
    -> native varchar(20) comment'籍贯',
    -> nation varchar(10) comment'民族',
    -> classNo char(6) comment'班级编号',
    -> constraint fk_student foreign key(classNo) references tb_class(classNo)
    -> );
Query OK, 0 rows affected (0.01 sec)

2、在已有数据库db_school中使用修改表的语法重新定义tb_student,要求增加外键;

mysql> alter table tb_student drop foreign key fk_student;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> alter table tb_student add constraint fk_student foreign key(classNo) references tb_class(classNo);
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

3、在已有数据库db_school中删除表tb_student在classNo上定义的外键;

mysql> alter table tb_student drop foreign key fk_student;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

4、在已有数据库db_school中修改表tb_class.要求增加一个字段id为自增约束;

mysql> alter table tb_class add id int unique auto_increment;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

5、选择已有数据库db_school,在表tb_class中,删除自增约束;

删除自增的方法我们也提过,有两行,且位置不能互换。

mysql> alter table tb_class modify id char(10);
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> alter table tb_class drop primary key;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

6、在数据库db_school中重新定义学生表tb_student,要求字段nation设置默认值(default)为“汉族”;

首先将原表删除,再创建一个新表。

mysql> drop table tb_student;
Query OK, 0 rows affected (0.01 sec)
mysql> create table tb_student(
    -> studentNo char(10),
    -> studentName varchar(20),
    -> sex char(2),
    -> birthday date,
    -> native varchar(20),
    -> nation varchar(10) default'汉族',
    -> classNo char(6)
    -> );
Query OK, 0 rows affected (0.01 sec)

7、在已有数据库db_school中修改表tb_class,要求新增字段native默认值为“江西南昌”;

mysql> alter table tb_student alter native set default'江西南昌';
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

8、在已有数据库db_school中修改表tb_class,要求删除字段native默认值;

mysql> alter table tb_student alter native drop default;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[MySQL]实训七 的相关文章

随机推荐

  • Callable接口、Runable接口、Future接口

    1 Callable与Runable区别 Java从发布的第一个版本开始就可以很方便地编写多线程的应用程序 并在设计中引入异步处理 Thread类 Runnable接口和Java内存管理模型使得多线程编程简单直接 但Thread类和Runn
  • 蓝桥杯评分标准_蓝桥杯比赛要求

    七 奖项设置及评选办法 7 1 省赛 1 参赛选手奖 省赛每个组别设置一 二 三等奖 比例分别为 10 20 30 总比例为实际参赛人数 的 60 零分卷不得奖 省赛一等奖选手获得直接进入全国总决赛资格 所有获奖选手均 可获得由工业和信息化
  • ABA问题及解决

    ABA问hiyi题 在多线程环境下 一个线程需要修改共享变量的值 使用CAS操作时 当其他线程将该共享变量由A该为B 再将B改为A后 这个线程依然可以CAS操作成功 因为这个线程不能感知这个共享变量被修改过 解决方法 给共享变量增加一个版本
  • spring cloud gateway项目启动报错

    spring cloud gateway项目启动报错 Correct the classpath of your application so that it contains a single compatible version of
  • Nginx之keepalive配置解读

    目录 keepalive基础介绍 Nginx中的keepalive配置项 应用场景 什么时候使用 什么时候不用 keepalive基础介绍 keepalive是HTTP 1 1协议中的一个特性 它允许客户端和服务器之间的TCP连接在一个HT
  • 使用file.transferTo(tempFile)保存文件,第二次操作时却报错:请求的操作无法在使用用户映射区域打开的文件上执行。

    背景是我要做个后台管理上表格的导入导出excel的功能 导出没有什么问题 但一到导入就开始出了问题 我用的是xxl excel工具 在导入时接收一个MultipartFile file 然后new一个新文件 再利用file transfer
  • 8-js高级-3

    JavaScript 进阶 3 了解构造函数原型对象的语法特征 掌握 JavaScript 中面向对象编程的实现方式 基于面向对象编程思想实现 DOM 操作的封装 编程思想 构造函数 原型 综合案例 编程思想 学习 JavaScript 中
  • pclint入门

    1 安装 将压缩包比如pclint8 zip拷贝到c 解压后重命名目录为c pclint 版本 Q 如何查看版本 A 见readme txt PC lint for C C Version 8 00e 2 开始使用 2 1 不用任何配置 直
  • 第十二章:使用C语言(Python语言)操作Sqlserver2019数据库

    目录 一 连接数据库的准备工作 二 使用 ODBC 连接数据库 1 ODBC 数据源简介 2 配置 ODBC 数据库源 3 连接数据库函数 4 C 语言通过 ODBC 操作数据库 三 非 ODBC 方式操作数据库 3 1 删除 修改 插入数
  • java 僵尸进程_僵尸进程ZOMBIE

    僵尸进程是指它的父进程已经退出 父进程没有等待 调用wait waitpid 它 而该进程dead之后没有进程接受 就成为僵尸进程 也就是 zombie 进程 一个进程在调用exit命令结束自己的生命的时候 其实它并没有真正的被销毁 而是留
  • 梦幻服务器系统维护后多久再登录,梦幻西游:系统维护后出现重大漏洞,官方发文紧急停机修复?...

    原标题 梦幻西游 系统维护后出现重大漏洞 官方发文紧急停机修复 精彩游戏 快乐无穷无尽 这里是梦幻西游资讯集中营 每天为你分享不一样的游戏乐趣 大家好 我是梦幻小九 当今社会网络游戏成千上万个 相信每一款网络游戏都会偶尔出现系统漏洞 梦幻西
  • 西门子PLC300系列与上位机无法建立以太网通信问题

    问题描述 最近做一个Java开发的WCS项目需要对接机械臂 使用的是PLC313型号 按照之前和其他型号PLC例如1200系列或者1500系列对接的经验配置好相关IP DB块以及数据结构偏移量以后发现无法建立连接 刚开始以为是使用是git上
  • keil编译运行错误,缺少error:#5:#includecore_cm3.h_过路老熊_新浪博客

    keil编译运行错误 提示缺少某个文件等等 如缺少error 5 include core cm3 h 用Keil vision5编译时出现以下错误 error 5 cannot open source input file core cm
  • Java EE 企业级应用 复习 初识Spring框架

    Spring概述 Spring是由Rod Johnson组织开发的一个分层的Java SE EE一站式轻量级开源框架 它最核心的理念是控制反转和面向切面编程 Spring框架的优点 非倾入式设计 降低耦合性 方便开发 支持AOP编程 支持声
  • Linux之Centos7.6版本下载及安装Go语言环境配置,安装Go1.18版本教程笔记-2023版

    文章目录 一 Linux下安装Go环境 1 远程获取 2 解压 3 添加环境变量 5 Go环境配置图 配置完成信息图 二 VsCode连接我们Go 2 1安装对应的插件 2 2进行连接 3 相关配置 4 成功连接 一 Linux下安装Go环
  • 视频在H5页面在微信浏览器不能自动播放问题

    引用官方的JS文件 正式方法 function BGMAutoPlayMgr url this audioContext new window AudioContext window webkitAudioContext window mo
  • 2020那些搭载Imagination IP的设备(国内篇)

    除海外市场外 2020年国内不少智能新品上市 并通过搭载ImaginationGPU 和 NNA IP 实现了更加明显的市场差异化 基于紫光展锐虎贲T7510 平台国内多款 5G 手机上市 智能手机市场 5G AI 无疑成为下一代手机的焦点
  • Unity调用Android类方法

    1 添加Unity的classes jar文件 创建一个Android工程AndroidUnityDemo 由于Unity的版本不同 直接在Unity安装包文件夹里面搜索classes jar文件 如果有多个classes jar文件 一般
  • SpringData JPA 提示:TransactionRequiredException: Executing an update/delete query

    问题场景 package com zzg dao import javax transaction Transactional import org springframework data jpa repository JpaReposi
  • [MySQL]实训七

    实训目的 设置字段的默认值约束 设置字段的自动增长约束 设置字段的外键约束 有关上述三种约束的概念在上一篇文章中有提及 http t csdn cn 9rV9T 1 在数据库db school中重新定义表tb student 要求以表级完整