mysql之数据类型、建表以及约束

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 1)添加表外键: ALTER TABLE 表名 ADD FOREIGN KEY(外键名称) REFERENCES 主表名称(主键名称); 2)删除表外键: ALTER TABLE 表名 DROP FOREIGN KEY 约束名; 3)新增主键: ALTER TABLE 表名 ADD PRIMARY KEY(主键名称); 4)删除主键:主键只有一个直接删除即可 ALTER TABLE 表名 DROP PRIMARY KEY; 5)新增唯一约束: ALTER TABLE 表名 ADD UNIQUE(列名称1[,列名称2,..]); 6)删除唯一约束:其实就是

一、数据类型

MySQL中定义数据字段的类型对你数据库的优化是非常重要的。
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
1)字符类型:char  varchar  text  blob
char:定长
varchar:可变长度

2)数值类型:int  bigint  float decimal
int: int/integer
bigint: long/BigInteger
float: 成绩,不适合存储货币类型
decimal: 适用于存储货币类型

3)日期类型:date  time  datetime  timestamp
date: yyyy/MM/dd
time: HH/mm/ss
datetime: yyyy/MM/dd/HH/mm/ss
timestamp: 

1970-01-01 

二、建表&约束

1.约束

1.1 主键约束(PRIMARY KEY)

主键约束:唯一、不重复、不为空;每个表都应该有一个主键,并且每一个表只能有一个主键。

语法:CREATE TABLE 表名称(
    列名称 数据类型 Primary Key,
    ...
);



1.2 外键约束(FOREIGN KEY)  拿来主义

外键约束:外键创建在从表(副表)中,从表中的FOREIGN KEY指向主表中的PRIMARY KEY。

主表:CREATE TABLE 表名称(
    列名称 数据类型 Primary Key,
    ...
);    

从表:CREATE TABLE 表名称(
    ...
    外键名称 数据类型,
    FOREIGN KEY(外键名称) REFERENCES 主表名称(主键名称),
    ...
);

1.3 非空值约束(NOT NULL)

非空值约束:用于确保当前列的值不为空值,非空约束只能出现在表对象的列上。

语法:CREATE TABLE 表名称(
    列名称 数据类型 NOT NULL,
    ...
);    

1.4 唯一约束(UNIQUE)

唯一约束:指定TABLE的列或列组合不能重复,保证数据的唯一性。

语法:CREATE TABLE 表名称(
    列名称1 数据类型 NOT NULL,
    列名称2 数据类型,
    列名称3 数据类型,
    unique(列名称1[,列名称2,...,列名称N])
);    

1.5 默认值约束(DEFAULT)

默认值约束:指定列的默认值。

语法:CREATE TABLE 表名称(
    列名称1 数据类型 DEFAULT '默认值',
    列名称2 数据类型,
    列名称3 数据类型,
    ...
);   

例如:
1) 性别:sex char(1) default '男'
2) 日期:createdate timestamp default current_timestamp

Mysql日期转换格式表.png

2.建表

2.1 基本语法:

CREATE TABLE [IF NOT EXISTS] 表名称(
   列名称1 数据类型,
   列名称2 数据类型,
   列名称3 数据类型,
   ...      
);

2.2 修改表结构(增删改表列字段)

注:ALTER TABLE 语句用于在已有的表中添加、修改或删除列。

1)新增语法:alter table 表名称 add column 列名 数据类型;
2)删除语法:alter table 表名称 drop column 列名;
3)修改语法:alter table 表名称 modify column 列名 数据类型;     

2.3 删除表

语法:drop table 表名称;

补充说明:

1)添加表外键:
ALTER TABLE 表名 ADD FOREIGN KEY(外键名称) REFERENCES 主表名称(主键名称);
2)删除表外键:
ALTER TABLE 表名 DROP FOREIGN KEY 约束名;
3)新增主键:
ALTER TABLE 表名 ADD PRIMARY KEY(主键名称);
4)删除主键:主键只有一个直接删除即可
ALTER TABLE 表名 DROP PRIMARY KEY;
5)新增唯一约束:
ALTER TABLE 表名 ADD UNIQUE(列名称1[,列名称2,..]);
6)删除唯一约束:其实就是删除指定的唯一约束的索引名称
ALTER TABLE 表名 DROP INDEX 唯一约束缩影名称;

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
存储 关系型数据库 MySQL
MySQL数据库基础:约束
约束是对数据库表中字段施加的规则,确保数据的正确性、有效性和完整性。主要分为非空约束、唯一约束、默认约束、主键约束和外键约束。非空约束禁止字段值为null;唯一约束确保字段值唯一,允许null值重复;默认约束设定默认值;主键约束结合非空与唯一约束,并可设为自增型;外键约束则通过关联其他表的主键,保证数据一致性。检查约束确保字段值满足特定条件。
13 1
|
24天前
|
关系型数据库 MySQL Linux
数据类型和运算符(MySQL服务器的安装,MySQL客户端,数据类型,运算符,MySQL的语法规范)
无论是对于初学者还是有经验的开发者,了解MySQL的安装、客户端使用、数据类型、运算符和语法规范都是至关重要的。这不仅有助于高效地管理和查询数据,而且对于设计和实现数据库解决方案来说是基础工作。通过深入学习和实践这些知识,您可以更好地发挥MySQL数据库的强大功能。
16 2
|
1月前
|
数据采集 关系型数据库 MySQL
在 MySQL 中使用约束
【8月更文挑战第11天】
31 0
在 MySQL 中使用约束
|
11天前
|
存储 关系型数据库 MySQL
MySQL 中的 BLOB 数据类型深入解析
【8月更文挑战第31天】
57 0
|
11天前
|
存储 关系型数据库 MySQL
|
11天前
|
存储 XML 关系型数据库
深入理解MySQL中的BLOB和TEXT数据类型
【8月更文挑战第31天】
68 0
|
11天前
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
70 0
|
2月前
|
存储 SQL 关系型数据库
MySQL设计规约问题之存储状态、性别等信息时,应该使用哪种数据类型
MySQL设计规约问题之存储状态、性别等信息时,应该使用哪种数据类型
|
20天前
|
SQL 关系型数据库 MySQL
【揭秘】MySQL binlog日志与GTID:如何让数据库备份恢复变得轻松简单?
【8月更文挑战第22天】MySQL的binlog日志记录数据变更,用于恢复、复制和点恢复;GTID为每笔事务分配唯一ID,简化复制和恢复流程。开启binlog和GTID后,可通过`mysqldump`进行逻辑备份,包含binlog位置信息,或用`xtrabackup`做物理备份。恢复时,使用`mysql`命令执行备份文件,或通过`innobackupex`恢复物理备份。GTID模式下的主从复制配置更简便。
89 2
|
15天前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!点击阅读原文完成实验就可获得一本日历哦~

热门文章

最新文章