当前位置: 首页 > article >正文

【数据库初阶】Linux中表的基础操作

图片名称
🎉博主首页: 有趣的中国人

🎉专栏首页: 数据库初阶

🎉其它专栏: C++初阶 | C++进阶 | 初阶数据结构

在这里插入图片描述

亲爱的小伙伴们,大家好!在这篇文章中,我们将深入浅出地为大家讲解 Linux中表的基础操作 帮助您轻松入门,快速掌握核心概念。


如果文章对您有所启发或帮助,请别忘了 点赞 👍、收藏 🌟、留言 📝 支持!您的每一份鼓励,都是我持续创作的源动力。让我们携手前行,共同进步!

文章目录

    • @[toc]
  • 1. 创建表
    • 🎧1.1 创建语法🎧
    • 🎧1.2 创建案例🎧
      • 以默认存储引擎(InnoDB)创建表
      • 以 MyISAM 为存储引擎创建表
      • 区别
  • 2. 查看表
    • 🎧2.1 查看数据库中的所有表🎧
    • 🎧2.2 查看表结构🎧
    • 🎧2.3 查看创建表的语法🎧
  • 3. 修改表
    • 🎧3.1 向表中增删元素🎧
      • 增加元素
      • 删除表中的元素
        • DELETE 关键字
        • TRUNCATE 关键字
    • 🎧3.2 重命名表🎧
    • 🎧3.3 修改表的字段🎧
      • 增加列
      • 修改列的数据类型
      • 修改列名称
      • 删除列
      • 改变列的位置
  • 4. 删除表

上一篇文章中,博主介绍了 :

  • 数据库基础知识;
  • MySQL数据库的增删改查

建议将上一篇文章看完之后再来看这篇文章,链接如下:

【数据库初阶】Linux中库的基础操作

那么接下来正文开始:



1. 创建表

🎧1.1 创建语法🎧

  • 语法:
create table tb_name(
	field1 datatype,
	field2 datatype,
	field3 datatype
) charset=字符集 collate=校验集 engine=存储引擎;
# 最后一行也可以这样写:
) character set 字符集 collate 校验集 engine 存储引擎;
  • 语法说明:
    1. field 表示列名;
    2. datatype 表示列的类型(关于类型下一篇文章会细讲);
    3. character set 和 charset 表示字符集,如果没有指定字符集,则以所在数据库的字符集为准;
    4. collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准。

🎧1.2 创建案例🎧

  • 我们可以先查看一下系统的默认存储引擎,进入MySQL中然后输入show engines;

在这里插入图片描述

  • 可以看到系统默认的存储引擎是InnoDB,这也是可以更改的,在/etc/my.cnf这个文件中更改即可,但是不推荐更改!!!
  • 那我们接下来创建两个表,其中一个是 默认的存储引擎(InnoDB),另外一个是以MyISAM以存储引擎创建表。

以默认存储引擎(InnoDB)创建表

  • 输入下面代码,创建student表:
mysql> create table student(
    -> id int,
    -> name varchar(20) comment '用户名',
    -> password varchar(32) comment '密码',
    -> birthday date comment '学生生日日期'
    -> );

以 MyISAM 为存储引擎创建表

  • 输入下面代码,创建people表:
mysql> create table people(
    -> name varchar(20) comment '姓名',
    -> age int comment '年龄',
    -> hobbies varchar(128) comment '爱好'
    -> )charset=utf8mb4 collate=utf8mb4_0900_ai_ci engine=MyIsam;

在这里插入图片描述

区别

  • 我们可以在 /var/lib/test1 这个目录中查看一下创建两张不同的表之后,系统为我们创建了什么文件;
  • 进入之后,发现以MyISAM为存储引擎的表有三个文件,而InnoDB为存储引擎的表只有一个文件;
    • 博主的这个MySQL版本是8.0之后的,如果你是8.0版本之前的,可能会有 .frm 文件;
    • 这个文件表示的是表的框架;
    • 但是在8.0版本之后,这个文件逐渐被.sdi文件替代了 。
  • .MYD 为后缀的文件表示的是用MyISAM引擎创建的表的数据(data);
  • .MYI 为后缀的文件表示的是用MyISAM引擎创建的表的索引(index);
  • 所以MyISAM引擎创建的表数据和索引是分开存的;
  • .ibd 为后缀的文件表示的是用 InnoDB 引擎创建的表的数据和索引;
  • 所以InnoDB引擎创建的表的数据和所以是一起存放的。
  • 索引和数据以及框架在博主后面的文章会提及!

在这里插入图片描述


2. 查看表

🎧2.1 查看数据库中的所有表🎧


  • 语法:show tables;(很easy)
  • 例如:

在这里插入图片描述

🎧2.2 查看表结构🎧

  • 语法:desc table_name; (desc 可以理解为 describe
  • 例如:
    • 暂时只需要理解前两列即可。

在这里插入图片描述

🎧2.3 查看创建表的语法🎧

  • 语法:show create table table_name;(这个和查看创建数据库的语法及其相似)
  • 例如:
    • 我们查看到的语法是经过mysqld优化过的;
    • 还记得mysqld的层级吗,我们输入的语法就要在它的上层经过语法分析和词法分析等,将我们输入的语法变成他自己想要看到的;
    • 而我们现在看到的就是经过分析过的。
  • 加上 \G 是让本身是表格形式的输出变成垂直形式的输出。

在这里插入图片描述


3. 修改表

  • 实际开发中,我们需要向表中插入删除内容
  • 也会修改表的结构,例如字段名字、字段类型、字段大小
  • 也会修改表的字符集类型、校验集类型
  • 亦或是修改表的名称
  • 因此修改表的操作还是非常值得学习的。

🎧3.1 向表中增删元素🎧

增加元素

  • 语法:
insert into table_name (column1, column2, column3, ...) 
values(value1, value2, value3, ...),(value1, value2, value3, ...);
  • 这里的括号可以省略,但是如果省略的话一定要按照你定义的顺序插入!
  • 也就是说,只要你 指定了列名,就可以 按照你所给定的列依次插入元素
  • 例如:

在这里插入图片描述

删除表中的元素

  • 有两种方法,第一种是DELETE关键字;
  • 第二种是TRUNCATE关键字。
DELETE 关键字
  • 语法:DELETE FROM table_name WHERE condition;
  • 说明:
    • table_name:目标表的名称。
    • condition:指定要删除的的条件。
  • 例如:
    • delete from student where id=1;

在这里插入图片描述

  • 或者可以清空整个表:
    • 语法:DELETE FROM tb_name;
    • 这样会清空表中的数据,但表结构仍然保留
TRUNCATE 关键字
  • TRUNCATE 是一个更高效的方式,用于清空表中的所有数据表结构仍然保留
  • 语法:TRUNCATE TABLE table_name;
  • 特点:
    • DELETE 更快,因为它不会逐行删除数据,而是直接重置表;
    • 不支持 WHERE 条件,只能删除所有数据。

🎧3.2 重命名表🎧

  • 语法:
    • ALTER TABLE tb_name RENAME TO new_tb_name;
    • 这里的 TO 可以省略。
  • 例如:

在这里插入图片描述

🎧3.3 修改表的字段🎧

增加列

  • 语法:
    • ALTER TABLE tb_name ADD COLUMN column_name column_definition;
      • table_name:要添加列的表名。
      • column_name:新列的名称。
      • column_definition:新列的定义,包括数据类型、大小等。
  • 例如:
    • alter table students add column age int;

在这里插入图片描述

修改列的数据类型

  • 语法:
    • ALTER TABLE table_name MODIFY COLUMN column_name new_column_definition;
      • column_name:要修改的列名;
      • new_column_definition:新的列定义。
  • 例如:
    • age的数据类型改为bigint
    • alter table students modify column age bigint;

在这里插入图片描述

修改列名称

  • 语法:
    • ALTER TABLE table_name CHANGE COLUMN old_column_name new_column_name column_definition;
  • 例如:
    • alter table students change column birthday birthdate date;

在这里插入图片描述

  • 这里一定要注意修改列名称的时候一定要把列的定义要加上去,不然会报错的!!!

删除列

  • 语法:
    • ALTER TABLE table_name DROP COLUMN column_name;
  • 例如:
    • alter table students drop column age;

在这里插入图片描述

改变列的位置

  • 语法:
    • ALTER TABLE table_name MODIFY COLUMN column_name column_definition AFTER another_column;
  • 例如,将id列移动到name列之后:
    • alter table students modify column id int after name;

在这里插入图片描述

  • 这里也要注意要移动的那一列一定要加上列定义!!!

4. 删除表

  • 语法:
    • DROP TABLE table_name;
  • 例如:
    • 删除people表 :drop table people;

在这里插入图片描述


http://www.kler.cn/a/459520.html

相关文章:

  • Java 内存溢出(OOM)问题的排查与解决
  • Postgresql 命令还原数据库
  • 代码实战:基于InvSR对视频进行超分辨率重建
  • Maven 教程之 pom.xml 详解
  • Niushop商城商业插件_cps联盟_包装转换_视频购物_同城配送_上门预约等插件的安装方法
  • DATACOM-DHCP-复习-实验
  • 【Redis】集群配置(主从复制 哨兵搭建)
  • JPA查询部分字段的最佳实践
  • Python 中的 with open:文件操作的最佳实践
  • 发布远程组件vue2+Webpack和vue3+vite
  • 面试场景题系列:设计云盘系统
  • jmeter设置tps、响应时间监测时间间隔
  • DigitalOcean Kubernetes现已支持VPC natvie集群
  • 【深度学习】Pytorch框架介绍
  • 基于单片机的温湿度采集系统(论文+源码)
  • 整车厂如何规划构建汽车集成安全团队的软件研发能力
  • win10 indy加载ssl 出错could not load ssl library
  • k8s七层代理Ingress(基础知识)
  • C 语言: scanf 函数详解
  • web3基于zkEVM的L2扩容方案-Scroll
  • 华为OD机试真题---服务器广播
  • 活动预告 | Microsoft Azure 在线技术公开课:使用 Azure OpenAI 服务构建生成式应用
  • webrtc音频模块(五) AudioState和AudioDeviceBuffer
  • 服务器nfs文件共享
  • 实验室课程|基于SprinBoot+vue的实验室课程管理系统(源码+数据库+文档)
  • 使 el-input 内部的内容紧贴左边