Mysql数据库关于表的一系列操作

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 1.Mysql中的数据类型varchar 动态字符串类型(最长255位),可以根据实际长度来动态分配空间,例如:varchar(100)char 定长字符串(最长255位),存储空间是固定的,例如:char(10)int 整数型(最长11位)long 长整型float 单精度double 双精度date 短日期,只包括年月日datetime 长日期,包括年月日时分秒clob 字符大对象(最多可以存储4G的字符串) ,超过255字符的都要采用此进行存储blob 二进制大对象,主要用于存储流媒体数据等


1.Mysql中的数据类型


varchar 动态字符串类型(最长255位),可以根据实际长度来动态分配空间,例如:varchar(100)

char 定长字符串(最长255位),存储空间是固定的,例如:char(10)

int 整数型(最长11位)

long 长整型

float 单精度

double 双精度

date 短日期,只包括年月日

datetime 长日期,包括年月日时分秒

clob 字符大对象(最多可以存储4G的字符串) ,超过255字符的都要采用此进行存储

blob 二进制大对象,主要用于存储流媒体数据等


2.创建数据表


例如,创建一个学生表:


mysql> CREATE TABLE imustctf(
    -> ctf_id INT NOT NULL AUTO_INCREMENT,
    -> ctf_name varchar(100) NOT NULL default 'dahezhiquan',
    -> ctf_age INT NOT NULL,
    -> ctf_date DATE,
    -> PRIMARY KEY (ctf_id)
    -> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected, 1 warning (0.06 sec)


实例解析:


如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。

AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。

PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。

ENGINE 设置存储引擎,CHARSET 设置编码。

default 用于设置字段为空时的默认值


3.删除表


现在我们来删除一个student表:🎈


mysql> drop table student;
Query OK, 0 rows affected (0.07 sec)


这种删除方法,如果表不存在会发生一个错误,我们可以通过下面的写法来提升SQL的鲁棒性:


如果表存在,则进行删除,否则不删除:


mysql> drop table if exists student;
Query OK, 0 rows affected, 1 warning (0.00 sec)


4.插入数据


MySQL 表中使用 INSERT INTO SQL语句来插入数据。


mysql> insert into imustctf
    -> (ctf_name,ctf_age,ctf_date)
    -> values
    -> ('学习Mysql',18,NOW());
Query OK, 1 row affected, 1 warning (0.02 sec)


在以上实例中,我们并没有提供 ctf_id 的数据,因为该字段我们在创建表的时候已经设置它为AUTO_INCREMENT(自动增加) 属性。 所以,该字段会自动递增而不需要我们去设置。实例中 NOW() 是一个 MySQL 函数,该函数返回日期和时间🤡

插入多条数据:


mysql> insert into imustctf
    -> (ctf_name,ctf_age,ctf_date)
    -> values
    -> ('学习Mysql',18,NOW()),
    -> ('学习java',21,NOW()),
    -> ('学习Spring',27,NOW());
Query OK, 1 row affected, 1 warning (0.02 sec)


日期转换函数:


str_to_date函数可以将字符串转化为日期类型:


语法格式:


str_to_date('字符串日期','日期格式')
例如:
str_to_date('01-11-1998','%d-%m-%Y')


注意:如果你的字符串日期格式是1990-08-11,则不需要使用str_to_date函数进行转换,Mysql会自动进行字符串转日期类型😊


日期格式化显示函数:


date_format函数可以将日期转换成特定格式的字符串


例子:

date_format(日期数据,'日期格式')
date_format(birth,'%m/%d/%Y')


5.更新数据


如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作。


mysql> update dept set DNAME = 'BBB' where DEPTNO = 70;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0


6.删除数据


你可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录。

例如:


mysql> delete from dept where DEPTNO = 70;
Query OK, 1 row affected (0.02 sec)


7.快速复制表


将查询的结果放入一张新表:


以下将创建一张新表,表的内容是emp里的内容:


mysql> create table temp as select * from emp;
Query OK, 14 rows affected (0.05 sec)
Records: 14  Duplicates: 0  Warnings: 0


8.快速删除表数据


delete语句删除数据原理:


只是将数据库中的数据删除,而在物理存储的数据并未删除,依然占用着一定的空间,所以可以进行回滚回复数据😊


缺点:删除效率比较低


优点:支持回滚数据


下面我们来介绍一个快速删除表数据的语法:truncate


mysql> truncate table dept_bak;


此操作会删除表中的全部数据,并且无法回滚,优点是删除的效率较高,主要用于亿级大表删除操作


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
SQL 运维 关系型数据库
MySQL 中 GRANT 操作会引起复制中断吗?
GRANT 操作并不是一个原子性操作,不管执行成功与否,都会触发一个隐式重载授权表的行为。 在生产环境中需要规范用户创建及授权的操作,不推荐使用 DML 语句去直接变更 mysql.user 表,可能会引发其他的问题,若使用了 DML 语句进行变更, 需要手工执行 flush privileges。
53 4
|
2月前
|
JavaScript 关系型数据库 MySQL
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
45 0
|
2月前
|
存储 关系型数据库 文件存储
面试题MySQL问题之简单的SELECT操作在MVCC下加锁如何解决
面试题MySQL问题之简单的SELECT操作在MVCC下加锁如何解决
36 2
|
2月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版操作报错合集之从mysql读数据写到hive报错,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
2月前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之运行mysql to doris pipeline时报错,该如何排查
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
2月前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之整库同步mysql到starRock提交任务异常,该如何处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
2月前
|
SQL Java 数据库
MySQL设计规约问题之为什么应尽量避免使用子查询,而可以考虑将其优化为join操作
MySQL设计规约问题之为什么应尽量避免使用子查询,而可以考虑将其优化为join操作
|
2月前
|
存储 SQL 关系型数据库
MySQL设计规约问题之在数据库设计中,为什么要适当考虑反范式的表设计
MySQL设计规约问题之在数据库设计中,为什么要适当考虑反范式的表设计
|
2月前
|
SQL 存储 数据库
MySQL设计规约问题之如何处理日志类型的表
MySQL设计规约问题之如何处理日志类型的表
|
2月前
|
分布式计算 DataWorks 关系型数据库
MaxCompute操作报错合集之配置mysql数据源querysql模式,同步到MC时遇到报错,该怎么处理
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。

热门文章

最新文章