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

二   关键字和约束

掌握: 关键字的'含义'和在创table语句中的'位置'

①  COMMENT  

说明: '字段'或列的'注释'是用属性 'comment' 来添加,目的是为了增强'可读性'

查看'已有表'的'所有字段的注释':  show full columns from comment_ceshi;

/*
表的注释: 了解即可
*/

create table comment_tale( 
    field_name int comment '字段的注释' 
)comment='表的注释';

查看'表'的注释: show  create  table  comment_table; 

②  NOT  NULL  非空约束

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

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

NULL 和空值的区别

MYSQL中的NULL值问题

重点: 查询NULL值,必须使用'IS NULL'

③  UNIQUE     唯一约束

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

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

特点:

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

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

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

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

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

/* 
定义表的唯一约束 '多列联合'
*/

CREATE TABLE Employees (
   employee_name CHAR(50) NOT NULL,
   social_num INTEGER,
   phone INTEGER,
   UNIQUE (employee_name, social_num)
   //  使用CONSTRAINT语法定义唯一约束(可指定约束名)
   //  CONSTRAINT name_num UNIQUE (employee_name, social_num)
);

④   PRIMARY KEY   主键约束  

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

特点:

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

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

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

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

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

⑤  AUTO_INCREMENT  自增长约束

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

特点:

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

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

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

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

默认'等价':IDENTITY(1,1)

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

⑥   DEFAULT  默认值约束

说明: 给某个'字段/某列'指定'默认值'

效果: 一旦设置默认值,在'插入数据'时,如果此字段'没有显式赋值',则赋值为'默认值'

细节: 默认值约束一般'不在唯一键'和'主键'列上加

⑦   FOREIGN KEY   外键

限定'某个表'的'某个字段'的'引用完整性'

特点: 

 1、'从表'的'外键列',必须'引用/参考'主表的主键'或'唯一约束的列

 2、在创建'外键约束'时,如果'不'给外键'约束命名',默认名'不是列名',而是'自动'产生一个外键名

 例如: student_ibfk_1,也可以指定'外键约束名' --> "推荐"

 3、创建'CREATE'表时就指定外键约束的话,先创建'主'表,再创建'从'表

 4、删表时,先删'从表'或'先删除外键约束',再删除主表

 5、从表的外键列与主表被参照的列名字可以'不相同',但是'数据类型必须一样',逻辑意义一致

 6、在'从表'中指定外键约束,并且一个表可以建立多个外键约束

 7、当创建'外键约束'时,系统默认会在'所在的列上'建立对应的'普通'索引

 特点: '索引名'是外键的约束名,删除外键约束后,必须'手动删除'对应的索引

说明: 关于该'外键约束',到'级联查询'的时候才讲解

⑧   遗留

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

正则、glob

创建表的深入探讨 

sql 语句 和'交互式'工具 --> navicat

mysql的备份和恢复 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习MySQL数据类型的步骤如下: 1. 了解基本数据类型MySQL提供了多种基本数据类型,如整数类型、浮点数类型、字符类型、日期与时间类型等。首先要学习这些基本数据类型的特点、存储范围和使用方法。 2. 理解数据类型的分类:MySQL数据类型可以根据存储需求和用途进行分类。学习这些分类有助于理解每种数据类型的用途和适用场景。常见的分类包括数值型、字符型、日期与时间型、布尔型、枚举型与集合型等。 3. 研究每种数据类型的详细介绍:针对每种数据类型,学习其具体的语法、用法和特点。了解每种数据类型的参数和约束条件,以及它们在数据库设计中的应用。 4. 实践数据类型的使用:通过实际的案例和练习,运用不同的数据类型来创建表、插入数据和查询数据。尝试使用不同的数据类型进行条件筛选、排序和聚合操作,以加深对数据类型的理解。 5. 深入学习高级数据类型:除了基本数据类型外,MySQL还提供了高级数据类型,如JSON类型和空间数据类型。如果有需要,可以进一步学习和研究这些高级数据类型,并尝试应用到实际项目中。 6. 学习数据类型的选择和优化:在实际应用中,选择合适的数据类型对于数据库设计和性能优化非常重要。学习如何根据数据的特点和需求选择合适的数据类型,并了解如何优化和调整数据类型以提高数据库性能。 7. 深入研究MySQL官方文档:MySQL官方文档是学习和参考的重要资源,其中包含了详细的数据类型列表、使用说明和示例。阅读官方文档可以帮助你更全面地了解MySQL数据类型的细节和最佳实践。 通过以上步骤,你将逐渐掌握MySQL数据类型的知识和应用技巧。同时,不断实践和探索,将有助于加深对数据类型的理解并提升数据库设计和开发的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值