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

数据表 (TABLE)

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

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


MySQL的数据类型

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

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

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

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

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

  1. 数值类型
  2. 字符串类型
  3. 日期时间类型

数值类型

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

整数型(精确值)

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

浮点型(近似值)

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

定点型(精确值)

  • DECIMAL 定点数

字符串类型

  • CHAR
  • VARCHAR
  • BINARY
  • VARBINARY
  • BLOB
  • TEXT
  • ENUM
  • SET

日期时间类型

  • TIME
  • DATE
  • DATETIME
  • TIMESTAMP
  • YEAR

约束条件

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

常用约束条件有以下这些

  • UNSIGNED :无符号,值从0开始,无负数
  • ZEROFILL:零填充,当数据的显示长度不够的时候可以使用前补0的效果填充至指定长度,字段会自动添加UNSIGNED
  • NOT NULL:非空约束,表示该字段的值不能为空
  • DEFAULT:表示如果插入数据时没有给该字段赋值,那么就使用默认值
  • PRIMARY KEY:主键约束,表示唯一标识,不能为空,且一个表只能有一个主键。一般都是用来约束id
  • AUTO_INCREMENT:自增长,只能用于数值列,而且配合索引使用,默认起始值从1开始,每次增长1
  • UNIQUE 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数据类型详解


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

MySQL中创建表的基础教程可以参考,这个教程主要介绍了如何在MySQL中创建表,是MySQL入门学习中的基础知识。在MySQL中,表是用来存储和组织数据的一种结构。通过创建表,我们可以按照规定的方式存储和管理不同类型的数据。在创建表的过程中,我们需要定义表的名称以及表中的各个字段和其对应的数据类型。然后,通过执行相应的SQL语句,就可以在MySQL数据库中成功创建表。这个教程会详细介绍创建表的步骤和常用的语法。如果您想学习MySQL数据库基础知识,这个教程是一个很好的入门指南。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [详解在MySQL中创建表的教程](https://download.csdn.net/download/weixin_38632046/12830853)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [mysql 基础教程之库与表的详解](https://download.csdn.net/download/weixin_38617335/13703638)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XeonYu

码字不易,鼓励随意。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值