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

MySQL中的数据类型

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

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

int 整数型(最长11位)

long 长整型

float 单精度

double 双精度

date 短日期,只包括年月日

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

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

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

创建数据表

例如,创建一个学生表:

  1. mysql> CREATE TABLE imustctf(

  2. -> ctf_id INT NOT NULL AUTO_INCREMENT,

  3. -> ctf_name varchar(100) NOT NULL default 'dahezhiquan',

  4. -> ctf_age INT NOT NULL,

  5. -> ctf_date DATE,

  6. -> PRIMARY KEY (ctf_id)

  7. -> )ENGINE=InnoDB DEFAULT CHARSET=utf8;

  8. Query OK, 0 rows affected, 1 warning (0.06 sec)

实例解析:

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

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

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

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

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

删除表

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

  1. mysql> drop table student;

  2. Query OK, 0 rows affected (0.07 sec)

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

  1. mysql> drop table if exists student;

  2. Query OK, 0 rows affected, 1 warning (0.00 sec)

插入数据

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

  1. mysql> insert into imustctf

  2. -> (ctf_name,ctf_age,ctf_date)

  3. -> values

  4. -> ('学习Mysql',18,NOW());

  5. Query OK, 1 row affected, 1 warning (0.02 sec)

在以上实例中,我们并没有提供 ctf_id 的数据,因为该字段我们在创建表的时候已经设置它为AUTO_INCREMENT(自动增加) 属性。

所以,该字段会自动递增而不需要我们去设置。实例中 NOW() 是一个 MySQL 函数,该函数返回日期和时间。

插入多条数据:

  1. mysql> insert into imustctf

  2. -> (ctf_name,ctf_age,ctf_date)

  3. -> values

  4. -> ('学习Mysql',18,NOW()),

  5. -> ('学习java',21,NOW()),

  6. -> ('学习Spring',27,NOW());

  7. Query OK, 1 row affected, 1 warning (0.02 sec)

日期转换函数:

str_to_date函数可以将字符串转化为日期类型,语法格式:

  1. str_to_date('字符串日期','日期格式')

  2. 例如:

  3. str_to_date('01-11-1998','%d-%m-%Y')

(左右滑动查看完整代码)

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

日期格式化显示函数:

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

  1. date_format(日期数据,'日期格式')

  2. date_format(birth,'%m/%d/%Y')

更新数据

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

  1. mysql> update dept set DNAME = 'BBB' where DEPTNO = 70;

  2. Query OK, 1 row affected (0.00 sec)

  3. Rows matched: 1 Changed: 1 Warnings: 0

删除数据

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

  1. mysql> delete from dept where DEPTNO = 70;

  2. Query OK, 1 row affected (0.02 sec)

快速复制表

将查询的结果放入一张新表,以下将创建一张新表,表的内容是emp里的内容:

  1. mysql> create table temp as select * from emp;

  2. Query OK, 14 rows affected (0.05 sec)

  3. Records: 14 Duplicates: 0 Warnings: 0

快速删除表数据

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

缺点:删除效率比较低

优点:支持回滚数据

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

复制代码
mysql> truncate table dept_bak;

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

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

视频文档获取方式:

这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

相关推荐
麦聪聊数据1 小时前
Web 原生架构如何重塑企业级数据库协作流?
数据库·sql·低代码·架构
未来之窗软件服务1 小时前
数据库优化提速(四)新加坡房产系统开发数据库表结构—仙盟创梦IDE
数据库·数据库优化·计算机软考
Goat恶霸詹姆斯2 小时前
mysql常用语句
数据库·mysql·oracle
大模型玩家七七3 小时前
梯度累积真的省显存吗?它换走的是什么成本
java·javascript·数据库·人工智能·深度学习
曾经的三心草3 小时前
redis-9-哨兵
数据库·redis·bootstrap
明哥说编程3 小时前
Dataverse自定义表查询优化:D365集成大数据量提速实战【索引配置】
数据库·查询优化·dataverse·dataverse自定义表·索引配置·d365集成·大数据量提速
xiaowu0803 小时前
C# 拆解 “显式接口实现 + 子类强类型扩展” 的设计思想
数据库·oracle
讯方洋哥3 小时前
HarmonyOS App开发——关系型数据库应用App开发
数据库·harmonyos
惊讶的猫4 小时前
Redis持久化介绍
数据库·redis·缓存
Apple_羊先森4 小时前
ORACLE数据库巡检SQL脚本--19、磁盘读次数最高的前5条SQL语句
数据库·sql·oracle