MySql超详细讲解表的用法

 更新时间:2022年09月16日 15:08:38   作者:在人间负债^  
这篇文章主要为大家详细介绍了MySQL数据库中表常用的一些操作方法,文中的示例代码讲解详细, 对我们学习MySQL有一定帮助,需要的可以参考一下

1. 建表的语法

建表属于 DDL 语句,DDL 语句包括:create、drop、alter…

create table 表名(字段1 数据类型, 字段2 数据类型 ... );

表名:建议以 t_ 或者 tbl_ 开始,可读性强。见名知意。

字段名:见名知意。

表名和字段名都属于标识符。

2. mysql中的数据类型

  • varchar

最长 255

可变长度的字符串。

比较智能,节省空间。

会根据实际的数据长度分配空间。

  • char

最长 255

定长字符串

不管实际的数据长度是多少。

分配固定长度的空间去存储数据。

使用不恰当的时候,可能会导致空间的浪费。

varchar 动态的分配空间,速度慢

char 固定的分配空间,速度快 具体的选择根据实际情况来选择 比如:姓名:varchar;性别:char

  • int

最长 11

数字中的整数型。

等同于 java 中的 int。

  • bigint

数字中的长整型。

等同于 java 中的 long 。

  • float

单精度浮点型数据。

  • double

双精度浮点型数据。

  • date

短日期类型。

  • datetime

长日期类型。

  • clob

字符大对象。

最多可以存储 4G 的字符串。

比如:存储一篇文章,存储一个说明。

超过 255 个字符的都要采用 CLOB 字符大对象来存储。

  • blob

二进制大对象。

专门用来存储图片、声音、视频等流媒体数据。

往 BLOB 类型的字段上插入数据的时候,例如插入一个图片、视频等。

你需要使用 IO 流才行。

3. 模拟表

  • t_movie 电影表(专门存储电影信息的)
  • no(bigint):编号
  • name(varchar):名字
  • history(clob):故事情节
  • playtime(date):上映日期
  • time(double):时长
  • image(blob):海报
  • type(cahr):类型

4. 创建一个学生表

学号、姓名、年龄、性别、邮箱地址

1. 创建表(create-DDL)

mysql> create table t_student (no int, name varchar(32), sex char(1), age int(3), email varchar(255));

2. 插入数据(insert-DML)

语法格式

insert into 表名(字段名1, 字段名2, 字段名3...) values(值1, 值2, 值3...);

注意:字段名和值要一一对应。(数量要对应。数据类型要对应。)

mysql> insert into t_student(no, name, sex, age, email) values(1, 'zhangsan', 'm', 20, 'zhangsan@123.com');
mysql> insert into t_student(no, name, sex, age, email) values(1, 'lisi', 'm', 20, 'lisi@123.com');

mysql> insert into t_student(no) values(3);

没有给其他字段指定值的时候,默认值是 null

insert 语句中的字段名可以省略,省略的话默认是全部写上了,所以按照一一对应原则,values 中的值要全部写上。

3. 插入日期

format:数字格式化

format(数字, '格式')

str_to_date:将字符串 varchar 类型转换成 date 类型

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

date_format:将 date 类型转换成具有一定格式的 varchar 类型

mysql> create table t_user(id int, name varchar(32), birth date);

插入数据?

mysql> insert into t_user(id, name, birth) values(1, 'zhangsan', str_to_date('01-01-1990', '%d-%m-%Y'));

str_to_date 将字符串类型的日期转换成 date 类型的日期

但是!!!如果提供的字符串日期格式是%Y_%m-%d的话,就不需要str_to_date函数了,mysql会自动转换。

mysql> insert into t_user(id, name, birth) values(2, 'lisi', '1990-10-01');

4. date和datetime的区别

date:短日期,只包括 年月日

dateime:长日期,包括 年月日时分秒

短日期默认格式:%Y-%m-%d

长日期默认格式:%Y-%m-%d %h:%i:%s

在 mysql 中 now() 函数可以获取系统当前时间,是长时间格式

5. 更新(update-DML)

语法格式

update 表名 set 字段1=值1, 字段2=值2 ... where 条件;

注意:如果没有限制条件,会导致所有的数据全部进行更新

mysql> update t_user set name = 'jack', birth = '2022-9-2' where id = 2;

mysql> select * from t_user;

6. 删除(delete-DML)

语法格式

delete from 表名 where 条件;

注意:如果没有条件,整张表的数据都会被删除。

mysql> delete from t_user where id = 2;

mysql> delete from t_user;

5. 快速创建表(复制表)

原理:

将一个查询结果当做一张表新建!!! 这个可以完成表的快速复制!!! 表创建出来,同时表中的数据也存在了!!!

mysql> create table emp2 as select * from emp;

6. 快速删除表中数据

delete 语句(DML)删除数据的原理?

  1. 表中的数据被删除了,但是这个数据在硬盘上的真实存储空间不会被释放!!!
  2. 这种删除的缺点是:删除效率比较低。
  3. 这种删除的优点是:支持回滚,后悔了可以再恢复数据!!!

truncate 语句(DDL)删除数据的原理?

  • 这种删除属于物理删除。
  • 这种删除的缺点是:不支持回滚。
  • 这种删除的优点是:效率较低。

truncate table 表名;

到此这篇关于MySql超详细讲解表的用法的文章就介绍到这了,更多相关MySql表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL 百万级数据的4种查询优化方式

    MySQL 百万级数据的4种查询优化方式

    本文讲解了MySQL 百万级数据的4种查询优化方式,大家可以根据自身需求,选择适合自己的优化方式
    2021-06-06
  • Navicat远程连接SQL Server并转换成MySQL步骤详解

    Navicat远程连接SQL Server并转换成MySQL步骤详解

    最近遇到一个需求是将SQL Server转换为 MySQL的格式,由于不想在本地安装 SQL Server,所以决定在远程的 Windows 服务器上安装,并在本地使用Navicat远程连接它,然而在实现过程中遇到了诸多问题,记录于此。感兴趣的朋友们下面来一起学习学习吧。
    2017-01-01
  • mysql自增navicat_navicat如何设置主键自增

    mysql自增navicat_navicat如何设置主键自增

    通过Navicat设置MySQL表的主键自增,步骤包括:打开Navicat连接数据库,选择表并设计,右击id字段设置为主键,然后勾选自动递增功能,这样每次插入新记录时,id字段都会自动递增
    2025-01-01
  • MySQL生产环境CPU使用率过高的排查与解决方案

    MySQL生产环境CPU使用率过高的排查与解决方案

    在生产环境中,MySQL作为一个关键的数据库组件,其性能对整个系统的稳定性至关重要,有时候我们可能会遇到MySQL CPU使用率过高的问题,本文将详细介绍如何排查和解决MySQL CPU过高的问题,帮助您迅速恢复正常的数据库性能,需要的朋友可以参考下
    2024-03-03
  • MySQL中的 Binlog 深度解析及使用详情

    MySQL中的 Binlog 深度解析及使用详情

    这篇文章主要介绍了MySQL中的 Binlog 深度解析及使用详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • 新建一个MySQL数据库的简单教程

    新建一个MySQL数据库的简单教程

    这篇文章主要介绍了新建一个MySQL数据库的简单教程,是MySQL入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • MySQL数据表分区技术PARTITION详解

    MySQL数据表分区技术PARTITION详解

    在处理大规模数据时,数据库性能的优化变得尤为重要,MySQL提供了一种称为“分区”(Partitioning)的技术,可以显著提高查询效率和管理大型数据库表的能力,本文将详细介绍MySQL中的数据表分区技术,包括其基本概念、类型以及如何实现和维护,需要的朋友可以参考下
    2025-02-02
  • MySQL特定表全量、增量数据同步到消息队列-解决方案

    MySQL特定表全量、增量数据同步到消息队列-解决方案

    mysql要同步原始全量数据,也要实时同步MySQL特定库的特定表增量数据,同时对应的修改、删除也要对应,下面就为大家分享一下
    2021-11-11
  • MySQL中distinct与group by之间的性能进行比较

    MySQL中distinct与group by之间的性能进行比较

    这篇文章主要针对MySQL中distinct与group by之间的性能进行比较,内容比较详细,很直观的能看出比较结果,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • mysql配置模板(my-*.cnf)参数详细说明

    mysql配置模板(my-*.cnf)参数详细说明

    这篇文章主要介绍了mysql配置模板就是mysql的配置文件参数说明,需要的朋友可以参考下
    2015-01-01

最新评论