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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 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 唯一约束缩影名称;

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
NoSQL 关系型数据库 MySQL
2024Mysql And Redis基础与进阶操作系列(4-2)作者——LJS[含MySQL非空、唯一性、PRIMARY KEY、自增列/自增约束举例说明等详解步骤及常见报错问题对应的解决方法]
24MySQL非空、唯一性、PRIMARY KEY、自增列/自增约束举例说明等详解步骤及常见报错问题对应的解决方法(4-2) 学不会你来砍我!!!
|
9天前
|
存储 SQL 关系型数据库
【MySQL基础篇】MySQL约束语法
文章介绍了MySQL中表的约束概念,包括非空、唯一、主键、默认和外键约束,以及如何在创建和修改表时指定这些约束。外键约束用于保持数据的一致性和完整性,文章通过示例展示了添加、删除外键的语法,并讨论了不同的删除/更新行为,如CASCADE和SETNULL。
【MySQL基础篇】MySQL约束语法
|
8天前
|
存储 关系型数据库 MySQL
MySQL(条件约束)
为了校验数据,让数据的正确性能够得到保证,约束,能够引进更多的检查操作,但是也会增加系统的成本开销
|
2月前
|
关系型数据库 MySQL 数据处理
MySQL函数与约束
MySQL 提供了丰富的函数和强大的约束机制,用于数据处理和完整性维护。通过掌握这些工具,可以有效地管理和分析数据库中的数据,确保数据的一致性和准确性。无论是在日常数据查询中使用内置函数,还是在数据库设计中应用各种约束,都是确保数据库系统稳定、高效运行的关键。希望本文对您理解和应用 MySQL 函数与约束有所帮助。
36 1
|
3月前
|
关系型数据库 MySQL 数据库
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
44 5
|
3月前
|
Ubuntu 关系型数据库 MySQL
ubuntu使用aliyun源+mysql删除有外键约束的数据+查看特定目录的大小
ubuntu使用aliyun源+mysql删除有外键约束的数据+查看特定目录的大小
90 4
|
3月前
|
存储 关系型数据库 MySQL
MySQL支持多种数据类型
MySQL支持多种数据类型
144 3
|
3月前
|
存储 关系型数据库 MySQL
什么是mysql的数据类型?
什么是mysql的数据类型?
53 2
|
3月前
|
存储 关系型数据库 MySQL
MySQL数据类型
MySQL数据类型
61 2
|
11天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
38 3