数据库-扩展语句,约束方式

扩展语句:

例:

自增长:

auto_increment:表示该字段可以自增长,默认从一开始,每条记录会自动递增1

复制:

通过like这个语法直接复制ky32的表结构,只能复制表结构,不能复制表里面的数据

把class3里面的数据复制到test中,两个表数据结构要一致、出现不了就刷新一下

创建一张表,test1,数据从class3来,表结构也是class3;

补充:

Delete truncate drop;

删除表内的所有数据;

Delete from class3;

delete删除是一行一行删除,如果表中有自增长列,清空所有记录之后,再次添加内容,会从原来的数据之后,继续自增写入,建议使用truncate

Truncate table class3;

清空表的结构,而且会把表法人结构程重新建立,速度上比delete快,推荐

Drop table test;

删除表,不推荐

创建临时表:

一般用于调试,而且临时表示创建之后再表目录当中是不显示的,连接退出之后,临时表会自动销毁,而且临时表无法创建外键

Mysql约束方式:

6种常用的约束方式:

  1. 主键约束,primary key,用于唯一标识的每一行,主键列的值必须是唯一而且不能为空,一个表只能有一个主键
  2. 外键约束,用于建立表之间的关系,一般是和另一张的表的主键关联,保证数据引用的完整性,一个表可以有多个外键
  3. 非空约束,not null必须有一个值
  4. 唯一性约束:unique,确保列中的所有值都是唯一的,类似于主键,但是可以为空,而且一个表可以有多个唯一约束
  5. 默认值约束:default,在插入表数据时,如果没有定义值,会提供一个默认值
  6. 自增约束:auto_crement,每行自动生成一个唯一标识,通常和主键一起使用

练习:

创建一个表,包含所有约束

创建从表:

两者如何关联的呢:

如何删除表与表之间的关联:

主表和从表:

插入数据:先插入主表,再插入从表

删除数据:先删除主表,再删除从表

删除主表的主键

[SQL]alter table class drop primary key;

[Err] 1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

翻译:这是一个自增约束的主键,要先改变他的数据类,解除自增约束,之后主键才可以删除

所以要改变他的自增类型:

所以要改变他的数据类型:

再次删除他的主键:

加强练习:

定义一个需求:

两张表:

主表company

从表depart

Company:

  1. work_id 非空,主键int(4) 不满四位要补充
  2. Name 非空 char(5)
  3. Sex 非空 char(2)

Depart:

  1. de_id 非空 主键int(6),不满六位要补齐
  2. Work_id 要和主表的work_id关联为外键
  3. Address 为空,但是有一个默认值
  4. phone不能为空,而且也不能相同

补充:用修改的方式来添加外键

添加主键:

第二题:

需要两张表: school

de_id int(4) 不满四位要补齐,而且自增长,主键

Name VARCHAR(15) not NULL

Email varchar(45) 可以为空,而且有默认值,www.baidu.com

2,cloud_ky32

Id 自增长 主键 int

Class_name 不能为空

De_id 外键,外键和主表的主键关联。(一般都在行没书写)

Adress 可以为空,默认是’地址不详’

Phone int 不能为空,而且不能重复

3.要求删除外键连接,删除从表的主键,重新定义主键为phone

删除从表的主键,重新定义主键为phone

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/156236.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】:Linux开发工具之Linux编辑器vim的使用

🔫1.Linux编辑器-vim使用 📤 vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以…

计算机从内存中读取数组元素

在计算机中,我们可以把内存看成是一些排列好的格子,每个格子对应一个内存地址,那么数据会分散的存储在不同的格子中: 对于数组,计算机会在内存中为其申请一段连续的空间,并且会记下索引为0处的内存地址&…

Go学习第十三章——Gin入门与路由

Go web框架——Gin入门与路由 1 Gin框架介绍1.1 基础介绍1.2 安装Gin1.3 快速使用 2 路由2.1 基本路由GET请求POST请求 2.2 路由参数2.3 路由分组基本分组带中间件的分组 2.4 重定向 1 Gin框架介绍 github链接:https://github.com/gin-gonic/gin 中文文档&#xf…

Qt QWidget、QDialog、QMainWindow的区别

QWidget QWidget是Qt框架中最基础的窗口类,可以理解为用户界面的最基本单元。QWidget类提供了一个空白窗口,可以通过继承该类来创建自定义的窗口类。QWidget类提供了基本的窗口属性和方法,如大小、位置、标题、图标等。 QDialog QDialog是…

【发表案例】2区正刊,网络安全、智能系统领域,2个月3天录用,11天见刊,16天检索!

计算机类SCIE 【期刊简介】IF:4.0-5.0,JCR2区,中科院3区 【检索情况】SCIE 在检,正刊 【征稿领域】提高安全性和隐私性的边缘/云的智能方法的研究,如数字孪生等 【截稿日期】2023.11.30 录用案例:2个月…

智能机器人规划-预谋智者

智能机器人规划-预谋智者 文章目录 智能机器人规划-预谋智者智能车落地场景--该场景可自主研发实现智能安防(图片来源网络):送餐机器人(图片来源网络)大型扫地机器人(图片来源网络)迎宾机器人&a…

在 Typescript 项目中使用 cdn 加载的js插件没有类型声明

先上一段同事写得代码, 此处动态的插入了 MathJax 这个 js 插件, 我不知道为什么如此编写, //ts-ignore 此处不知道为什么如此调用, 只能使用 ts-ignore 忽略dynamicLoadingJs("//xxx.com/latex/MathJax.js?configTeX-AMS_HTML", () > {MathJax.Hub.Config({exte…

Orcad属性过滤器的使用技巧

Orcad内置的属性过滤器可以完美的解决由于属性太多导致的不好整理的问题。下面简单介绍一下方法和过程。 1、打开过滤器 2、新建属于自己的过滤器 3、进行器件属性过滤及调整的顺序(注这时一定关闭ORCAD,来操作) 3.1 安装目录下找到\Cadenc…

网络爬虫适合什么代理IP?如何使用?

在互联网时代之下,大数据对各行各业的发展有着重要的推动作用,而说到数据采集,必不可少的就是去使用爬虫工作。 一、什么是网络爬虫? 它是一种按照一定的规则自动游览、检索网页信息的程序或者脚本,通过自动请求目标…

【算能】cmake版本不对应

fatal error: boost/numeric/ublas/matrix.hpp: No such file or directory#include <boost/numeric/ublas/matrix.hpp> 解决方法&#xff1a; 这是由于cmake版本不对应&#xff0c;应该提高版本&#xff0c;是的C的编译成功

[RISC-V]verilog

小明教IC-1天学会verilog(7)_哔哩哔哩_bilibili task不可综合&#xff0c;function可以综合

力扣第62题 不同路径 c++ 动态规划 dp二维 + dp一维 解法

题目 62. 不同路径 中等 相关标签 数学 动态规划 组合数学 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Fini…