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

server/2024/12/22 14:23:25/

一   数据类型

讲解'主要'的数据类型,不面面俱到,后续'遇到具体问题'再'查询'补充扩展: 知识点的'深度和广度'以工作为'导向'

①  int  float

M : 表示'显示宽度',M的取值范围是(0, 255)例如: int(5),当数据宽度'小于5位'的时候在数字前面需要用'字符填满'宽度说明: 1、整型数据类型可以在'定义表结构时'指定所需要的'显示'宽度2、如果'不指定',则系统为每一种类型指定'默'认的宽度值最佳实践: 整数数据类型'不推荐'使用显示宽度属性

②  char、varchar

char(n)    固定长度,最多255个字符     --> 2^8varchar(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

http://www.ppmy.cn/server/9711.html

相关文章

【从浅学到熟知Linux】进程间通信之匿名管道方式(进程间通信方式汇总、匿名管道的创建、匿名管道实现进程池详解)

&#x1f3e0;关于专栏&#xff1a;Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程等内容。 &#x1f3af;每天努力一点点&#xff0c;技术变化看得见 文章目录 进程间通信介绍如何实现进程间通信进程间通信分类 管道通信方式什么是管道匿名管道pipe匿名管道读写规则管…

实验2 NFS部署和配置

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

Pikachu靶场通关教程

一、暴力破解 1、基于表单的暴力破解 账号:admin 密码&#xff1a;123456 爆破代码 #coding:utf-8 import requests import reurl http://192.168.116.136/06/vul/burteforce/bf_form.phpheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537…

「GO基础」GO程序组成要素

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

05 JavaScript学习:语法

JavaScript 是一种动态类型的脚本语言&#xff0c;广泛用于网页开发和构建交互式网页。JavaScript 的语法相对简单&#xff0c;但功能强大&#xff0c;它可以在客户端执行&#xff0c;并与HTML和CSS一起构建交互式的网页。 JavaScript 字面量 在 JavaScript 中&#xff0c;字…

基于SkyEye运行Qt:著名应用程序开发框架

Qt是一个著名的跨平台的C图形用户界面应用程序开发框架&#xff0c;目前包括Qt Creator、Qt Designer等等快速开发工具&#xff0c;还支持2D/3D图形渲染、OpenGL&#xff0c;允许真正的组件编程&#xff0c;是与GTK、MFC、OWL、ATL一样的图形界面库。使用Qt开发的软件可以做到一…

为什么选择入行分布式存储

你为什么选择入行分布式存储&#xff1f; 一切都是机缘巧合。 转岗前参与的项目出于各种原因无法继续&#xff0c;在原部门已无立足之处&#xff0c;于是阴差阳错之下&#xff0c;转岗加入了分布式存储的开发团队。按照领导的安排&#xff0c;在原服务SE的指导下&#xff0c;…

用于半监督的图扩散网络 笔记

1 Title Graph Neural Diffusion Networks for Semi-supervised Learning&#xff08;Wei Ye, Zexi Huang, Yunqi Hong, and Ambuj Singh&#xff09;【2022】 2 Conclusion This paper proposes a new graph neural network called GND-Nets (for Graph Neural Diffu…