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 唯一约束缩影名称;

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
24天前
|
NoSQL 关系型数据库 MySQL
2024Mysql And Redis基础与进阶操作系列(4-2)作者——LJS[含MySQL非空、唯一性、PRIMARY KEY、自增列/自增约束举例说明等详解步骤及常见报错问题对应的解决方法]
24MySQL非空、唯一性、PRIMARY KEY、自增列/自增约束举例说明等详解步骤及常见报错问题对应的解决方法(4-2) 学不会你来砍我!!!
|
1月前
|
关系型数据库 MySQL 数据库
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
36 5
|
1月前
|
Ubuntu 关系型数据库 MySQL
ubuntu使用aliyun源+mysql删除有外键约束的数据+查看特定目录的大小
ubuntu使用aliyun源+mysql删除有外键约束的数据+查看特定目录的大小
37 4
|
1月前
|
存储 关系型数据库 MySQL
MySQL支持多种数据类型
MySQL支持多种数据类型
110 3
|
1月前
|
存储 关系型数据库 MySQL
什么是mysql的数据类型?
什么是mysql的数据类型?
47 2
|
1月前
|
存储 关系型数据库 MySQL
MySQL数据类型
MySQL数据类型
53 2
|
2月前
|
SQL 关系型数据库 MySQL
MySQL中外键的使用及外键约束策略
这篇文章讨论了MySQL中使用外键的重要性,包括外键的概念、不使用外键可能导致的问题、如何设置外键约束以及不同的外键约束策略(如CASCADE和SET NULL),并通过示例演示了这些概念。
MySQL中外键的使用及外键约束策略
|
2月前
|
存储 关系型数据库 MySQL
MySQL数据库基础:约束
约束是对数据库表中字段施加的规则,确保数据的正确性、有效性和完整性。主要分为非空约束、唯一约束、默认约束、主键约束和外键约束。非空约束禁止字段值为null;唯一约束确保字段值唯一,允许null值重复;默认约束设定默认值;主键约束结合非空与唯一约束,并可设为自增型;外键约束则通过关联其他表的主键,保证数据一致性。检查约束确保字段值满足特定条件。
49 1
|
14天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
29 1
|
16天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
29 4
下一篇
无影云桌面