MySQL ALTER命令知识点汇总

MySQL ALTER命令知识点汇总

什么是ALTER命令

ALTER命令是MySQL用来修改已有的表结构的命令。使用ALTER命令可以修改表名,增加、删除列,修改列的数据类型或属性,以及修改表级约束等。

常见的ALTER命令语法

修改表名

ALTER TABLE table_name RENAME TO new_table_name;

添加新列

ALTER TABLE table_name ADD COLUMN column_name column_definition [FIRST | AFTER column_name];

其中,column_definition表示新列的数据类型和约束,FIRST表示新列要添加到第一列,AFTER column_name表示新列要添加到指定列的后面。

删除列

ALTER TABLE table_name DROP COLUMN column_name;

修改列

ALTER TABLE table_name MODIFY COLUMN column_name column_definition;

或

ALTER TABLE table_name CHANGE COLUMN old_name new_name column_definition;

其中,column_definition表示新的数据类型和约束,CHANGE COLUMN语句可以同时修改列名和属性。

添加主键

ALTER TABLE table_name ADD PRIMARY KEY (column_name);

删除主键

ALTER TABLE table_name DROP PRIMARY KEY;

添加外键

ALTER TABLE child_table ADD FOREIGN KEY (column_name) REFERENCES parent_table (parent_column_name);

删除外键

ALTER TABLE child_table DROP FOREIGN KEY foreign_key_name;

修改列的默认值

ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT default_value;

修改列的约束

ALTER TABLE table_name ALTER COLUMN column_name constraint_definition;

示例说明

示例一

在students表中添加一个新的成绩列:

ALTER TABLE students ADD COLUMN score INT DEFAULT 0 AFTER age;

这条语句会在students表中添加一个名为score的整数列,并将它添加到age列后面,初始值为0。

示例二

修改students表中的成绩列名为score_new,并将其数据类型改为DOUBLE型:

ALTER TABLE students CHANGE COLUMN score score_new DOUBLE;

ALTER TABLE students MODIFY COLUMN score_new DOUBLE;

这两条语句都能实现目标,第一条语句使用了CHANGE COLUMN语句来修改列名和类型,第二条语句使用了MODIFY COLUMN语句来修改类型。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL ALTER命令知识点汇总 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • sql 函数大全 比较常用的一些函数整理第1/2页

    首先,我们需要了解什么是SQL函数。在SQL中,函数是一些特殊的操作符,它们接受一些参数,执行特定的计算,并返回一个结果。SQL函数可以用于执行日期和时间处理、字符串操作、数学计算等一系列操作。本文将整理比较常用的SQL函数,让您更快更方便地查询、计算数据。 SQL 函数大全:比较常用的一些函数整理(第1/2页) 1. 字符串函数 常用的字符串函数包括: 1…

    database 2023年5月21日
    00
  • 高版本Mysql使用group by分组报错的解决方案

    下面是详细的“高版本MySQL使用GROUP BY分组报错的解决方案”攻略。 问题描述 在高版本的MySQL(如MySQL5.7、MySQL8.0)中,对数据进行分组时,可能会出现以下报错信息: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated …

    database 2023年5月18日
    00
  • 详解MySQL中的分组查询与连接查询语句

    下面是针对“详解MySQL中的分组查询与连接查询语句”的完整攻略: 分组查询 在MySQL中,使用GROUP BY关键字可以对查询的结果集进行分组。 语法 SELECT col_name1, col_name2, … FROM table_name GROUP BY col_name1, col_name2, …; 示例说明 考虑下面这个表: stu…

    database 2023年5月21日
    00
  • python对redis的连接和操作

    一、redis   redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作…

    Redis 2023年4月11日
    00
  • MySQL修改tmpdir参数

    下面是关于MySQL修改tmpdir参数的完整攻略。 1. 确认当前MySQL的tmpdir 在进行修改之前,先要确认当前MySQL的tmpdir路径。可以使用以下命令: SHOW VARIABLES LIKE ‘tmpdir’; 执行以上命令后,可以得到MySQL的tmpdir路径。比如,可能得到如下输出: Variable_name Value tmpd…

    database 2023年5月22日
    00
  • windows下mysql-python安装出错

    注意:python2.x用mysql-python,从Python3.x起,变更为mysqlclient windows安装python的mysql驱动是so easy的: pip install mysql-python 但是毫不意外的出错了: _mysql.c(42) : fatal error C1083: Cannot open include fi…

    MySQL 2023年4月12日
    00
  • 常用SQL语句(嵌套子查询/随机等等)详细整理

    常用SQL语句详细整理 嵌套子查询 嵌套子查询是指在一个SQL查询中嵌套另一个SQL查询,通常用于获取更为准确的结果或进行复杂的数据统计分析。嵌套子查询可以嵌套多层。 示例1:查询存在于子查询中的数据 SELECT * FROM table1 WHERE id IN (SELECT id FROM table2 WHERE field2=’value’); …

    database 2023年5月21日
    00
  • 如何设计高效合理的MySQL查询语句

    当我们面对海量数据时,设计高效合理的MySQL查询语句显得尤为重要,它不仅可以极大提高数据处理的效率,还能够有效减轻系统压力。在进行MySQL查询操作时,我们需要遵循以下几个原则: 尽量减少查询数据的数量 尽量减少查询的数据类型转换 尽可能使用索引 避免使用大量的子查询或联表查询 下面分别从这些原则入手,讲解如何设计高效合理的MySQL查询语句。 1. 尽量…

    database 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部