MySQL数据表的基础知识及表结构的常用操作

您所在的位置:网站首页 数据表关联模型有哪些 MySQL数据表的基础知识及表结构的常用操作

MySQL数据表的基础知识及表结构的常用操作

2024-07-12 15:16| 来源: 网络整理| 查看: 265

数据表 (TABLE)

数据库实际上就是多个表组成的,表中存储着数据。 数据表也是数据库最重要的组成部分之一,我们绝大多数情况下都是在跟表打交道。 例如从表里查找一些数据,删除表中的某些数据,更新表中的某些数据等等。

数据表由行(row)和列(column)组成,是一个二维的网格结构,每个列都是一个字段。 字段由字段名称和字段的数据类型以及一些约束条件组成 表中至少要有一列,可以有多行或0行,表名要唯一

MySQL的数据类型

本章我们先对数据类型有个简单的认识,大概知道有哪几种数据类型即可,详细的数据类型在下一篇博客再来讲解。

跟编程语言一样,数据库也有不同的数据类型,用于存储不同类型的数据。

MySQL支持多种类型的SQL数据类型:数值,日期和时间类型,字符串(字符和字节)类型,空间类型和 JSON数据类型等 数据类型描述使用以下约定:

M 表示整数类型的最大显示宽度。对于浮点和定点类型, M是可以存储的总位数(精度)。对于字符串类型, M是最大长度。允许的最大值M取决于数据类型。D 适用于浮点和定点类型,并指示小数点后面的位数。最大可能值为30,但不应大于 M-2。[ ] 表示类型定义的可选部分。

在MySQL中常用数据类型主要分为以下几类

数值类型字符串类型日期时间类型 数值类型

数值类型分为整数型、浮点型、定点型

整数型(精确值)

TINYINT 非常小的整数SMALLINT 小整数MEDIUMINT 中等大小的整数INT 正常大小的整数BIGINT 大整数

浮点型(近似值)

FLOAT 一个小的(单精度)浮点数DOUBLE 正常大小(双精度)浮点数

定点型(精确值)

DECIMAL 定点数 字符串类型 CHARVARCHARBINARYVARBINARYBLOBTEXTENUMSET 日期时间类型 TIMEDATEDATETIMETIMESTAMPYEAR 约束条件

约束条件就是在给字段加一些约束,使该字段存储的值更加符合我们的预期。

常用约束条件有以下这些

UNSIGNED :无符号,值从0开始,无负数ZEROFILL:零填充,当数据的显示长度不够的时候可以使用前补0的效果填充至指定长度,字段会自动添加UNSIGNEDNOT NULL:非空约束,表示该字段的值不能为空DEFAULT:表示如果插入数据时没有给该字段赋值,那么就使用默认值PRIMARY KEY:主键约束,表示唯一标识,不能为空,且一个表只能有一个主键。一般都是用来约束idAUTO_INCREMENT:自增长,只能用于数值列,而且配合索引使用,默认起始值从1开始,每次增长1UNIQUE KEY:唯一值,表示该字段下的值不能重复,null除外。比如身份证号是一人一号的,一般都会用这个进行约束FOREIGN KEY:外键约束,目的是为了保证数据的完成性和唯一性,以及实现一对一或一对多关系 数据表的相关操作 (DML)

DML(Data Manipulation Language):数据操作语言(用于插入(增Insert)、删除(删 Delete)、更新(改 Update)数据),操作对象是表里的数据

首先我们要先进入数据库,才能操作表

USE dbName;

创建表

建表语句,默认的存储引擎是InnoDB,8.x版本的MySQL的默认编码方式是utf8

CREATE TABLE [IF NOT EXISTS] tabName( 字段名称 字段类型 [约束条件], 字段名称 字段类型 [约束条件], ... )ENGINE=存储引擎 CHARSET=编码方式;

下面我们以创建一个简单的用户表为例 一般用户表中都会有用户的账号(account)、密码(pwd)、姓名(name)、年龄(age)、性别(gender)等数据

账号肯定是唯一值且不能为空,密码肯定也不能为空,姓名可以重复,年龄肯定是大于0的数,性别有男,女,或保密

下面我们来创建表

#创建一个user表 CREATE TABLE IF NOT EXISTS user( id INT, account VARCHAR(50) NOT NULL, name VARCHAR(20) NOT NULL, age TINYINT UNSIGNED, gender ENUM('男','女','保密') DEFAULT '保密' );

这样一个简单的user表就创建完毕了

查看当前数据库下的所有表

SHOW TABLES;

这里写图片描述

查看表结构 下面三种方法都可以

#查看数据库下的所有表 DESC user; DESCRIBE user; SHOW COLUMNS FROM user;

这里写图片描述

删除表

#删除表 DROP TABLE user; 表结构相关操作

添加字段

FIRST:放到表的首位 AFTER:放到某个字段后面

ALTER TABLE tabName ADD 字段名称 字段属性 [完整性约束条件] [FIRST|AFTER 字段名称]

示例

#添加字段 ALTER TABLE user ADD addr VARCHAR(50);

这里写图片描述

删除字段

ALTER TABLE tabName DROP 字段名称

示例:

#删除字段 ALTER TABLE user DROP addr;

这里写图片描述 给字段添加默认值

ALTER TABLE tabName ALTER 字段名称 SET DEFAULT 默认值;

示例:

#给字段添加默认值 ALTER TABLE user ALTER name SET DEFAULT '喻志强';

这里写图片描述

删除默认值

ALTER TABLE tabName ALTER 字段名称 DROP DEFAULT

示例

#删除默认值 ALTER TABLE user ALTER name DROP DEFAULT;

这里写图片描述

修改字段类型和字段属性(MODIFY)

ALTER TABLE tabName MODIFY 字段名称 字段类型 [字段属性] [FIRST | AFTER 字段名称]

示例:

#修改字段的字段类型和字段属性 ALTER TABLE user MODIFY id INT AUTO_INCREMENT KEY;

这里写图片描述

修改字段名称、字段类型、字段属性(CHANGE)

跟MODIFY相比CHANGE可以修改字段的名称

ALTER TABLE tabName CHANGE 原字段名称 新字段名称 字段类型 字段属性 [FIRST | AFTER 字段名称]

示例:

#修改字段名称,字段类型,字段属性 ALTER TABLE user CHANGE name username CHAR(20) NOT NULL FIRST;

这里写图片描述

添加主键

ALTER TABLE tabName ADD PRIMARY KEY(字段名称)

示例:

#添加主键 ALTER TABLE user ADD PRIMARY KEY(id);

这里写图片描述

删除主键

ALTER TABLE tableName DROP PRIMARY KEY;

示例:

#删除主键(需要注意的是改字段的约束不能使自增长 否则无法删除) ALTER TABLE user DROP PRIMARY KEY;

添加唯一

默认INDEX(索引)的名称跟字段名一致。

ALTER TABLE tableName ADD UNIQUE KEY|INDEX [indeName] (字段名称)

示例:

#添加唯一 ALTER TABLE user ADD UNIQUE KEY(account);#添加唯一,默认index的名称是字段名称 ALTER TABLE user ADD UNIQUE KEY uni_account(account);#添加唯一 指定account字段的索引名称为uni_account ALTER TABLE user ADD UNIQUE INDEX uni_account(account);#添加唯一 指定account字段的索引名称为uni_account

这里写图片描述

删除唯一约束

ALTER TABLE tabName DROP index_name;

示例

#删除唯一 ALTER TABLE user DROP INDEX account;

这里写图片描述

修改表名称

ALTER TABLE tabName RENAME [TO|AS] newTabName 或者 RENAME TABLE tabName TO newTabName;

示例:

#修改表名称 RENAME TABLE user TO user1;

这里写图片描述 以上就是表的常用操作

下一篇:

MySQL数据类型详解

如果你觉得本文对你有帮助,麻烦动动手指顶一下,可以帮助到更多的开发者,如果文中有什么错误的地方,还望指正,转载请注明转自喻志强的博客 ,谢谢!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3