MySQL数据库-数据表(上)

数据表的基本操作.
MySQL 数据库支持多种数据类型,大致可以分为 3 类:数值类型、日期和时间类型、字符串(字符)类型。
(1)数值类型
数值类型用于存储数字型数据,这些类型包括整数类型(TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT),浮点数类型(FLOAT、DOUBLE)和定点数类型(DECIMAL)。
(2)日期和时间类型
用于存储日期和时间的数据类型:
l YEAR:用于存储年份的值,存储格式为YYYY;
l DATE:用于存储日期部分,但没有时间,存储格式为YYYY-MM-DD;
l TIME:用于存储时间部分,但没有日期,存储格式为HH:MM:SS;
l DATETIME:用于存储同时具有日期和时间的值,存储格式为YYYY-MM-DD HH:MM:SS;
l TIMESTAMP:与DATETIME类型相似,用于存储同时具有日期和时间的值,但存储范围较小。
(3)字符串类型
MySQL支持的字符串数据类型包括 CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET等。
各类型占用字节和存储范围不同,常用的是CHAR、VARCHAR这两种类型,都是用于存储较短的字符串;区别是CHAR类型的长度是固定的,VARCHAR类型的长度是可变的。

完整性约束
完整性约束用于确定关系型数据库中数据的准确性和一致性。
(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)
主键与外键-关联性设置

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


在MySQL数据库中使用ALTER TABLE语句修改数据表。常用的修改数据表的操作有修改表名、修改字段数据类型或字段名、增加和删除字段、修改字段的排列位置、更改表的存储引擎、删除表的外键约束等。
常见添加字段的操作一般分为三种情况:在表的最后一列,在表的第一列或者在指定列之后添加。

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字段添加外键。





设置主键约束的关键字为PRIMARY KEY
MySQL数据库-数据表(上)的更多相关文章
- 第二百七十七节,MySQL数据库-数据表、以及列的增删改查
MySQL数据库-数据表.以及列的增删改查 1.创建一个表 CREATE(创建) TABLE(表) ENGINE(引擎) ENGINE=INNODB(引擎)还有很多类引擎,这里只是简单的提一下INNO ...
- MySQL数据库 | 数据表-查询命令详细记录
本篇专门记录数据库增删改查中最常用.花招最多的 查. [文章结构] 一.数据的准备 二.基本的查询功能 三.条件查询 四.查询排序 五.聚合函数 六.分组查询 七.分页查询 八.连接查询 九.子查询 ...
- MySQL数据库 | 数据表的增删改查
MySQL数据的增删改查(crud) 本文结构 一.增加 create 二.修改 update 三.查询 retrieve(简单查询,下篇详细展开) 四.删除 delete 首先,创建简单的class ...
- 如何通过PhpMyAdmin批量删除MYSQL数据库数据表
使用这个方法前,强烈建议先备份整个数据库.至于怎么备份?你不会么?在本文下方留言吧. 具体方法:复制下面的php执行语句,保存为sql.php文件(注意配置数据库名称.密码.数据表头),通过ftp上传 ...
- MySQL数据库-数据表、以及列的增删改查
1.创建一个表 CREATE(创建) TABLE(表) ENGINE(引擎) ENGINE=INNODB(引擎)还有很多类引擎,这里只是简单的提一下INNODB引擎,INNODB引擎支持事务(回滚), ...
- MySQL数据库-数据表(下)
分析:给 reader 表添加数据. INSERT INTO:插入数据,插入数据的时候会检查主键或者唯一索引,如果出现重复就会报错: 语法:INSERT INTO table_name VALUES ...
- Kettle 实现mysql数据库不同表之间数据同步——实验过程
下面是试验的主要步骤: 在上一篇文章中LZ已经介绍了,实验的环境和实验目的. 在本篇文章中主要介绍侧重于对Kettle ETL的相应使用方法, 在这里LZ需要说明一下,LZ成为了避免涉及索引和表连接等 ...
- Ubuntu上更改MySQL数据库数据存储目录
之前写过一篇博客"MySQL更改数据库数据存储目录",当时的测试环境是RHEL和CentOS,谁想最近在Ubuntu下面更改MySQL数据库数据存储目录时遇到了之前未遇到的问题,之 ...
- Vc数据库编程基础MySql数据库的表增删改查数据
Vc数据库编程基础MySql数据库的表增删改查数据 一丶表操作命令 1.查看表中所有数据 select * from 表名 2.为表中所有的字段添加数据 insert into 表名( 字段1,字段2 ...
随机推荐
- Windows快捷安装应用方法(此处以Virtualbox为例)
1.执行已下载的virtualbox的安装exe文件,使用pywinauto模拟点击Windows安装的对应控件 1.1.启动exe文件 start *.exe 1.2.使用pywinauto(也适用 ...
- 题解 P2657 【[SCOI2009] windy 数】
数位 dp. // 数位 dp 其实是爆搜加记忆化 #include<iostream> #include<cstring> #include<cmath> usi ...
- 运筹帷幄决胜千里,Python3.10原生协程asyncio工业级真实协程异步消费任务调度实践
我们一直都相信这样一种说法:协程是比多线程更高效的一种并发工作方式,它完全由程序本身所控制,也就是在用户态执行,协程避免了像线程切换那样产生的上下文切换,在性能方面得到了很大的提升.毫无疑问,这是颠扑 ...
- AtCoder Educational DP Contest 总结
前言 感觉都初一升初二了,再做这个题是不是有点太菜了啊-- 里面大概都是些 DP 板子题(确信,题目质量还挺高的,不过不涉及太难的优化(实际上只有最后一题是斜率优化). 不管了,还是写个 blog 来 ...
- 手把手教你 Apache DolphinScheduler 本地开发环境搭建 | 中英文视频教程
点击上方 蓝字关注我们 最近,一些小伙伴反馈对小海豚的本地开发环境搭建过程不太了解,这不就有活跃的贡献者送来新鲜的视频教程!在此感谢@Tianqi-Dotes 的细致讲解 贡献者还贴心地录制了中英文两 ...
- LuoguP1240 诸侯安置
本来是来练组合的,不知怎么又开始水普及DP了 #include <cstdio> #include <iostream> #include <cstring> #i ...
- 在微信小程序中,如何获取 for 循环的 index
微信小程序中,for 循环的 index(索引值)可以用wx:for-index="index"来获取. <view class="item" wx:fo ...
- 记一次twikoo引发的站点重大事故
今天我测试私人博客的时候发现twikoo评论发生了错误,显示评论失败:0,我怀疑是我设置的twikoo安全域名有问题,所以我看了整个lssues,找到了我的解决方法! 1.关于配置安全域名后评论消失的 ...
- Python入门系列(一)安装环境
python是什么 python是一门很受欢迎的语言,除了不能生孩子以外,其它都可以做. 它擅长的领域是脚本工具和科学数据这一块,比如大数据,数据分析什么的. python安装 为了演示和验证教程可用 ...
- KingbaseES R6 集群在线删除standby节点
案例环境: 操作系统: [root@node1 ~]# cat /etc/centos-releaseCentOS Linux release 7.2.1511 (Core) 数据库:tes ...