数据表的基本操作.

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数据库-数据表(上)的更多相关文章

  1. 第二百七十七节,MySQL数据库-数据表、以及列的增删改查

    MySQL数据库-数据表.以及列的增删改查 1.创建一个表 CREATE(创建) TABLE(表) ENGINE(引擎) ENGINE=INNODB(引擎)还有很多类引擎,这里只是简单的提一下INNO ...

  2. MySQL数据库 | 数据表-查询命令详细记录

    本篇专门记录数据库增删改查中最常用.花招最多的 查. [文章结构] 一.数据的准备 二.基本的查询功能 三.条件查询 四.查询排序 五.聚合函数 六.分组查询 七.分页查询 八.连接查询 九.子查询 ...

  3. MySQL数据库 | 数据表的增删改查

    MySQL数据的增删改查(crud) 本文结构 一.增加 create 二.修改 update 三.查询 retrieve(简单查询,下篇详细展开) 四.删除 delete 首先,创建简单的class ...

  4. 如何通过PhpMyAdmin批量删除MYSQL数据库数据表

    使用这个方法前,强烈建议先备份整个数据库.至于怎么备份?你不会么?在本文下方留言吧. 具体方法:复制下面的php执行语句,保存为sql.php文件(注意配置数据库名称.密码.数据表头),通过ftp上传 ...

  5. MySQL数据库-数据表、以及列的增删改查

    1.创建一个表 CREATE(创建) TABLE(表) ENGINE(引擎) ENGINE=INNODB(引擎)还有很多类引擎,这里只是简单的提一下INNODB引擎,INNODB引擎支持事务(回滚), ...

  6. MySQL数据库-数据表(下)

    分析:给 reader 表添加数据. INSERT INTO:插入数据,插入数据的时候会检查主键或者唯一索引,如果出现重复就会报错: 语法:INSERT INTO table_name VALUES ...

  7. Kettle 实现mysql数据库不同表之间数据同步——实验过程

    下面是试验的主要步骤: 在上一篇文章中LZ已经介绍了,实验的环境和实验目的. 在本篇文章中主要介绍侧重于对Kettle ETL的相应使用方法, 在这里LZ需要说明一下,LZ成为了避免涉及索引和表连接等 ...

  8. Ubuntu上更改MySQL数据库数据存储目录

    之前写过一篇博客"MySQL更改数据库数据存储目录",当时的测试环境是RHEL和CentOS,谁想最近在Ubuntu下面更改MySQL数据库数据存储目录时遇到了之前未遇到的问题,之 ...

  9. Vc数据库编程基础MySql数据库的表增删改查数据

    Vc数据库编程基础MySql数据库的表增删改查数据 一丶表操作命令 1.查看表中所有数据 select * from 表名 2.为表中所有的字段添加数据 insert into 表名( 字段1,字段2 ...

随机推荐

  1. Web || Html_Css_JS

    第三阶段课程介绍: web前端 l 数据库 l SpringBoot Web前端-HTML l HTML作用: 负责搭建页面结构和内容 (盖房子) l 学习HTML主要学习的就是有哪些标签 文本相关标 ...

  2. 如何在CentOS上找出逐渐耗尽磁盘空间的目录和文件

    起因 随着系统运行,CentOS空间不断减少,对此非常焦虑,到底磁盘空间被哪些新增文件占用了呢? 分析过程,主要使用du命令,逐层找出消耗空间的目录 1.在根目录下检索一下文件的占用情况,执行du命令 ...

  3. java的访问权限protected和default

    protected和default的区别 第一点:在同一个包中,protected和default表现一致,即,当main方法所在的类和使用了protected与default修饰属性.方法的类在同一 ...

  4. 推荐系统-协同过滤在Spark中的实现

    作者:vivo 互联网服务器团队-Tang Shutao 现如今推荐无处不在,例如抖音.淘宝.京东App均能见到推荐系统的身影,其背后涉及许多的技术.本文以经典的协同过滤为切入点,重点介绍了被工业界广 ...

  5. WPF 实现用户头像选择器

    制作一个用户头像选择器仿 WeGame 制作一个用户头像选择Canvas为父控件所实现,展示图片使用Image,Path当作上方的蒙版; Canvas:主要用途方便移动Image,设置ClipToBo ...

  6. 字符编码和字符集和编码引出的问题_FileReader读取GBK格式的文件

    字符编码 计算机中鵆的信息都是用二进制数表示的,而我们在屏幕上看到的数字.英文.标点符号.汉子等字符都是二进制数转换之后的结果.按照某种规则,将字符存储到计算机中,称为编码.反之,将存储在计算机中的二 ...

  7. 不同云服务器下,ubuntu下开k3s集群

    首先先感谢老哥的文章:h构建多云环境下的K3S集群,但是我尝试在centos 8.2上面前面一直执行报错 并且安装glibc 2.17时还会报错make版本太低,所以直接放弃centos,投入ubun ...

  8. 干货分享:小技巧大用处之Bean管理类工厂多种实现方式

    前言:最近几个月很忙,都没有时间写文章了,今天周末刚好忙完下班相对早点(20:00下班)就在家把之前想总结的知识点写出来,于是就有了这篇文章.虽无很高深的技术,但小技巧有大用处. 有时我们经常需要将实 ...

  9. nodejs学习总结02

    response对象常用的API #response对象 response  对象类型<http.ServerResponse> response对象常用成员:response.write ...

  10. .NET静态代码织入——肉夹馍(Rougamo) 发布1.1.0

    肉夹馍(https://github.com/inversionhourglass/Rougamo)通过静态代码织入方式实现AOP的组件,其主要特点是在编译时完成AOP代码织入,相比动态代理可以减少应 ...