Mysql基础(二)数据类型和约束

一   数据类型

讲解'主要'的数据类型,不面面俱到,后续'遇到具体问题'再'查询'补充

扩展: 知识点的'深度和广度'以工作为'导向'

①  int  float

M : 表示'显示宽度',M的取值范围是(0, 255)

例如: int(5),当数据宽度'小于5位'的时候在数字前面需要用'字符填满'宽度

说明: 

 1、整型数据类型可以在'定义表结构时'指定所需要的'显示'宽度

 2、如果'不指定',则系统为每一种类型指定'默'认的宽度值

最佳实践: 整数数据类型'不推荐'使用显示宽度属性

②  char、varchar

char(n)    固定长度,最多255个字符     --> 2^8

varchar(n) 固定长度,最多65535个字符   --> 2^16

+++++++++++++++++  char和varchar的'区别'  +++++++++++++++++

1.char(n)  "尾部空格"

 [1]、若'实际'存入字符数'小于n',则以'空格'补于其后,查询之时再将'空格'去掉

 [2]、所以char类型存储的字符串'末尾不能有空格',varchar不限于此。

2.char(n)  '固定'长度

 [1]、char(4)不管是存入几个字符,都将'占用'4个字节                     --> '定长'

 备注: 使用'uuid'作为主键,'那用char'

 [2]、varchar是存入的'实际字符数+1'个字节(n<=255)'或'2个字节(n>255)  --> '不定长'

 备注: varchar多'占'一个字节是字符的'长度'

 说明:所以varchar(4),'存入3个字符'将占用4个字节。 

3.char类型的字符串'检索速度'要比varchar类型的快  --> '查找效率'

③  日期、时间、时间戳

插入时间、更新时间、删除时间、下单时间、入职时间、离职时间

'重点'掌握:DATE、DATETIME、TIMESTAMP

二   关键字和约束

①  COMMENT

说明: '字段'或列的'注释'是用属性 'comment' 来添加

②  NOT  NULL  非空约束

1、限定某个'字段/某列'的'值'不允许为空

备注: 空字符串''不等于NULL,0也'不等于'NULL

NULL 和空值的区别

③  UNIQUE     唯一约束

用来'限制'某个'字段/某列'的值'不能重复'

通俗: UNIQUE 约束可以'防止'两条记录在'某个字段'上出现'重复值'

特点:

 1、同一个表可以有'多个'唯一约束

 2、唯一约束可以是'某一个列的值唯一',也可以'多个列组合'的值唯一

 3、唯一性约束允许'列值为空'

 4、在创建唯一约束的时候,如果'不给'唯一约束命名,就'默认和列名'相同

细节:MySQL会给'唯一约束的列'上'默认'创建一个'唯一索引'

④   PRIMARY KEY   主键约束  

说明: 用来'唯一标识'表中的'一行'记录

特点:

  1、主键约束相当于'唯一约束+非空约束'的组合,主键约束列'不允许重复',也'不允许'出现'空值'

  2、一个表'最多只能 only '有一个主键约束

  3、主键约束对应着表中的'一列或者多列'

  4、如果是'多列组合的复合主键约束',那么这些列'都不允许'为空值,并且'组合的值'不允许重复

  5、当创建'主键约束'时,系统'默认'会在所在的列或列组合上'建立'对应的'主键索引'

⑤  AUTO_INCREMENT  自增长约束

说明: 某个字段的值'自增'

特点:

 1、一个表最多'只能有一个'自增长列

 2、当需要产生'唯一标识符或顺序值'时,可设置自增长

 3、自增长列约束的'列'必须是'键列(主键列,唯一键列)'

 4、自增约束的列的数据类型必须是'整数'类型

set @@global.auto_increment_offset =1;
set @@auto_increment_offset =1

⑥   DEFAULT  默认值约束

⑦   外键约束

⑧   遗留

set 一些变量  --> 变量的含义?

正则、glob

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

双击复制elementui表格某个单元格的数据

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、代码前言 在使用elementui的表格将数据展示出来时,我们想复制该表格区域对应的内容,但因为想复制的列不想太宽而数据太长导致数据省略,无法使用鼠标选择来全部复制到,所以想能不能实现一个双击该内容达到复制效果;…

VSCode 配置 C/C++ 环境

1 安装 VSCode 直接去官网(https://code.visualstudio.com/)下载并安装即可。 2 配置C/C编译环境 方案一 如果是在Windows&#xff0c;需要安装 MingW&#xff0c;可以去官网(https://sourceforge.net/projects/mingw-w64/)下载安装包。 注意安装路径不要出现中文。 打开 w…

声明式事务

文章目录 1.事务分类1.传统方式解决事务2.声明式事务 2.声明式事务案例1.需求分析2.解决方案分析3.数据表创建4.编写GoodsDao.java1.编写配置文件JdbcTemplate_ioc.xml2.单元测试 5.编写GoodsService.java6.配置事务管理器JdbcTemplate_ioc.xml7.进行测试 3.debug事务管理器Dat…

HubSpot流量转化:从访客到客户的转化策略

在当今数字化时代&#xff0c;企业营销获客的关键在于如何将网站访客转化为实际客户。作为HubSpot的合作伙伴&#xff0c;我们深知HubSpot软件在流量转化方面的强大功能。今天运营坛将带领大家深入探讨HubSpot流量转化的核心原理&#xff0c;并介绍如何利用个性化营销策略、构建…

实验2 NFS部署和配置

一、实训目的 1.了解NFS基本概念 2.实现NFS的配置和部署 二、实训准备 1.准备一台能够安装OpenStack的实验用计算机&#xff0c;建议使用VMware虚拟机。 2.该计算机应安装CentOS 7&#xff0c;建议采用CentOS 7.8版本。 3.准备两台虚拟机机&#xff08;客户机和服务器机&…

在React Router 6中使用useRouteLoaderData钩子获取自定义路由信息

在 React Router 6 中怎么像vueRouter一样&#xff0c;可以在配置路由的时候&#xff0c;定义路由的元信息(附加信息)&#xff1f;答案是可以的。稍有些复杂。核心是通过为每个路由定义了一个 loader 函数,用于返回自定义的路由信息&#xff0c;然后通过useRouteLoaderData 钩子…

机器人实验室LAAS-CNRS介绍

一、LAAS-CNRS介绍 1、缩写介绍 同样的&#xff0c;给出英文缩写的全称&#xff0c;以便理解。这里的LAAS&#xff08;Laboratory for Analysis and Architecture of Systems&#xff09;指法国的系统分析与架构实验室&#xff0c;CNRS&#xff08;Centre National de la Rec…

docker容器内ping外网能通,curl不通

排查原因是因为&#xff0c;在服务器上查看ifconfig&#xff0c;显示docker0的mtu是1500&#xff0c;网卡的mtu是1450。 mtu是指在网络通信中能够承载的最大数据包大小。一般情况下&#xff0c;docker的mtu默认为1500字节。 然而&#xff0c;不同的网络设备和网络配置可能会导…

Web3安全性:保护去中心化应用和用户的最佳实践

引言 随着Web3和去中心化应用&#xff08;DApps&#xff09;的迅速发展&#xff0c;我们进入了一个充满无限可能性的新世界。然而&#xff0c;这个数字天堂也伴随着一系列复杂的安全挑战。本文将深入探讨这些挑战&#xff0c;并提供一系列实用的安全建议&#xff0c;帮助你在W…

C++初阶学习第二弹——C++入门(下)

C入门&#xff08;上&#xff09;&#xff1a;C初阶学习第一弹——C入门&#xff08;上&#xff09;-CSDN博客 目录 一、引用 1.1 引用的实质 1.2 引用的用法 二、函数重载 三、内敛函数 四、auto关键字 五、总结 前言&#xff1a; 在上面一章我们已经讲解了C的一些基本…

深度剖析图像处理—边缘检测

什么是边缘检测 边缘检测(Edge Detection)就是提取图像中的边缘点(Edge Point)。边缘点是与周围像素相比灰度值有阶跃变化或屋顶状变化的像素。边缘常存在于目标与背景之间、目标与目标之间、目标与其影子之间。 ​ 在图像处理和图像分析中&#xff0c;经常要用到边缘(Edge)、边…

【学习】对于加密接口、签名接口如何进行性能测试

随着科技的飞速发展&#xff0c;加密接口和签名接口在我们的日常生活中扮演着越来越重要的角色。从在线支付到信息安全&#xff0c;它们始终默默地守护着我们的数字世界。然而&#xff0c;随着应用场景的不断扩展&#xff0c;性能测试变得尤为重要。今天&#xff0c;让我们一起…

单例模式与反射创建对象

单例模式 饿汉式单例模式 单例模式&#xff0c;就是自己先把自己创建了&#xff0c;整个程序都只有这一个实例&#xff0c;别人都没有办法创建实例&#xff0c;因为他的构造方法是private的 一次性把全部都创建了 public class HungryMan {private static int [][] s new …

[lesson48]同名覆盖引发的问题

同名覆盖引发的问题 父子间的赋值兼容 子类对象可以当做父类对象使用(兼容性) 子类对象可以直接赋值给父类对象(<font color>兼容性)子类对象可以直接初始化父类对象父类指针可以直接指向子类对象父类引用可以直接引用子类对象 当使用父类指针(引用)指向子类对象时 子类…

安装zabbix server

目录 1、实验环境 2、yum 安装zabbix server 2.1 解决权限问题和放行流量 2.2 安装zabbix-server 1、实验环境 操作系统rhel8zabbix6.0TLS数据库mysql8.0.30IP地址192.168.81.131时间配置NTP时间服务器同步 2、yum 安装zabbix server 如果通过yum源安装&#xff0c;操作系…

《ElementUI 基础知识》png 图片扩展 icon用法

前言 UI 设计给的切图是 .png 格式。但想与 Element UI icon 用法类似&#xff0c;方案如下。 实现 步骤一 准备图片 步骤二 新建文件&#xff0c;可使用 CSS 预处理语言 styl 或 scss。 stylus 方式 文件 icon.styl /* 定义一个混合 */ cfgIcon(w, h) {display: inlin…

滑动窗口做题思路

什么是滑动窗口&#xff1f;就是一个队列,然后通过在这个队列中的各种移除和添加满足题目需求 题目: 209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int minSubArrayLen(int target, int[] nums) {int left 0;int sum 0;int n nu…

面向对象设计与分析40讲(25)中介模式、代理模式、门面模式、桥接模式、适配器模式

文章目录 门面模式代理模式中介模式 之所以把这几个模式放到一起写&#xff0c;是因为它们的界限比较模糊&#xff0c;结构上没有明显的差别&#xff0c;差别只是语义上。 这几种模式在结构上都类似&#xff1a; 代理将原本A–>C的直接调用变成&#xff1a; A–>B–>…

Java面试八股之marshalling和demarshalling

marshalling和demarshalling Marshalling&#xff08;序列化&#xff09;是将内存中的对象状态转化为适合传输或存储的格式&#xff08;如字节流、JSON、XML&#xff09;&#xff0c;以便进行网络通信、持久化存储或跨平台/语言交互操作。Demarshalling&#xff08;反序列化&a…

spring aop介绍

Spring AOP&#xff08;面向切面编程&#xff09;是一种编程范式&#xff0c;它允许开发者将横切关注点&#xff08;cross-cutting concerns&#xff09;从业务逻辑中分离出来&#xff0c;从而提高代码的模块化。在传统的对象导向编程中&#xff0c;这些横切关注点&#xff0c;…