MySQL命令梳理_MySQL操作命令梳理(2)

一、表操作

在mysql运维操作中会经常使用到alter这个修改表的命令,alter tables允许修改一个现有表的结构,比如增加或删除列、创造或消去索引、改变现有列的类型、或重新命名列或表本身,也能改变表的注释和表的类型。

下面就针对alter修改命令的使用做一梳理:

在mysql运维操作中会经常使用到alter这个修改表的命令,alter tables允许修改一个现有表的结构,比如增加或删除列、创造或消去索引、改变现有列的类型、或重新命名列或表本身,也能改变表的注释和表的类型。

下面就针对alter修改命令的使用做一梳理:

1、删除列

alter table 表名 DROP 列名; //或者 alter table 表名 drop column 列名;

-------------------------------------------------------------------------------------drop database 库名;//删除库

drop table 表名; //删除表

delete from 表名; //清空表中所有数据,但这张表没有删除,保留的是空表。

delete from 表名 where ...; //删除表中字段

------------------------------------------------------------------------------------

2、增加列

alter table 表名 ADD 列名 列的属性(如INT NOT NULL COMMENT '注释说明')

3、修改列的类型信息。

alter table 表名 CHANGE 列名 新列名 新列属性;

alter table 表名 CHANGE 列名 新列名(这里可以用和原来列同名即可) BIGINT NOT NULL COMMENT '注释说明'

4、重命名列

alter table 表名 CHANGE 列名 新列名 BIGINT NOT NULL COMMENT '注释说明'

5、重命名表

alter table 表名 RENAME 表新名

6、删除表中主键

alter table 表名 drop primary key-------------------------------------------------------------------------------------如若删除带自增属性的主键,那么要先删除自增长,再删除主键

Alter table haha changeid id int(10); //删除自增长

Alter table haha drop primary key; //删除主建

-------------------------------------------------------------------------------------

7、添加主键

alter table 表名 ADD CONSTRAINT PK_表名 PRIMARY KEY(列名1,列名2)-------------------------------------------------------------------------------------Alter table haha add primary key(id); //将haha表的id列添加主键

Alter table haha change id id int(10) not null auto_increment; //自增长属性

-------------------------------------------------------------------------------------sql中constraint前缀的用意(PK、UK、DF、CK、FK)

--主键

constraint PK_字段 primary key(字段),--唯一约束

constraint UK_字段 unique key(字段),--默认约束

constrint DF_字段 default('默认值') for字段,--检查约束

constraint CK_字段 check(约束。如:len(字段)>1),--主外键关系

constraint FK_主表_从表 foreign(外键字段) references 主表(主表主键字段)

8、添加/创建索引

alter table 表名 add index 索引名 列名; //普通索引

ALTER TABLE 表名 ADD UNIQUE index 索引名 (列名1,列名2); //联合索引

ALTER TABLE 表名 ADD PRIMARY index KEY 索引名 列名; //主键索引

-------------------------------------------------------------------------------------SHOW INDEX FROM 表名字;//查询索引

删除索引可以使用ALTER TABLE或DROP INDEX语句来实现。DROP INDEX可以在ALTER TABLE内部作为一条语句处理

DROP index 索引名 ON 表名字 列名;//删除普通索引

ALTER TABLE 表名 DROP INDEX 索引名 列名; //删除普通索引

ALTER TABLE 表名 DROP UNIQUE 索引名 (列名1,列名2); //删除联合索引

ALTER TABLE 表名 DROP PRIMARY KEY 索引名 列名; //删除主键索引

-------------------------------------------------------------------------------------

9、添加唯一限制条件索引

alter table 表名 add unique emp_name2(cardnumber); //empname 类型 为String 字符串类型

10、创建联合唯一索引

alter table 表名 ADD UNIQUE INDEX 索引名 (列名1,列名2);

alter ignore table 表名 add unique index(user_id,user_name);//它会删除重复的记录(别怕,会保留一条),然后建立唯一索引,高效而且人性化.(慎用)

11、修改字段属性

alter table 表名 modify column 字段名 类型

alter table 表名 modify column 字段1 类型,字段2 类型

例如:将class表的name列属性改成varchar(100)

alter table class modify column name varchar(100);

或者:

alter table 表名 change 列名 列名 varchar(100);

alter table class change name name varchar(100)

例:

上面提到了使用alter命令修改表名,修改列名;那么修改字段值,就需要使用update命令,如下:

mysql> select *from huanqiu.haha;+----+-----------+

| id | name |

+----+-----------+

| 1 | wangshibo |

| 11 | ouou |

| 19 | hahahahha |

+----+-----------+

3 rows in set (0.00sec)

mysql> update huanqiu.haha set name="wangshikui" where id=11;

Query OK,1 row affected (0.00sec)

Rows matched:1 Changed: 1 Warnings: 0mysql> select *from huanqiu.haha;+----+------------+

| id | name |

+----+------------+

| 1 | wangshibo |

| 11 | wangshikui |

| 19 | hahahahha |

+----+------------+

3 rows in set (0.01 sec)

1、修改root登陆密码:

mysql> update mysql.user set password=password("654321") where host='192.168.1.101' and user="root";

update 表名 set 列名="新的字段值"[where 限制条件1 and 限制条件1];

update 表名 set 列名1="新的字段值",列名2="新的字段值"[where 限制条件1 and 限制条件1] [ORDER BY ...] [LIMIT row_count];

insert into 表名 values(所有字段的插入值);

insert into 表名(指定字段) values(指定字段);

insert into 表名 values(所有字段的插入值),(所有字段的插入值),(所有字段的插入值);//批量插入

mysql> select *from huanqiu.haha;+----+------------+

| id | name |

+----+------------+

| 11 | wangshikui |

+----+------------+

1 row in set (0.00sec)

mysql> insert into huanqiu.haha values(1,"wangshibo"),(2,"wangshikui"),(3,"wangjuan"),(4,"wangman");

Query OK,4 rows affected (0.00sec)

Records:4 Duplicates: 0 Warnings: 0mysql> select *from huanqiu.haha;+----+------------+

| id | name |

+----+------------+

| 1 | wangshibo |

| 2 | wangshikui |

| 3 | wangjuan |

| 4 | wangman |

| 11 | wangshikui |

+----+------------+

2、创建操作

创建表时指定AUTO_INCREMENT自增值的初始值:

mysql> CREATE TABLE 表名 (ID INT(5) PRIMARY KEY AUTO_INCREMENT)AUTO_INCREMENT=100;

通过ALTER TABLE 修改初始值(但要大于表中的AUTO_INCREMENT自增值,否则设置无效):

mysql>ATLER TABLE 表名 AUTO_INCREMENT=100;

如果自增序列的最大值被删除了,则在插入新记录时,该值被重用。

就是说如果表中原本有AUTO_INCREMENT属性值连续为78、100的值,但100这个数据被删除了,下此再添加数据的时候自增值为101,100被重用了。

即使在你将整个表中的所有数据delete清空后,之前的自增序列最大值还是会被重用。

解决办法是使用下面命令:

ATLER TABLE 表名 AUTO_INCREMENT=0; //重新设置自增初始值

设置AUTO_INCREMENT_INCREMENT以及AUTO_INCREMENT_offset用户变量值(重启MySQL之后,这些修改会恢复为初始值1):

mysql>SET auto_increment_increment=10; //自增量每次增加的值改为10,

mysql>SET auto_increment_offset=2; //第一次加载数值时的偏移值的个位值

mysql>SHOW VARIABLES LIKE 'AUTO_INC%'; //查看修改后变量的值

mysql>SHOW TABLE STATUS FROM NAME_DB; //显示数据库NAME_DB中所有表的信息

mysql>SHOW CREATE TABLE NAME_TBL; //显示表NAME_TBL创建时的信息

mysql>SHOW VARIABLES LIKE 'AUTO_INC%'; //显示MySQL的AUTO_INC开头的用户会话变量(SHOW GLOBAL VARIABLES)

+--------------------------+-------+

| Variable_name | Value |

+--------------------------+-------+

| auto_increment_increment | 1 |

| auto_increment_offset | 1 |

+--------------------------+-------+

2 rows in set (0.00 sec)

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

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

相关文章

java 进度条_进度条Java

你必须使用线程.设计一个实现Runnable接口的类,它将更新这样的值.class ProgressBarUpdator implements java.lang.Runnable {/*** Progress bar that shows the current status*/private javax.swing.JProgressBar jpb null;/*** Progress bar value*/private java.lang.Inte…

java 文件存储_文件存储学生信息(JavaIO流)

package com;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Scanner;/*** author Administrator*1.要求:有五个学生,每个学生有姓名、年龄 、成绩三个属性&a…

位运算java_Java中的位运算

Java中的位运算,说实话,工作了两年的时间里,从来没有用过一次,因为平时都是些的是业务代码,很少接触比较底层的东西,我记得第一次在代码中看到还是在HashMap的Hash算法中看到的,这次重拾Java基础…

java蓝桥杯dfs_第七届 蓝桥杯决赛 Java B组 打靶 解题报告(DFS,回溯,全排列)-Go语言中文社区...

题目:打靶小明参加X星球的打靶比赛。比赛使用电子感应计分系统。其中有一局,小明得了96分。这局小明共打了6发子弹,没有脱靶。但望远镜看过去,只有3个弹孔。显然,有些子弹准确地穿过了前边的弹孔。不同环数得分是这样设…

guid mysql_关于MySQL:MySQL-如何搜索GUID

我正在使用第三方.NET库(Rhino Security),将其标识符存储为mysql数据库中binary(16)字段中的向导。 一切都可以从该应用程序完美地工作,但是当我尝试通过查询编辑器(对于MySQL为TOAD)手动运行查询时,没有行返回我知道存在的标识符。 例如&…

java 单例 生命周期_Rhythmk 一步一步学 JAVA (13) Spring-2 之Ben懒加载以及生命周期,单例...

1、定义Demo类:package com.rhythmk.spring;public class User {public void Init (){System.out.println("User 对象被 创建!");}// 计数器public int Count0;public void Say(){this.Count;System.out.println("User 被"this.Coun…

java 高级泛型_java泛型的高级应用

展开全部在上面的例子中,由于没有限制class GenericsFoo类型持有者T的范围,实际上这里32313133353236313431303231363533e59b9ee7ad9431333339666666的限定类型相当于Object,这和“Object泛型”实质是一样的。限制比如我们要限制T为集合接口类…

java窗体线条切换消失_java – 如何更改apache poi生成的图表不使用平滑线条并将空单元格显示为间隙?...

我使用的是POI 3.12-beta1,并且代码可以在图例中创建包含多个数据集和命名系列的折线图.但是,poi中折线图的默认设置会生成一条已在数据点上平滑的线.空值也被绘制为0,但我们希望这些线在第一列停止,其中有一个空单元格.一旦在xlsx文件中呈现并更改这些设置,我就可以进入图表属…

java正则表达式 问号_正则表达式问号的四种用法详解

正则表达式问号的四种用法详解原文符号因为?在正则表达式中有特殊的含义,所以如果想匹配?本身,则需要转义,\?有无量词问号可以表示重复前面内容的0次或一次,也就是要么不出现,要么出现一次。非贪婪匹配贪婪匹配在满…

java alert跳页面_JavaScript中通过提示框跳转页面的方法

通过提示框跳转页面具体代码如下所示:Documentwindow.onload function(){ //设置当页面加载时执行var btn document.getElementsByTagName("button")[] //获取btn元素btn.onclick function(){ //给button加上一个点击事件var answer confirm("是否…

java jsp if else if_jsp页面使用if else语句 | 学步园

jsp页面嵌入java语句使用即可,但是在使用if else语句时一定要注意使用是标点的使用,在语句中分号不能写,不符合jsp页面的语法规则,若多写了则会报错:如下:{name: priceRA, type: string}, {name: priceRB, type: string}, {name: priceRC, type: string},{name: priceRD, typ…

mysql 优化300例_mysql的limit优化实例

测试环境操作系统: debian linux服务器版本: Mysql 5.0.24Mysql数据库的Qcache缓存关闭数据库表testtable的参数:类型: MyISAM 大小: >80MB 记录规模: >50000 字段数: >25个字段id是主键 leibie字段上建有索引进行数据分段测试1>SQL不带where条件的测试1…

mysql+百万+中间表_MYSQL优化

MYSQL优化是一个非常大的课题,这篇文章主要介绍了跟MYSQL相关的4个方面,如果想深入研究可以查下相关资料。一、服务器级别优化二、操作系统级别优化三、MYSQL级别优化四、SQL级别优化一、服务器级别优化1.服务器选型SUN小型机、DELL730xd、HPDL380、IBM3…

java kafka 拉取_java获取kafka consumer lag

maven依赖org.apache.kafkakafka-clients0.10.1.0注意:kafka-clients版本需要0.10.1.0以上,因为调用了新增接口endOffsets;laglogsize-offsetlogsize通过consumer的endOffsets接口获得;offset通过consumer的committed接口获得;imp…

java开源图像处理ku_83 项开源视觉 SLAM 方案够你用了吗?

原标题:83 项开源视觉 SLAM 方案够你用了吗?公众号:3D视觉工坊主要关注:3D视觉算法、SLAM、vSLAM、计算机视觉、深度学习、自动驾驶、图像处理以及技术干货分享运营者和嘉宾介绍:运营者来自国内一线大厂的算法工程师&a…

java 方法的拆分_java – 字符串拆分和比较 – 最快的方法

>将输入读入byte []数组以将指针保持在代码的一侧.>逐字节读取,计算整数元素&#xff1a;int b inputBytes[p];int d b - 0;if (0 < d) {if (d < 9) {element element * 10 d;} else {// b :}} else {// b ,// add element to the hash; element 0;...}if (…

java sql异常_java.sql.SQLException: Io 异常: Got minus one from a

java.sql.SQLException: Io 异常: Got minus one from a read callat oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)at oracle.jdbc.driver.DatabaseError.thro…

java 拦截器ajax_(转)拦截器深入实践 - JAVA XML JAVASCRIPT AJAX CSS - BlogJava

Interceptor的定义我们来看一下Interceptor的接口的定义&#xff1a;Java代码 publicinterfaceInterceptorextendsSerializable {/*** Called to let an interceptor clean up any resources it has allocated.*/voiddestroy();/*** Called after an interceptor is created, b…

php学的是什么意思_为什么要学习PHP?到底什么是PHP?

为什么要学习PHP?到底什么是PHP?PHP可以做什么?相信这样的问题困扰着很多的人&#xff0c;在我没工作之前&#xff0c;都没有听说过PHP&#xff0c;自从工作后&#xff0c;慢慢接触到代码&#xff0c;慢慢知道什么是PHP。PHP是做网站一种语言&#xff0c;很多工程师都使用PH…

php 多数据库联合查询,php如何同时连接多个数据库_PHP教程

下面是一个函数能够保证连接多个数据库的下不同的表的函数&#xff0c;可以收藏一下&#xff0c;比较实用&#xff0c;测试过是有用的。function mysql_oper($oper,$db,$table,$where1,$limit10){$connmysql_connect(localhost,like,admin,true) or mysql_error();mysql_select…