Mysql修改数据表实战

一 将数据表tb_dept3改名为tb_deptment3

1 使用ALTER TABLE将表tb_dept3改名为tb_deptment3,SQL语句如下:

mysql> ALTER TABLE tb_dept3 RENAME tb_deptment3;
Query OK, 0 rows affected (0.10 sec)

二 将数据表tb_dept1中name字段的数据类型由VARCHAR(22)修改成VARCHAR(30)

1 执行修改表名操作之前,使用DESC查看tb_dept表结构,结果如下:

mysql> DESC tb_dept1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(22) | NO   |     | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

可以看到现在name字段的数据类型为VARCHAR(22),下面修改其类型。输入如下SQL语句并执行:

mysql> ALTER TABLE tb_dept1 MODIFY name VARCHAR(30);
Query OK, 0 rows affected (0.33 sec)
Records: 0  Duplicates: 0  Warnings: 0

三 将数据表tb_dept1中的location字段名称改为loc,数据类型保持不变,SQL语句如下

mysql> ALTER TABLE tb_dept1 CHANGE location loc VARCHAR(50);
Query OK, 0 rows affected (0.07 sec)
Records: 0  Duplicates: 0  Warnings: 0

四 将数据表tb_dept1中的loc字段名称改为location,同时将数据类型变为VARCHAR(60),SQL语句如下

mysql> ALTER TABLE tb_dept1 CHANGE loc location VARCHAR(60);
Query OK, 0 rows affected (0.07 sec)
Records: 0  Duplicates: 0  Warnings: 0

五 在数据表tb_dept1中添加一个没有完整性约束的INT类型的字段managerId(部门经理编号),SQL语句如下

mysql> ALTER TABLE tb_dept1 ADD managerId INT(10);
Query OK, 0 rows affected (0.33 sec)
Records: 0  Duplicates: 0  Warnings: 0

六 在数据表tb_dept1中添加一个不能为空的VARCHAR(12)类型的字段column1,SQL语句如下

mysql> ALTER TABLE tb_dept1 ADD column1 VARCHAR(12) not null;
Query OK, 0 rows affected (0.31 sec)
Records: 0  Duplicates: 0  Warnings: 0

七 在数据表tb_dept1中添加一个INT类型的字段column2,SQL语句如下

mysql> ALTER TABLE tb_dept1 ADD column2 INT(11) FIRST;
Query OK, 0 rows affected (0.37 sec)
Records: 0  Duplicates: 0  Warnings: 0

八 在数据表tb_dept1中name列后添加一个INT类型的字段column3,SQL语句如下

mysql> ALTER TABLE tb_dept1 ADD column3 INT(11) AFTER name;
Query OK, 0 rows affected (0.31 sec)
Records: 0  Duplicates: 0  Warnings: 0

九 删除数据表tb_dept1表中的column2字段

删除column2字段,SQL语句如下:

mysql> ALTER TABLE tb_dept1 DROP column2;
Query OK, 0 rows affected (0.31 sec)
Records: 0  Duplicates: 0  Warnings: 0

十 将数据表tb_dept中的column1字段修改为表的第一个字段,SQL语句如下

mysql> ALTER TABLE tb_dept1 MODIFY column1 VARCHAR(12) FIRST;
Query OK, 0 rows affected (0.33 sec)
Records: 0  Duplicates: 0  Warnings: 0

十一 将数据表tb_dept1中的column1字段插入到location字段后面,SQL语句如下

mysql> ALTER TABLE tb_dept1 MODIFY column1 VARCHAR(12) AFTER location;
Query OK, 0 rows affected (0.32 sec)
Records: 0  Duplicates: 0  Warnings: 0

十二 将数据表tb_deptment3的存储引擎修改为MyISAM

1 在修改存储引擎之前,先使用SHOW CREATE TABLE查看表tb_deptment3当前的存储引擎,结果如下。

mysql> SHOW CREATE TABLE tb_deptment3 \G
*************************** 1. row ***************************
       Table: tb_deptment3
Create Table: CREATE TABLE `tb_deptment3` (
  `id` int(11) NOT NULL,
  `name` varchar(22) DEFAULT NULL,
  `location` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `STH` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

可以看到,表tb_deptment3当前的存储引擎为ENGINE=InnoDB,接下来修改存储引擎类型,输入如下SQL语句并执行:

mysql> ALTER TABLE tb_deptment3 ENGINE=MyISAM;
Query OK, 0 rows affected (0.29 sec)
Records: 0  Duplicates: 0  Warnings: 0

使用SHOW CREATE TABLE再次查看表tb_deptment3的存储引擎,发现表tb_dept的存储引擎变成了“MyISAM”,结果如下:

mysql> SHOW CREATE TABLE tb_deptment3 \G
*************************** 1. row ***************************
       Table: tb_deptment3
Create Table: CREATE TABLE `tb_deptment3` (
  `id` int(11) NOT NULL,
  `name` varchar(22) DEFAULT NULL,
  `location` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `STH` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

十三 删除数据表tb_emp9中的外键约束

首先创建表tb_emp9,创建外键deptId关联tb_dept1表的主键id,SQL语句如下:

CREATE TABLE tb_emp9
(
    id      INT(11) PRIMARY KEY,
    name   VARCHAR(25),
    deptId  INT(11),
    salary   FLOAT,
    CONSTRAINT fk_emp_dept  FOREIGN KEY (deptId) REFERENCES tb_dept1(id)
);

使用SHOW CREATE TABLE查看表tb_emp9的结构,结果如下:

mysql> SHOW CREATE TABLE tb_emp9 \G
*************************** 1. row ***************************
       Table: tb_emp9
Create Table: CREATE TABLE `tb_emp9` (
  `id` int(11) NOT NULL,
  `name` varchar(25) DEFAULT NULL,
  `deptId` int(11) DEFAULT NULL,
  `salary` float DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_emp_dept` (`deptId`),
  CONSTRAINT `fk_emp_dept` FOREIGN KEY (`deptId`) REFERENCES `tb_dept1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

可以看到,已经成功添加了表的外键,下面删除外键约束,SQL语句如下:

mysql> ALTER TABLE tb_emp9 DROP FOREIGN KEY fk_emp_dept;
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

执行完毕之后,将删除表tb_emp的外键约束,使用SHOW CREATE TABLE再次查看表tb_emp9结构,结果如下:

mysql> SHOW CREATE TABLE tb_emp9 \G
*************************** 1. row ***************************
       Table: tb_emp9
Create Table: CREATE TABLE `tb_emp9` (
  `id` int(11) NOT NULL,
  `name` varchar(25) DEFAULT NULL,
  `deptId` int(11) DEFAULT NULL,
  `salary` float DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_emp_dept` (`deptId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 从零开始带你成为MySQL实战优化高手(130节),是一套涵盖了MySQL数据库优化的全面学习教程。MySQL是一款常用的关系型数据库管理系统,优化MySQL的性能对于提高数据库操作的效率至关重要。 该教程的130节从基础知识开始,包括MySQL的安装和配置、基本SQL语句的使用,以及索引的原理和使用等。接着介绍了数据库表的设计优化和数据类型的选择,帮助读者了解如何优化数据库的结构。 在进一步深入学习中,该教程重点讲解了查询优化和索引优化的技巧。它详细介绍了MySQL查询执行的流程和性能影响因素,以及如何通过使用合适的索引和优化查询语句来提高查询效率。此外,还介绍了锁定机制和事务处理的优化方法,帮助读者更好地应对并发操作和高负载压力。 除了优化数据库性能外,该教程还涵盖了备份和恢复、监控和诊断等方面的内容。它介绍了MySQL的备份和恢复策略,以及如何通过监控工具来追踪和分析数据库的性能问题。此外,该教程还分享了一些常见的优化实践和技巧,帮助读者更好地应用所学知识。 通过学习该教程,读者将掌握MySQL数据库优化的核心概念和技能,并能够在实际工作中应用这些知识。无论是从事数据库管理、开发还是运维工作,通过成为MySQL实战优化高手,读者都能够提升工作效率,优化数据库性能,提供更好的用户体验。 ### 回答2: 要成为MySQL实战优化高手,需要通过学习和实践来提升自己的技能和经验。以下是从零开始带你成为MySQL实战优化高手的步骤和内容: 1. 基础知识学习:从MySQL的基本概念、架构和常用命令开始学习,理解数据库的基本原理和操作方法。 2. SQL语句优化:学习如何编写高效的SQL语句,包括合理选择表达式、索引的使用、避免全表扫描等技巧。 3. 索引设计:深入了解MySQL索引的原理和不同类型的索引使用场景,学习如何为表设计合适的索引,提高查询性能。 4. 查询性能优化:学习如何通过查询优化器、查询执行计划等工具来分析和优化查询语句,提高查询的执行效率。 5. 数据库参数调优:了解MySQL的常用参数设置和优化原则,学习如何根据实际需求和硬件配置来调整参数,提升数据库性能。 6. 数据库架构设计:学习如何合理划分数据库表、使用数据分区、设计合适的数据类型等,提高系统的扩展性和性能。 7. 事务和并发控制:了解事务的基本概念和特性,学习如何正确使用事务和锁机制,保证数据的一致性和并发性能。 8. 数据库备份与恢复:学习如何进行数据库的备份和恢复,包括全量备份、增量备份、物理备份和逻辑备份等方法。 9. 数据库监控和性能调优:学习如何使用MySQL自带的监控工具和第三方性能分析工具,对数据库进行实时监控和性能调优。 10. 实践项目:通过参与实际项目的开发和维护,积累实战经验,提升自己的实际操作能力和解决问题的能力。 总结来说,成为MySQL实战优化高手需要坚持学习和实践,不断提升自己的技能和经验。同时,多参与实际项目和团队协作,通过和他人的交流和互动,加速自己的成长和进步。 ### 回答3: 要成为MySQL实战优化高手,首先需要掌握MySQL的基本知识和使用方法。建议从学习数据库的基础知识开始,了解数据库的概念、关系型数据库和非关系型数据库等的特点和应用场景。 接下来,学习MySQL的安装和配置,掌握MySQL的常见命令行操作和GUI工具的使用。了解MySQL的体系结构和数据存储方式,熟悉MySQL的各种数据类型和索引类型。 学习MySQL的SQL语句,包括数据的增删改查操作、表的创建和修改、条件查询、多表查询、排序、分组等常用的SQL语句。熟悉MySQL的事务和锁机制,了解如何处理并发访问和脏读、幻读等问题。 进一步学习MySQL的性能优化技巧,包括索引设计、查询优化、SQL语句性能调优、数据库参数和配置优化等方面。学习如何通过explain查询计划、慢查询日志等工具进行性能分析和优化。 深入学习MySQL的高级特性,包括分区表、分布式数据库、存储过程、触发器、事件调度器等。了解MySQL的复制、备份和恢复机制,熟悉主从复制、多主复制等架构。 通过实战项目来提升自己的实战能力。可以尝试从零开始搭建一个具有一定规模和复杂度的MySQL数据库,模拟真实的应用场景,进行数据建模、查询优化、性能调优等工作。 不断阅读学习MySQL的相关技术文档、博客和社区,在实践中积累经验,与其他MySQL开发者和优化高手交流讨论问题,提升自己的专业水平。 最后,坚持学习和实践,持续关注MySQL的最新动态和发展趋势,保持学习的热情和好奇心,才能逐渐成为MySQL实战优化的高手。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值