一、表操作

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

MySQL命令梳理_MySQL操作命令梳理(2)相关推荐

  1. MySQL命令梳理_MySQL操作命令梳理(1)

    一.索引 1.创建索引 索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引.以下命令语句分别展示了如何创建主键索引(PRIM ...

  2. mysql alter更新_MySQL 操作命令梳理(2)-alter(update、insert)

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

  3. mysql命令程序_MySQL命令大全经典版

    以下的文章主要介绍的是MySQL命令大全,其中包括MySQL数据库的常用命令,修改MySQL数据库中实际root 密码以及对grant的实际应用的介绍,下面就是文章的具体内容描述,望你会有所收获. M ...

  4. 用mysql命令还原_mysql——数据还原——使用mysql命令还原

    备份文件中通常包含create语句和insert语句,mysql命令可以执行备份文件中的create语句和insert语句: 通过create语句来创建数据库和表,通过insert语句来插入备份的数据 ...

  5. mysql命令参数_MySQL命令行参数完整版

    MySQL命令行参数完整版 mysql教程支持下面的选项: ---help,-? 显示帮助消息并退出. --batch,-B 打印结果,使用tab作为列间隔符,每个行占用新的一行.使用该选项,则mys ...

  6. 微mysql命令行_mysql命令大全

    mysql命令大全 02-05 启动:net start mySql; 进入:mysql -u root -p/mysql -h localhost -u root -p databaseName; ...

  7. mysql 命令 中文_mysql命令行中文问题

    问题:在mysql命令行执行 source xxx.sql文件,报告中文字符串导致的语法错误. 原因:一般情况我们用记事本编辑的文件保存默认式是:ANSI,而mysql环境配置中的默认编码一般是utf ...

  8. mysql 授权与回收权限_MySQL 操作命令梳理(4)-- grant授权和revoke回收权限

    在mysql维护工作中,做好权限管理是一个很重要的环节.下面对mysql权限操作进行梳理: mysql的权限命令是grant,权限撤销的命令时revoke: grant授权格式:grant 权限列表 ...

  9. mysql 命令 字符集_MySQL的字符集操作命令总结

    以下均在mysql 5.5命令行中运行通过: 查看MySQL支持的字符集: show charset; 查看字符集: status 下面的更具体: SHOW VARIABLES LIKE 'chara ...

最新文章

  1. python中数据类型为list_python_数据类型_list
  2. ElasticSearch + xpack 使用
  3. bzoj1799 数位dp
  4. BZOJ3823 : 定情信物
  5. php支付密码控件,vue支付密码的图文实例
  6. 10.32/10.33 rsync通过服务同步 10.34 linux系统日志 screen工具
  7. 计算机专业相关的毕业设计论文合集免费下载
  8. 计算机组装 毕业设计,毕业设计(论文)--计算机组装与维护 .doc
  9. Win Form中限制TextBox只能输入数字
  10. Objective-C浅拷贝和深拷贝
  11. 软考中级-数据库系统工程师复习大纲
  12. echarts 生成 迁徙图_利用百度Echarts开发人口迁徙图(产品流向图)
  13. K3S配置IPV6环境
  14. C# webBrowser打开网页出现脚本错误解决
  15. ODOO13 开发教程三 开始你的第一个模块
  16. mysql单表查询详解
  17. html5之DeviceOrientation 手机重力与方向感应
  18. javaFX创建一个弹出窗口
  19. 中国省市县数据库(201905统计局)+ 自关联查询
  20. Tyvj P1153 间谍网络

热门文章

  1. Cloud一分钟 | 华云数据中标上药控股私有云千万级项目; 总投资90亿元的中国移动厦门数据中心,一期电源工程项目候选人公示...
  2. 杭州南江机器人现在是否量产_传亚马逊正开发家庭机器人,高约1米可移动
  3. request用法_3分钟短文:说说Laravel页面会话之间的数据保存Session用法
  4. php有多少种占位符,php 占位符问题?
  5. elementui更改el-table表头背景颜色和字体颜色
  6. windows mysql5.7 忘记root密码
  7. Apache ActiveMQ 各个版本所依赖的JDK版本
  8. oracle中如何创建表的自增ID(通过序列)
  9. Jenkins修改管理员密码
  10. css-结构伪类选择器