【MYSQL】MYSQL学习的一大重点:MYSQL表的操作

【MYSQL】MYSQL学习的一大重点:MYSQL表的操作

头像

🎬 个人主页艾莉丝努力练剑
专栏传送门:《C语言》《数据结构与算法》《C/C++干货分享&学习过程记录
Linux操作系统编程详解》《笔试/面试常见算法:从基础到进阶》《Python干货分享

⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平


🎬 艾莉丝的简介:

在这里插入图片描述

文章目录


在这里插入图片描述

0 ~> 概要

1、查看表结构:desc

  • desc:描述表的详细信息。
  • desc可以理解成,describe,“描述”。

2、清空MYSQL:system clear

3、查询表的多个数据:select * from 表名。

  • SELECT:从一个或者多个表中检索数据,不会修改原始数据
在这里插入图片描述

4、不要轻易修改表名字或者删除表一旦改了,上层很难找,对程序员是一种莫大的伤害,所以表结构不要改,虽然讲了表的修改和删除,但是不建议修改或者删除标的表,表结构尽量后续少改。

总结一下表操作的几个重点:第一个是增加,第二个是修改,第三个是删除,第四个是查看

在这里插入图片描述

CREATE是操作表结构,但是像SELECT不是操作表结构,而是操作表的内容。

在这里插入图片描述

数据库的操作、表的操作,尤其是表的操作,应该属于哪一种呢?DDLDCLDML?表的操作是在定义表的结构,无论是增加、删除还是修改表的结构,都是属于定义表的结构的范畴。


1 ~> 创建表

创建表的语法

CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;

说明:

  • field表示列名
  • data type表示列的类型
  • character set字符集,如果没有指定字符集,则以所在数据库的字符集为准
  • collate校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

2 ~> 创建表的案例详解

案例:

create table users(id int, name varchar(20) comment '用户名', password char(32) comment '密码是32位的md5值', birthday date comment '生日') character set utf8 engine MyISAM;
在这里插入图片描述

说明:

不同的存储引擎,创建表的文件不一样。

users表存储引擎是MyISAM ,在数据目中有三个不同的文件,分别是:

  • users.frm表结构
  • users.MYD表数据
  • users.MYI表索引

我们复制一下渠道,查看一下当前路径——

在这里插入图片描述

直接在文件资源管理器中也可以看到——

在这里插入图片描述

备注: 创建一个engine(存储引擎)是innodb的数据库,观察存储目录。


3 ~> 查看表结构

语法:

desc 表名;

示例:

在这里插入图片描述

实际场景中,查看效果如下:

在这里插入图片描述

4 ~> 修改表

4.1 什么时候需要修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

4.2 修改方式

ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...); ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...); ALTER TABLE tablename DROP (column);

4.3 案例

4.3.1 在users表添加二条记录

mysql> insert into users values(1,'a','b','1982-01-04'),(2,'b','c','1984-01-04');

4.3.2 在users表添加一个字段,用于保存图片路径

mysql> alter table usersadd assets varchar(100) comment '图片路径' after birthday;

添加之后我们查看一下表的详细信息——

mysql> desc users; +----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ |id| int(11)| YES || NULL ||| name | varchar(20)| YES || NULL ||| password | char(32)| YES || NULL ||| birthday |date| YES || NULL ||| assets | varchar(100)| YES || NULL || +----------+--------------+------+-----+---------+-------+ 

插入新字段后,对原来表中的数据没有影响:

mysql>select * from users; +------+------+----------+------------+-------+ |id| name | password | birthday | assets | +------+------+----------+------------+-------+ |1| a | b |1982-01-04 | NULL |<= 原来的数据仍然存在 |2| b | c |1984-01-04 | NULL | +------+------+----------+------------+-------+ 
在这里插入图片描述

4.3.3 修改name,将其长度改成60

mysql> alter table users modify name varchar(60);
mysql> desc users; +----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ |id| int(11)| YES || NULL ||| name | varchar(60)| YES || NULL ||<= 长度变成60 | password | char(32)| YES || NULL ||| birthday |date| YES || NULL ||| assets | varchar(100)| YES || NULL || +----------+--------------+------+-----+---------+-------+ 
在这里插入图片描述

4.3.4 删除password列

在这里插入图片描述
  • **注意:**删除字段一定要小心,删除字段及其对应的列数据都没了(公司里尤其注意)。
mysql> alter table users drop password; mysql> desc users; +----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ |id| int(11)| YES || NULL ||| name | varchar(60)| YES || NULL ||| birthday |date| YES || NULL ||| assets | varchar(100)| YES || NULL || +----------+--------------+------+-----+---------+-------+ 
在这里插入图片描述

4.3.5 修改表名为employee

这里先展示一下如果修改表名为User是啥样的:

在这里插入图片描述
mysql> alter table usersrename to employee;
  • to:这个可以省掉。
mysql>select * from employee; +------+------+------------+-------+ |id| name | birthday | assets | +------+------+------------+-------+ |1| a |1982-01-04 | NULL ||2| b |1984-01-04 | NULL | +------+------+------------+-------+ 

4.3.6 将name列修改为xingming(中文拼音)

在这里插入图片描述
mysql> alter table employee change name xingming varchar(60); --新字段需要完整定义 
mysql> desc employee; +----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ |id| int(11)| YES || NULL ||| xingming | varchar(60)| YES || NULL ||| birthday |date| YES || NULL ||| assets | varchar(100)| YES || NULL || +----------+--------------+------+-----+---------+-------+ 

5 ~> 删除表

删除表很简单。

语法格式:

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name]... 

示例:

drop table t1;

结尾

uu们,本文的内容到这里就全部结束了,艾莉丝在这里再次感谢您的阅读!

结语:希望对学习MYSQL相关内容的uu有所帮助,不要忘记给博主“一键四连”哦!

往期回顾:

【MYSQL】MYSQL学习的一大重点:MYSQL库的操作

🗡博主在这里放了一只小狗,大家看完了摸摸小狗放松一下吧!🗡૮₍ ˶ ˊ ᴥ ˋ˶₎ა

Read more

C++ 虚函数、多态与绑定机制

C++ 虚函数、多态与绑定机制

在 C++ 中,对象本身只保存数据和一个隐藏的虚表指针(vptr),而所有成员函数的代码都只存在于程序的代码段中。 如果类有虚函数,编译器会为每个类生成一张虚表(vtable),虚表里存放对应虚函数的函数地址。 当创建 Derived 对象时,对象内的 vptr 会指向 Derived::vtable;如果用 Base* 指向这个对象并调用虚函数,程序会在运行时通过 vptr → vtable → 函数地址,最终调用到 Derived::f,这就是动态绑定。 如果是普通对象或按值传递(发生对象切片),就不会经过虚表,而是在编译期直接决定调用 Base::f,这是静态绑定。 构造和析构过程中,vptr 会随着当前构造层级切换,确保虚函数只调用“当前已构造完成”的那一层实现。 引言:为什么需要多态? 设想一个图形绘制系统: classShape{ public:voiddraw(){ /* 绘制基础形状 */}};classCircle:

By Ne0inhk

运行代码报错subprocess.CalledProcessError:Command ‘[‘which‘,‘c++‘]‘ returned non-zero exit status 1.

我现在是要在x86_64麒麟系统电脑上运行我的代码,结果出现下面的报错信息: subprocess.CalledProcessError: Command '['which', 'c++']' returned non-zero exit status 1 出现这个问题的原因是Python 或系统脚本调用 which c++ 时,系统没有找到 c++ 编译器。其根本原因可能是: * 系统中没有安装 g++ 或 build-essential; * 或者虽然安装了,但没有加入 PATH; * 或者安装到了非默认路径(比如 /home/xxx/mygcc)。  然后我就开始尝试安装这个g++,我的系统是 银河麒麟 V10(x86_64),电脑不能联网,所以就分为在线安装和离线安装两种形式。 1、在线安装

By Ne0inhk
【C++动态规划 图论】3243. 新增道路查询后的最短距离 I|1567

【C++动态规划 图论】3243. 新增道路查询后的最短距离 I|1567

本文涉及知识点 打开打包代码的方法兼述单元测试 C++动态规划 C++图论 LeetCode3243. 新增道路查询后的最短距离 I 给你一个整数 n 和一个二维整数数组 queries。 有 n 个城市,编号从 0 到 n - 1。初始时,每个城市 i 都有一条单向道路通往城市 i + 1( 0 <= i < n - 1)。 queries[i] = [ui, vi] 表示新建一条从城市 ui 到城市 vi 的单向道路。每次查询后,你需要找到从城市 0 到城市 n -

By Ne0inhk
【C++:红黑树】深入理解红黑树的平衡之道:从原理、变色、旋转到完整实现代码

【C++:红黑树】深入理解红黑树的平衡之道:从原理、变色、旋转到完整实现代码

🔥艾莉丝努力练剑:个人主页 ❄专栏传送门:《C语言》、《数据结构与算法》、C/C++干货分享&学习过程记录、Linux操作系统编程详解、笔试/面试常见算法:从基础到进阶、测试开发要点全知道 ⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平 🎬艾莉丝的简介: 🎬艾莉丝的C++专栏简介: 目录 C++的两个参考文档 1  ~>  初识红黑树:概念熟悉 2 ~>  了解红黑树规则 2.1  红黑树的四条规则 2.1.1  红黑树规则 2.1.2  结合图示,体会红黑树规则 2.1.3  结合图例,理解红黑树的路径数量问题:NIL

By Ne0inhk