MySQL数据库-数据表(一)

MySQL数据库-数据表(一)

数据表的基本操作.

MySQL 数据库支持多种数据类型,大致可以分为 3 类:数值类型、日期和时间类型、字符串(字符)类型。

(1)数值类型

数值类型用于存储数字型数据,这些类型包括整数类型(TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT),浮点数类型(FLOAT、DOUBLE)和定点数类型(DECIMAL)。

(2)日期和时间类型

用于存储日期和时间的数据类型:

YEAR:用于存储年份的值,存储格式为YYYY;

DATE:用于存储日期部分,但没有时间,存储格式为YYYY-MM-DD;l TIME:用于存储时间部分,但没有日期,存储格式为HH:MM:SS;

DATETIME:用于存储同时具有日期和时间的值,存储格式为YYYY-MM-DD HH:MM:SS;

TIMESTAMP:与DATETIME类型相似,用于存储同时具有日期和时间的值,但存储范围较小。

(3)字符串类型

MySQL支持的字符串数据类型包括 CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET等。

各类型占用字节和存储范围不同,常用的是CHAR、VARCHAR这两种类型,都是用于存储较短的字符串;区别是CHAR类型的长度是固定的,VARCHAR类型的长度是可变的。

MySQL数据库-数据表(一)

完整性约束

完整性约束用于确定关系型数据库中数据的准确性和一致性。

(1)主健约束

主键是表中一个或多个用于实现记录唯一性的字段。虽然主键通常是由一个字段构成的,但是也可以由多个字段组成。

设置主键约束的关键字为PRIMARY KEY

使用SQL语句可以在定义字段时设置主键约束,也可以在定义好表中所有字段后再设置主键约束.

(2)唯一性约束

唯一性约束要求表中某个字段的值在每条记录中都是唯一的,这一点与主键类似。即使我们对一个字段设置了主键约束,也可以对另一个字段设置唯一性约束,尽量使它不会被当作主键使用。

唯一性约束也有两种设置方法,一种是在定义字段时设置,还有一种是定义好表中所有字段后再设置.

CREATE TABLE goods( name VARCHAR(30) UNIQUE, ); 唯一性约束 UNIQUE KEY(col_name) 第二种

(3)外键约束

外键是子表中的一个字段,用于引用父表中的主键。外键约束是确保表与表之间引用完整性的主要机制。一个被定义为外键的字段用于引用另一个表中的主键。

(4)NOT NULL 约束

设置非空约束的关键字为NOT NULL ,作用是规定字段的值不能为空,用户在向数据表中插入数据时,如果设置非空约束的字段没有指定值,系统就会报错。

(5) 自增约束

设置自增约束的关键字为 AUTO_INCREMENT,语法形式如下:

col_name data_type AUTO_INCREMENT

FOREIGN KEY(book_id)REFERENCES book_sort(sort_id)

FOREIGN KEY(book_id)REFERENCES book(book_id),

FOREIGN KEY(reader_id)REFERENCES reader(reader_id)

主键与外键-关联性设置

MySQL数据库-数据表(一)

数据表命名应遵循以下原则:

  • 长度最好不超过30个字符;
  • 多个单词之间使用下划线”_”分隔,不允许有空格;
  • 不允许为mysql关键字;
  • 不允许与同一数据库中的其它数据表同名。

MySQL数据库-数据表(一)

MySQL数据库-数据表(一)

在MySQL数据库中使用ALTER TABLE语句修改数据表。常用的修改数据表的操作有修改表名、修改字段数据类型或字段名、增加和删除字段、修改字段的排列位置、更改表的存储引擎、删除表的外键约束等。

常见添加字段的操作一般分为三种情况:在表的最后一列,在表的第一列或者在指定列之后添加。

MySQL数据库-数据表(一)

ALTER TABLE reader

最后一列 关键字 ADD

ADD remark varchar(30);

DESC reader;

ALTER TABLE reader

第一列 关键字 ADD-FIRST

ADD remark1 varchar(20) FIRST;

DESC reader;

ALTER TABLE reader DROP remark1;

删除字段(每一列)

MODIFY sort_name varchar(8);

修改数据类型

关键字 MODIFY

RENAME COLUMN return_date TO borrow_date;

修改字段名

关键字 RENAME COLUMN TO

外键处理

如果想要删除book表的外键,就需要删除外键标识。因此,需要先查看book表的外键标识,再删除外键。

SHOW CREATE TABLE book;查看外键标识

ALTER TABLE book

DROP FOREIGN KEY book_ibfk_1;

添加外键

ALTER TABLE return_record

ADD FOREIGN KEY(book_id) REFERENCES book(book_id),

ADD FOREIGN KEY(reader_id) REFERENCES reader(reader_id);

给return_record表的book_id和reader_id字段添加外键。

MySQL数据库-数据表(一)

MySQL数据库-数据表(一)

MySQL数据库-数据表(一)

MySQL数据库-数据表(一)

MySQL数据库-数据表(一)

Original: https://www.cnblogs.com/566adsasdw55/p/HUIZHOU.html
Author: 星空丽影
Title: MySQL数据库-数据表(一)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/643386/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 为什么 C# 访问 null 字段会抛异常?

    一:背景 1. 一个有趣的话题 最近在看 硬件异常 相关知识,发现一个有意思的空引用异常问题…

    技术杂谈 2023年5月31日
    0101
  • 电商WMS介绍

    其他竞品 今天先到这儿,希望对云原生,技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管管,团队建设 有参考作用 , 您可能感兴趣的文章: 如有想了解更多软…

    技术杂谈 2023年6月1日
    096
  • Coder解压探索===冥想补蓝v.1.0

    这是一篇是我自己在探索冥想术的过程中,有了一些浅薄的收获,所以写出来记录与分享。 我不太记得最早是因为什么原因去学习冥想,一开始对我而言,这个词带有很多成见,诸如”老僧…

    技术杂谈 2023年6月21日
    094
  • 23种设计模式之命令模式和策略模式的区别

    命令模式和 策略模式确实很相似,只是命令模式多了一个接收者(Receiver)角色。它们虽然同为行为类模式,但是两者的区别还是很明显的。策略模式的意图是封装算法,它认为&#8221…

    技术杂谈 2023年7月24日
    078
  • 17GDB使用符号表调试release程序

    生成debug版本,strip出release版本发给客户:strip -g program_debug -o program_release 然后通过DEBUG版本进行调试rel…

    技术杂谈 2023年6月1日
    071
  • jvm的简介

    什么是jvm? java虚拟机就是二进制字节码的运行环境。我们可以把jvm看做是运行在不同系统上的一个软件应用的计算机,就比如说我们要打开图片,就得用看图软件,或者我们要对文件进行…

    技术杂谈 2023年7月11日
    096
  • 数据大屏,仅仅是数据展示吗?

    数据大屏,仅仅是数据展示吗? 大数据时代,各行各业对数据价值的重视程度与日俱增。要想真正把数据的价值发挥出来,就需要对数据进行采集、加工、分析,最终以数据可视化的方式来展现数据分布…

    技术杂谈 2023年5月31日
    0116
  • 计算机中内存、cache和寄存器之间的关系及区别

    寄存器是中央处理器内的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。…

    技术杂谈 2023年7月23日
    068
  • 如何正确的中断线程?你的姿势是否正确

    Java停止线程的逻辑(协同、通知) 在Java程序中,我们想要停止一个线程可以通过interrupt方法进行停止。但是当我们调用interrupt方法之后,它可能并不会立刻就会停…

    技术杂谈 2023年7月11日
    079
  • 异构计算技术分析

    异构计算技术分析 参考文献链接 https://mp.weixin.qq.com/s/xW_Y0JBKK3d42IZvHA9CrQ https://mp.weixin.qq.com…

    技术杂谈 2023年5月31日
    0118
  • Java案例——数组元素的移动及换位

    需求一:给出一个固定数组int[] array = {1, 3, 6, 8, 7, 9, 4, 10},要求将某一元素放到某一元素后,例如将1放到6后,输出结果为array = {…

    技术杂谈 2023年7月24日
    069
  • Uncaught TypeError: document.getElementsById is not a function

    今天博主终于开始攻关javascript(俗称js)了,不过要注意了,它和java可是一丁点关系都没有,就像老婆饼和老婆一样。 下面就让我们来讨论一下博主这次犯下的低级错误吧 一、…

    技术杂谈 2023年7月11日
    057
  • Java线程安全与锁

    Java 线程安全 与 锁 多线程内存模型 线程私有栈内存 每个线程 私有的内存区域 进程公有堆内存 同一个进程 共有的内存区域 为什么会有线程安全问题? 多个线程同时具有对同一资…

    技术杂谈 2023年7月24日
    073
  • 只开启一个程序,如果第二次打开则自动将第一个程序显示到桌面

    using System;using System.Collections.Generic;using System.Windows.Forms;using System.Runt…

    技术杂谈 2023年6月1日
    0103
  • C#实现 word、pdf、ppt 转为图片

    office word文档、pdf文档、powerpoint幻灯片是非常常用的文档类型,在现实中经常有需求需要将它们转换成图片 — 即将word、pdf、ppt文档的每…

    技术杂谈 2023年6月1日
    0105
  • goreplay 原理 转

    GOREPLAY是一个网络流量转发的应用,之前的名字叫GOR,GITHUB上的作者有介绍,更准确说应该是HTTP流量转发,作者的目标应该是WEB型应用在内网的转发,因为HTTP是一…

    技术杂谈 2023年5月30日
    089
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球