热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL5.7学习指南:SQLyog中的主键、列属性和数据类型

本文介绍了MySQL5.7中主键(PrimaryKey)和自增(Auto-Increment)的概念,以及如何在SQLyog中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。

在 MySQL 5.7 中,主键(Primary Key)和自增(Auto-Increment)是数据库设计中非常重要的概念。本文将详细介绍这些概念,并结合 SQLyog 工具进行实际操作。

一、主键(Primary Key)与自增(Auto-Increment)

1. 什么是主键?

主键是一个表中的唯一标识符,用于确保每一行数据的唯一性。当创建一个表时,可以将某个字段设置为主键。例如,在学生表中,学号是每个学生的唯一标识,因此可以将学号设置为主键。

2. 主键的作用

主键的主要作用是保证数据的唯一性和完整性,使得我们可以安全地更改或删除表中指定的某一行。MySQL 会将主键单独存储为一个索引,以便于后续的高效查询。

3. 主键的设计原则

  • 唯一性:主键值必须唯一,不允许重复。
  • 引用性:主键可以被其他表作为外键引用。
  • 单一性:一个表中只能有一个主键。
  • 非空性:主键值不能为空。

4. 联合主键

联合主键是指由多个字段组合而成的主键。例如,在采购手机的表中,品牌商、版本和采购配置三个字段组合在一起可以唯一标识一个手机。

5. 自增(Auto-Increment)

自增是指当插入数据时,MySQL 自动生成一个唯一的 ID。通常情况下,我们会将主键字段设置为自增,以简化数据插入操作。自增的起点默认为 1,如果表中有数据,则从上一个最大值开始。过号作废,不会重复。

二、数据类型

在 MySQL 中,向表添加一列时,需要指定列的数据类型。MySQL 的数据类型大致可以分为以下几类:

分类 典型 更多
整数 int(4字节) tinyint,smallint,int,bigint,...
字符串 varchar(可变长度字符串,使用时指定最大长度,如:5,19,21,...) char(固定长度字符串32),varchar,...
浮点数 double(8字节) double,float(4字节),...
日期时间 datetime(日期时间,如:2018-6-7 14:07:54) date(日期),time(时间),datetime,timestamp,...
大块数据 text / blob(二进制大对象) tinytext,text(65KB),mediumtext(16MB),longtext(4GB),blob(存储大段字节数据),...
三、列的属性

1. 列名的命名规范

推荐的命名规范包括:

  • 不要使用 SQL 关键词,如:database,table,...
  • 使用有意义的单词或简写,如:realName,storePath,...
  • 第一个单词小写,与 Java 兼容,减少麻烦。

2. 列的属性

a. 长度(Length)

  • 对于 varchar / text 字段,需要设置最大长度。
  • 不区分中英文,按字符数统计。
  • 太长的字符串不适合用 varchar 存储(65K),varchar(512) 和 varchar(1024) 实质没有差别。
  • 对于其他类型,不需要设置长度(意义不大),例如,int(4) 表示最小显示宽度为 4,不足时凑空格或 0(需勾选 ZeroFill 属性)。

b. 非空(Not NULL)

  • 空值 NULL:指这一列的值尚未设置。
  • 当一列设置为“非空”时,表示该列不允许空值。

c. 默认值(Default Value)

默认值是指当添加一行时,若某列的值未设置,则自动填一个默认值。


推荐阅读
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • javax.mail.search.BodyTerm.matchPart()方法的使用及代码示例 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • JVM钩子函数的应用场景详解
    本文详细介绍了JVM钩子函数的多种应用场景,包括正常关闭、异常关闭和强制关闭。通过具体示例和代码演示,帮助读者更好地理解和应用这一机制。适合对Java编程和JVM有一定基础的开发者阅读。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 多线程基础概览
    本文探讨了多线程的起源及其在现代编程中的重要性。线程的引入是为了增强进程的稳定性,确保一个进程的崩溃不会影响其他进程。而进程的存在则是为了保障操作系统的稳定运行,防止单一应用程序的错误导致整个系统的崩溃。线程作为进程的逻辑单元,多个线程共享同一CPU,需要合理调度以避免资源竞争。 ... [详细]
  • 本文详细介绍了如何在 Android 应用中获取系统的版本号,包括具体的应用场景和实现步骤。 ... [详细]
  • 如何在MySQL中选择合适的表空间以优化性能和管理效率
    在MySQL中,合理选择表空间对于提升表的管理和访问性能至关重要。表空间作为MySQL中用于组织和管理数据的一种机制,能够显著影响数据库的运行效率和维护便利性。通过科学地配置和使用表空间,可以优化存储结构,提高查询速度,简化数据管理流程,从而全面提升系统的整体性能。 ... [详细]
  • 利用 Spring BeanUtils 实现 JavaBean 的深度克隆与属性复制 ... [详细]
author-avatar
北京超凡传媒
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有