mysql修改表的结构_MySQL修改表结构

我们在修改表字段类型和约束条件的时候,如果表中的字段已经有值了,但是你修改的这个类型和字段里边的值不匹配是不允许修改的,就比如说你当初设置字段的时候,字段的值是允许存空值,并且字段里边已经存储空值了,但是你后来又要修改这个字段不能存空值,那就会发生冲突,是不允许修改的,还有一个需要注意的是,需要修改的地方写新的,不需要修改的地方要原样的给抄下来,如果不原样抄下来那就恢复到系统给的默认配置

我现在要修改下图表里的年龄字段类型为int类型,并且约束条件是不允许为空

查看表结构

mysql> desc tab15;

修改字段类型和约束条件

mysql> alter table tab15

-> modify

-> 年龄 int(4) unsigned not null;//unsigned不需要修改的要原样抄下来

Query OK, 0 rows affected (0.01 sec)

查看表结构

mysql> desc tab15;

那我们在来做一个错误的示范,我现在给这个表里边允许为空的字段赋个空值,然后我在修改它不允许为空,我们看看效果

赋值的时候不允许为空的字段要赋值

mysql> insert into tab15 values(null,"haha","女",18,null,null);

Query OK, 1 row affected (0.00 sec)

查看表记录

mysql> select * from tab15;

接下来我要修改一下编号字段不允许为空,看看能修改成功吗

mysql> alter table tab15

-> modify

-> 编号 int(3) not null;

ERROR 1138 (22004): Invalid use of NULL value

解释:无效的空值,这字段里边已经有空值了,但是你又要修改这个字段的值不能为空,这就是冲突了,是不允许修改的

还有一个注意事项,修改字段类型和约束条件的时候,修改的写新的,不改的要原样的抄下来,就比如那个年龄字段我当初设置的时候是不能存负数,也不能赋空值,那现在如果我在想修改类型的时候,没有把约束的条件抄下来,那它就恢复到系统的默认配置,

mysql> alter table tab15

-> modify

-> 年龄 tinyint(4);//只修改了字段类型,原有的约束条件我没有抄下来

Query OK, 1 row affected (0.02 sec)

那我们在看看表结构

mysql> desc tab15;

字段原有的设置没有抄下来将会恢复到系统默认的配置

我们在修改表字段的时候,还可以调整字段的位置,比如说现在我想把职业字段调到编号字段的下边

mysql> alter table tab15

-> modify

-> 职业 varchar(50) after 编号;

Query OK, 0 rows affected (0.04 sec)

解释:只想调整位置也是把原先的类型都原样抄下来,然后指定放在那个字段的后边就可以了

查看表结构

mysql> desc tab15;

如果你觉得哪个字段的位置不合理,那你就可以通过这样的方法去调整位置,想调到第一个字段那就用first(第一),想调到某一个字段的下边,那就用after(后)修改字段名

基本语法

ALTERTABLE 表名

CHANGE 原字段名新字段名类型(宽度) 约束条件;

修改字段名字的时候,字段里边的值是不受影响的,但是也有几个注意事项,需要改变的写新的,不需要改变的就原样抄下来,不然它也会恢复到默认配置,修改字段名时也可以顺便修改字段的类型和约束条件,但如果修改的类型与约束条件与字段里边的值发生冲突时也是不允许修改

我现在要把这个表的职业字段的名字修改一下,修改成家庭地址

修改字段名

mysql> alter table tab15

-> change 职业 家庭地址 varchar(50) after 年龄; //顺便调整到年龄字段后边

Query OK, 0 rows affected (0.06 sec)

查看表结构

mysql> desc tab15;

修改字段名的时候,可以修改字段的类型,也可以设置约束条件,但是不要和原有字段里边的值发生冲突

删除字段名

基本语法

ALTERTABLE表名

DROP字段名

删除表字段的时候,如果表字段里边有值的话,那值也就没了

删除表里的电话字段

mysql> alter table tab15

-> drop 电话;

Query OK, 0 rows affected (0.06 sec)

查看表结构

mysql> desc tab15;

要是想同时删除多个字段的话,用逗号分隔

mysql> alter table tab15

-> drop 年龄,//字段之间用逗号分隔

-> drop 家庭地址;

Query OK, 0 rows affected (0.05 sec)

查看表结构

mysql> desc tab15;

修改表名

基本语法

ALTERTABLE表名

RENAME新表名;//用的关键字是rename

修改tab15表的名字为haha

mysql> alter table tab15

-> rename haha;

Query OK, 0 rows affected (0.00 sec)

查看表

mysql> show tables;

查看表结构

mysql> desc haha;

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

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

相关文章

导入其他spring模块配置

列如下图中有两个spring的配置文件&#xff0c;我们想把上面的配置文件导入到下面的文件中去&#xff0c;该如何操作&#xff1a; 打开下面的配置文件&#xff0c;配置属性import,在import的resource配置上面配置文件的路径就可以了&#xff0c;如下&#xff1a; <import …

vs2019编写Linux c/c++项目

最近一直在阅读ovs的源码&#xff0c;看到用户态代码的时候&#xff0c;需要对用户态的代码进行调试&#xff0c;一开始想直接使用linux中的GDB进行调试&#xff0c;但是ovs的工程太过于复杂&#xff0c;从网上找了些文章&#xff0c;发现vs2017能够支持linux c程序的调试&…

mysql workbench 6.2_MySQL Workbench 6.2.4 下载 因为移动网络打不开官方也可能是国内网络问题 备用自己...

linux下好用的mysql gui 不多啊&#xff0c;除非在wine下 不太习惯phpmyadmin除了这个貌似在linux的就不多了&#xff0c;这里就用官方的管理工具吧win版本&#xff1a;http://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-6.2.4-win32.msihttp://dev…

spring属性注入的set方法注入

1、值注入 创建我们要使用的User类&#xff1a; package cn.it.bean;public class User {private String name;Overridepublic String toString() {return "User [name" name ", age" age "]";}private int age; // private Car car; // /…

MySQLdb安装的错误说明

1、从http://www.codegood.com/上下载到国外有人编译好的&#xff0c;自己就免去这一环节 2、import MySQLdb时出现如下错误&#xff1a; Warning (fromwarnings module): File "C:\Python26\lib\site-packages\MySQLdb\__init__.py", line 34fromsets importImmuta…

excel oledb mysql_OLEDB操作Excel

使用OLEDB操作Excel 的方法OleDbConnection conn null;try{//fileName 表示要操纵的Excel的文件路径&#xff0c;如果excel不存在&#xff0c;现创建它&#xff0c;可以通过模版文件复制创建。string strConn;strConn "ProviderMicrosoft.Jet.OLEDB.4.0;" "Da…

系统蓝屏的几种姿势

前言 在 蓝屏&#xff08;BSOD&#xff09;转储设置&#xff0c;看本文就够了&#xff01; 这篇文章里比较详细的介绍了蓝屏转储设置。做好设置后&#xff0c;我们就可以在需要的时候使系统蓝屏了。这样我们就可以拿到一份系统转储&#xff0c;供我们分析问题了。本文介绍几种可…

Java基础:int和Integer的区别

1、基本使用对比&#xff1a; &#xff08;1&#xff09;&#xff1a;Integer是int的包装类&#xff1b;int是基本数据类型&#xff1b; &#xff08;2&#xff09;&#xff1a;Integer变量必须实例化后才能使用&#xff1b;int变量不需要&#xff1b; &#xff08;3&#xff…

nginx lua mysql 性能_深入浅出 nginx lua 为什么高性能

最近很多人问我nginx lua的优势是什么&#xff1f;为什么&#xff1f;一、同步和异步、阻塞和非阻塞如果要说清楚这个问题首先要了解&#xff1a;同步和异步、阻塞和非阻塞的关系同步&#xff1a;php、java的正常代码都是同步执行的异步&#xff1a;javascript的回调函数就是异…

我们的生命,不因别人的喜欢而存在

我们的生命&#xff0c;不因别人的喜欢而存在 过去咱们中国人讲的是“路遥知马力&#xff0c;日久见人心”“人不可貌相&#xff0c;海水不可斗量”&#xff0c;比较注重的是心灵美。大家都在一个村庄住着&#xff0c;谁是个什么人&#xff0c;彼此心里都有数。生活节奏慢&…

RtlAdjustPrivilege() 提权函数

RtlAdjustPrivilege(SE_DEBUG_NAME,1,0,NULL);这玩意是在 NTDLL.DLL 里的一个不为人知的函数,MS没有公开,原因就是这玩意实在是太NB了,以至于不需要任何其他函数的帮助,仅凭这一个函数就可以获得进程ACL的任意权限! 先来看看这个函数的定义(Winehq给出)&#xff1a; NTSTATUS …

求两个数字的乘积,如果大于0,说明两个数字同号,如果小于0,说明两个数字异号,如果等于0,说明其中一个是0

学了java基础东西&#xff0c;就写了这个编程&#xff0c;求两个数字的乘积&#xff0c;如果大于0&#xff0c;说明两个数字同号&#xff0c;如果小于0&#xff0c;说明两个数字异号&#xff0c;如果等于0&#xff0c;说明其中一个是0 首先程序要求我们输入两个数字&#xff0c…

mysql gtid 开启失败_mysql开启GTID跳过错误的方法【转】

1、数据库版本MySQL> select version()-> ;-------------------------------------------| version() |-------------------------------------------| 5.7.17 |------------------------------------…

处理机流水线------经典五段流水线

文章是在我遇到这部分问题时查找的所有感觉挺好的内容的整合&#xff08;全部是转载的&#xff09; 流水线基础理论就不加了&#xff0c;最新的处理器流水线处理的机制也没有&#xff08;一般以用不到&#xff09;&#xff0c;想了解去随便找个芯片厂商官网下个手册自己查。 这…

mysql 复制用户_MySQL修改复制用户及密码

在生产环境中有时候需要修改复制用户账户的密码&#xff0c;比如密码遗失&#xff0c;或者由于多个不同的复制用户想统一为单独一个复制账户。对于这些操作应尽可能慎重以避免操作不同导致主从不一致而需要进行修复。本文描述了修改复制账户密码以及变更复制账户。 1、更改复制…

MUL,IMUL指令溢出

MUL 用途&#xff1a; 该指令完成两个无符号值的乘法运算。   语法结构/举例   mul regB|memB   mul bl   mul regW|memW   mul [aword]   仅80386有&#xff1a;   mul regDW|memDW mul ebx   示范代码   DATASEG   multiplicand dw 1024   multiplier …

求1+2+......+100的和

如何求12…100的和&#xff1f;有很多方法&#xff0c;这里我介绍用三种循环方法去求12…100的和 方法一&#xff1a;for循环&#xff1a; 代码如下&#xff1a; /**1. 求12......100的和2. 方法1&#xff1a;for循环*/ public class Demo2 {public static void main(String[…

台湾游戏企业抢滩大陆 研发成竞争核心

近日&#xff0c;台湾游戏企业进驻大陆设立研发机构、产品同大陆企业联合运营、大陆企业的产品进入台湾联运&#xff0c;以及最新的政策新闻&#xff0c;都将大陆和台湾这对本是同根的产业兄弟推上了风口浪尖。 在正在举行的“第二届中国优秀游戏制作人评选大赛”上&#xff0c…

phpstud如何安装mysql新版_MySQL_图解MySQL数据库的安装和操作,一、MySQL下载与安装 1、 - phpStudy...

图解MySQL数据库的安装和操作一、MySQL下载与安装1、下载介绍MySQL相信大家一定听说过&#xff0c;如果不知道它是干什么的&#xff0c;可以去google一下。MySQL的大本营&#xff1a;http://www.mysql.com/MySQL的下载地址&#xff1a;http://dev.mysql.com/downloads/ 因为要从…

erlang小技巧

.列表操作 lists:foreach(fun(X) -> io:format("E~p~n",[X]) end, [1,2,3]). lists:duplicate(10, 16#f). % [15,15,15,15,15,15,15,15,15,15] "abc-123" -> "abc" no_vsn(Name) -> lists:takewhile(fun($-)->false;(_)-> true …