【MySql】mysql 表的常规管理

记录一些简单的表的管理知识,方便使用!

mysql> desc yql9; 

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

| Field | Type    | Null | Key | Default | Extra |

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

| id    | int(11) | YES  |     | NULL    |       |

| val   | char(5) | YES  |     | NULL    |       |

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

2 rows in set (0.00 sec)

1 添加字段 ALTER TABLE tabname ADD field_name field_type;

mysql> alter table yql9 add new_id int(5) unsigned  default 0 not null auto_increment ,add primary key (new_id);

ERROR 1067 (42000): Invalid default value for 'new_id'

mysql> alter table yql9 add new_id int(5) unsigned  not null auto_increment ,add primary key (new_id);

Query OK, 0 rows affected (0.00 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> alter table yql9 add gmt_created timestamp;

Query OK, 0 rows affected (0.00 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> desc yql9;

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

| Field       | Type            | Null | Key | Default           | Extra                       |

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

| id          | int(11)         | YES  |     | NULL              |                             |

| val         | char(5)         | YES  |     | NULL              |                             |

| new_id      | int(5) unsigned | NO   | PRI | NULL              | auto_increment              |

| gmt_created | timestamp       | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |

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

4 rows in set (0.01 sec)

2 删除字段  alter table tabname drop field_name;

mysql> alter table yql9 drop column new_id;

Query OK, 0 rows affected (0.01 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> desc yql9;

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

| Field       | Type      | Null | Key | Default           | Extra                       |

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

| id          | int(11)   | YES  |     | NULL              |                             |

| val         | char(5)   | YES  |     | NULL              |                             |

| gmt_created | timestamp | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |

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

3 rows in set (0.00 sec)

mysql> alter table yangql9 drop v;

Query OK, 0 rows affected (0.00 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> desc yangql9;

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

| Field       | Type      | Null | Key | Default           | Extra                       |

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

| id          | int(11)   | NO   | PRI | 0                 |                             |

| gmt_created | timestamp | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |

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

2 rows in set (0.00 sec)

3 修改字段的数据类型 alter table tabname change old_field_name new_field_name field_type;

mysql> alter table yql9 change val v integer;

Query OK, 0 rows affected (0.00 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> desc yql9;

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

| Field       | Type      | Null | Key | Default           | Extra                       |

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

| id          | int(11)   | YES  |     | NULL              |                             |

| v           | int(11)   | YES  |     | NULL              |                             |

| gmt_created | timestamp | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |

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

3 rows in set (0.00 sec)

mysql> alter table yql9 change v v tinyint not null default 0;

Query OK, 0 rows affected (0.00 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> desc yql9;

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

| Field       | Type       | Null | Key | Default           | Extra                       |

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

| id          | int(11)    | YES  |     | NULL              |                             |

| v           | tinyint(4) | NO   |     | 0                 |                             |

| gmt_created | timestamp  | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |

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

3 rows in set (0.00 sec)

4 重命名表

mysql> alter  table yql9 rename yangql9;

Query OK, 0 rows affected (0.01 sec)

5 添加索引 alter table tabname add index /create index idxname on tabname(column_name);

mysql> alter table yangql9 add index id_idx (id);

Query OK, 0 rows affected (0.03 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> desc yangql9;

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

| Field       | Type       | Null | Key | Default           | Extra                       |

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

| id          | int(11)    | YES  | MUL | NULL              |                             |

| v           | tinyint(4) | NO   |     | 0                 |                             |

| gmt_created | timestamp  | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |

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

3 rows in set (0.00 sec)

6 添加主键

mysql> alter table yangql9 add primary key(id);  

Query OK, 0 rows affected (0.00 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> desc yangql9;

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

| Field       | Type       | Null | Key | Default           | Extra                       |

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

| id          | int(11)    | NO   | PRI | 0                 |                             |

| v           | tinyint(4) | NO   |     | 0                 |                             |

| gmt_created | timestamp  | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |

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

3 rows in set (0.00 sec)

时间: 2024-11-16 07:55:11

【MySql】mysql 表的常规管理的相关文章

MySQL数据库系统的常规管理介绍

mysql|数据|数据库 在运行数据库系统时, MySQL的使用相当简单,且进行MySQL安装和使用所需的工作也很少.然而,不论您是什么级别的专家,MySQL的安装程序都不能自动运行.必须有人来监视它以确保它能顺利和有效地运行,有时还必须知道当问题出现时应该做什么.而MySQL的管理有自己独特的需求,本文将帮助您熟悉这些内容. 管理职责概述 MySQL数据库系统由几部分组成.您应该熟悉这些组成部分的内容和每个部分的目的.这需要您了解所管理系统的特征以及帮助您进行管理的可用工具.如果您花时间去了解

MySQL数据表在phpmyadmin中的强制修复

是数据库就难免出错,出了错就肯定需要修复. phpmyadmin是很好的mysql管理工具,他里面就有针对某个数据库中某个表的修复功能.但是当这个表已经无法打开的时候就根本看不到这个操作(实际上是web连接). 其实随便找一个正常的数据库中正常的数据表,我们看看这个修复连接:http://localhost/phpmyadmin/sql.php?lang=zh-gb2312&server=1&db=mydb&table=mytable&goto=tbl_properties

总结MySQL建表、查询优化的一些实用小技巧

本篇文章是对MySQL建表以及查询优化的一些实用小技巧进行了详细的分析介绍,需要的朋友参考下   MySQL建表阶段是非常重要的一个环节,表结构的好坏.优劣直接影响着后续的管理维护,赶在明天上班前分享总结个人MySQL建表.MySQL查询优化积累的一些实用小技巧. 技巧一.数据表冗余记录添加时间与更新时间 我们用到的很多数据表大多情况下都会有表记录的"添加时间 (add_time)",我建议大家再新增一个记录"更新时间(update_time)"字段,在我的工作里需

mysql订单表如何设计?

mysql订单表如何设计? 商品表和订单表 . 通过一个表来关联. 那删除了商品,相关联的订单表如何显示出这个已经删除的商品? 订单表需要冗余商品名.商品编号.价格等基本信息. 不能只保存一个商品主键,这个是订单表的基本原则,同时生成了订单的商品是不能删除的. 订单表中引用商品表主键,删除使用状态假删. 同时引入商品的状态,总之就是反范式设计,保证一次可以获得全部要的状态,不要进行多表jion. 订单:  分为以下几种        订单凭证(接到客户的订单表),采购订单, 销售订单,委外订单

【重磅推荐】MySQL大表优化方案(最全面)

当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的.而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量: 字段 尽量使用TINYINT.SMALLINT.MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED VARCHAR的

总结MySQL建表、查询优化的一些实用小技巧_Mysql

MySQL建表阶段是非常重要的一个环节,表结构的好坏.优劣直接影响着后续的管理维护,赶在明天上班前分享总结个人MySQL建表.MySQL查询优化积累的一些实用小技巧. 技巧一.数据表冗余记录添加时间与更新时间 我们用到的很多数据表大多情况下都会有表记录的"添加时间(add_time)",我建议大家再新增一个记录"更新时间(update_time)"字段,在我的工作里需要为市场部.运营部等建立各种报表,而很多报表里的数据都是需要到大记录表里去查询的,如果直接查询大表的

mysql更改表引擎INNODB为MyISAM的方法总结

常见的mysql表引擎有INNODB和MyISAM,主要的区别是INNODB适合频繁写数据库操作,MyISAM适合读取数据库的情况多一点,如何把表引擎INNODB更改为MyISAM呢? 使用以下mysql sql语句,可以给表设定数据库引擎: ALTER TABLE `wp_posts` ENGINE = MyISAM; 在需要使用mysql的全文索引(FULLTEXT index)的时候,这张表的数据库引擎必须是MyISAM类型.关于INNODB为MyISAM数据库引擎有什么具体区别 例子 修

mysql数据库用户和权限管理记录

一.MySQL用户的基本说明: 1.1 用户的基本结构 MySQL的用户:用户名@主机 ■用户名:16个字符以内 ■主机:可以是主机名.IP地址.网络地址等 主机名:www.111cn.net,localhost IP:192.168.0.1 网络地址:172.16.0.0/255.255.0.0 主机还支持通配符:%和_ 172.16.%.% %.111cn.net 注意:对于包含了主机名的用户,MySQL会尝试反解析主机名,此时可能会造成连接非常慢,如果反解析的IP地址与连接点的地址不同,还

MySQL传输表空间小结(r12笔记第2天)

  在MySQL中如果要迁移一个表导另外一个服务器/环境中,常规的做法就是使用备份工具备份,比如mysqldump,然后拷贝备份到目标服务器或者环境导入.如果某一个表数据量很大,导出dump文件很大的情况下,使用导出导入工具其实会花费不少的时间.    怎么样提高效率呢,可以有一种想法就是直接拷贝数据文件到目标环境,当然在早期版本中这么做是不可取的,因为会有很多关联数据在ibdata中,InnoDB的数据存在对应的数据字典信息,是存放在共享表空间中,无法直接剥离出来,而在5.6/5.7中,就推出