【MySQL】4. 表的操作

news2025/1/16 16:16:55

表的操作

1. 创建表

语法:

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

说明:

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

2. 创建表案例

在这里插入图片描述
这里为啥存储引擎发生变化会导致这种情况出现,我们在后面讲。

3. 查看表结构

示例:

desc 表名;

在这里插入图片描述
查看创建时的语句:

show create table users1;
或者
show create table users1 \G

在这里插入图片描述
我们仔细观察发现上述语句和我们自己进行输入时有些不同
我们自己输入的SQL命令会传给服务器上的mysqld服务,帮我们进行规范(标准化),再对数据库进行读取

MySQL会将用户操作的所有指令记录下来。这也就是备份数据库时我们看到的都是语句的原因

4. 修改表

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

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);

案例:
首先在users表添加二条数据

mysql> show create table users \G
*************************** 1. row ***************************
       Table: users
Create Table: CREATE TABLE `users` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL COMMENT '用户名',
  `password` char(32) DEFAULT NULL COMMENT '用户的密码',
  `birthday` date DEFAULT NULL COMMENT '用户的生日'
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql> insert into users values(1,'张三','12345','2002-08-07');
Query OK, 1 row affected (0.00 sec)

mysql> insert into users values(2,'李四','54321','2000-07-07');
Query OK, 1 row affected (0.00 sec)

mysql> select * from users;
+------+--------+----------+------------+
| id   | name   | password | birthday   |
+------+--------+----------+------------+
|    1 | 张三   | 12345    | 2002-08-07 |
|    2 | 李四   | 54321    | 2000-07-07 |
+------+--------+----------+------------+
2 rows in set (0.00 sec)

场景1:在users表添加一个字段,用于保存图片路径(添加属性列)

mysql> alter table users add image_path varchar(100) comment '图片路径' after birthday;
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

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    |       |
| image_path | varchar(100) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> show create table users \G
*************************** 1. row ***************************
       Table: users
Create Table: CREATE TABLE `users` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL COMMENT '用户名',
  `password` char(32) DEFAULT NULL COMMENT '用户的密码',
  `birthday` date DEFAULT NULL COMMENT '用户的生日',
  `image_path` varchar(100) DEFAULT NULL COMMENT '图片路径'
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

场景2:修改name,将其长度改成60(修改属性列)

mysql> alter table users add image_path varchar(100) comment '图片路径' after birthday;
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

在这里插入图片描述

场景3:删除password列

注意:删除字段一定要小心,删除字段及其对应的列数据都没了

mysql> desc users;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| id         | int(11)      | YES  |     | NULL    |       |
| name       | varchar(60)  | YES  |     | NULL    |       |
| password   | char(32)     | YES  |     | NULL    |       |
| birthday   | date         | YES  |     | NULL    |       |
| image_path | varchar(100) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> alter table users drop password;
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> desc users;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| id         | int(11)      | YES  |     | NULL    |       |
| name       | varchar(60)  | YES  |     | NULL    |       |
| birthday   | date         | YES  |     | NULL    |       |
| image_path | varchar(100) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

我们可以看到password属性不复存在

场景4:修改表名为employee

mysql> alter table users rename to User;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from users;
ERROR 1146 (42S02): Table 'user.users' doesn't exist

mysql> select * from User;
+------+--------+------------+------------+
| id   | name   | birthday   | image_path |
+------+--------+------------+------------+
|    1 | 张三   | 2002-08-07 | NULL       |
|    2 | 李四   | 2000-07-07 | NULL       |
+------+--------+------------+------------+
2 rows in set (0.00 sec)

to:可以省掉

将name列修改为xingming

mysql> alter table User change name xingming varchar(60);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc User;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| id         | int(11)      | YES  |     | NULL    |       |
| xingming   | varchar(60)  | YES  |     | NULL    |       |
| birthday   | date         | YES  |     | NULL    |       |
| image_path | varchar(100) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

5. 删除表

语法格式:

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

示例:

drop table t1;

数据库中的表迫不得已的情况下,最好不要进行修改和删除。
因为数据库属于底层模块,凡是基于数据库上层的软件开发,一旦进行底层的更改都有可能会导致上层应用无法运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1519141.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iOS面试题锦集

1. 问:一张图片所占内存大小跟什么有关? 图片所占内存大小,与图片的宽高有关 我们平时看到的png、jpg、webp这些图片格式,其实都是图片压缩格式。通过对应的算法来优化了大小以节省网络传输与本地保存所需的资源。 但是当我们加…

Nuxt3配置本地访问链接 -- Network: use --host to expose

这种表示没有在线访问本地链接 在nuxt.config.ts里面 export default defineNuxtConfig({// 配置本地访问链接devServer: {host: 192.168.1.41,//自己电脑的Ipport: 3000,}, }) 复制到浏览器就可以访问,给别人使用必须是局域网,同一个网络

FreeRTOS学习第10篇--队列使用示例

FreeRTOS学习第10篇–队列使用示例 本文目标:FreeRTOS学习第10篇–队列使用示例 按照本文的描述,可以进行简单的使用队列。 本文实验条件:拥有C语言基础,装有编译和集成的开发环境,比如:Keil uVision5 …

独家授权!广东盈世获网易邮箱反垃圾服务的独家授权,邮件反垃圾更全面

近日,广东盈世计算机科技有限公司(以下简称“Coremail”)成功获得了网易(杭州)网络有限公司(以下简称“网易”)授予的网易邮箱反垃圾服务独家使用权。这一授权使得Coremail能够在邮件安全产品上…

创建出色用户界面的五个关键技巧,助您实现用户体验的提升!

易于理解的用户界面通常很容易阅读,它们有美丽的布局和完美的颜色组合,通过提供简单和直观的选项,告诉用户应用程序可以做什么。 因此,在创建用户界面时,(UI)当时,UI设计师往往优先…

人大金仓大小写敏感处理

人大金仓安装的时候,不管是否选择大小写敏感;查询的时候加和不加双引号,查询出来的都是小写 针对人大金仓大小写,我们实际引用全是大写的情况,解决方案如下 添加配置,将查询结果全都转成大写 1、本地打开…

FastAPI 是什么?深入解析

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建基于 Python 的 API。它是一个开源项目,基于 Starlette 和 Pydantic 库构建而成,提供了强大的功能和高效的性能。 FastAPI 官网地址:fastapi.tiango…

npm WARN config init.license Use `--init-license` instead.

背景:近期升级本地node版本(v14.15.4 --> v18.19.1),npm -v报警 npm WARN config init.license Use --init-license instead. npm WARN config init.author.name Use --init-author-name instead. 分析: npm高版本…

使用pgadmin备份数据库

本人菜鸟, 在使用PostgreSQL数据库的时候, 经常会用到这个pgadmin的可视化工具 这个工具提供了很简单的备份和还原方法, 操作如下 备份 (1)首先鼠标右键选中你要备份的数据库,如图的 LBSYS (2)然后点击 backup (…

【SVG】前端-不依靠第三方包怎么画连线???

如何用SVG实现连线功能 在Web开发中,我们经常会遇到需要在页面上绘制图形或者实现一些图形交互的场景。SVG(Scalable Vector Graphics)作为一种用于描述二维图形的XML标记语言,在这方面提供了极大的便利。本文将以一个具体的例子…

WordPress网站启用cloudflare的CDN加速后,网站出现多重定向无法访问

这是一个使用Hostease的Linux虚拟主机的客户反馈的问题,Hostease的虚拟主机使用的也是cPanel面板,客户使用的是cPanel的softaculous安装的WordPress,但是在安装完成后,并且解析了域名之后,发现网站无法访问&#xff0c…

高校实验室科研仪器开放共享存在的问题及对策建议

随着科技的迅速发展和高校科研水平的提高,高校实验室科研仪器的开放共享已经成为推动科研进步和创新发展的重要手段。然而,在实际操作中,我们也面临着诸多问题和挑战。本文将分析高校实验室科研仪器开放共享存在的问题,并提出相应…

java复健-接口的开发及参数校验

遇到的问题以及解决方案 Q1. 开发接口的流程 A1: 明确需求阅读接口文档思路分析开发测试 Q2. 开发时用到的技术 A2: LomBok:Data,自动为我们的实体类创建构造方法,set(),get&am…

8. C++对象模型

1. 普通类对象是什么布局? struct Base {Base() default;~Base() default;void Func() {}int a;int b; };int main() {Base a;return 0; }2. 带虚函数的类对象是什么布局? struct Base {Base() default;virtual ~Base() default;void FuncA() {}v…

Uni-app跟学笔记(五):uni-ui组件库的使用、项目打包(小程序、h5、APP)

文章目录 1)uni-ui组件库的使用2)项目打包1:微信小程序打包2:h5打包3:安卓打包 本博客为 uni-app 此门课的跟学笔记,目的是便于个人复习和对知识快速索引,源码素材可在均可在视频评论区找到 1&a…

Vue2 父子组件某一属性的双向绑定

原本&#xff1a;父组件使用props传值给孩子组件初始化&#xff0c;触发事件子组件使用$emit传值给父组件&#xff0c;很麻烦后来&#xff1a;使用computed和$event例子代码&#xff1a; <template><div class"box">grandpa <el-input v-model"…

‍❄️Unity 官方免费资源大放送!森林、沙漠、北极等 350+逼真的自然纹理 Megapack等你来拿

&#x1f333;350自然纹理 Megapack&#xff0c;免费获取&#xff01;&#x1f381; 你是否热爱游戏开发&#xff0c;却被昂贵的资源库所困扰&#xff1f;你是否渴望创造出令人惊叹的自然场景&#xff0c;却被有限的纹理素材所束缚&#xff1f;如果你的答案是肯定的&#xff0c…

01- Java概述

第1章 Java概述 1.1 Java语言发展历史&#xff08;记关键点&#xff09; Java诞生于SUN&#xff08;Stanford University Network&#xff09;&#xff0c;09年SUN被Oracle&#xff08;甲骨文&#xff09;收购。 Java之父是詹姆斯.高斯林(James Gosling)。 1996年发布JDK1.…

分布式思想

1、单体架构设计存在的问题 传统项目采用单体架构设计,虽然可以在一定的程度上解决企业问题,但是如果功能模块众多,并且将来需要二次开发.由于模块都是部署到同一台tomcat服务器中,如果其中某个模块代码出现了问题,将直接影响整个tomcat服务器运行. 这样的设计耦合性太高.不便…

【软件测试基础篇】第二节.黑盒测试中常见方法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言⼀、等价类法&#xff08;解决穷举问题&#xff09;二、边界值法&#xff08;解决边界限制问题&#xff09;三、正交表法&#xff08;解决多条件依赖问题&#…