Mysql数据库 ALTER 基本操作

背景:

ALTER作为DDL语言之一,工作中经常遇到,这里我们简单介绍一下常见的几种使用场景

新建两个测试表offices 和 employess

CREATE TABLE offices (
 officeCode INT(10) NOT NULL UNIQUE ,
 city VARCHAR(50) NOT NULL,
 address VARCHAR(50) NOT NULL,
 country VARCHAR(50) NOT NULL,
 PRIMARY KEY(officeCode)
)

CREATE TABLE employees (
employeeNumber INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
lastName VARCHAR(50) NOT NULL,
firtName VARCHAR(50) NOT NULL,
officeCode INT(10) NOT NULL,
sex VARCHAR(5),
CONSTRAINT office_fk FOREIGN KEY(officeCode) REFERENCES offices (officeCode)

)

Mysql数据库 ALTER 基本操作

Mysql数据库 ALTER 基本操作

案例一:将表employees的lastName字段修改到firstName字段后面,并减少字符长度。

修改位置,需要用到ALTER TABLE MODIFY语句,输入语句如下

ALTER TABLE employees MODIFY lastName VARCHAR(25) AFTER firtName; 

Mysql数据库 ALTER 基本操作

可以看到,lastName字段修改到firstName字段后面了。

案例二:将表employees的sex字段改名为employee_sex。

修改字段名,需要用到ALTER TABLE CHANGE语句,输入语句如下

ALTER TABLE employees CHANGE sex employee_sex VARCHAR(5); 

Mysql数据库 ALTER 基本操作

可以看到,表中只有employee_sex字段,已经没有名称为sex的字段了,修改名称成功

案例三:修改employee_sex字段,数据类型为CHAR(1),非空约束

修改字段数据类型,需要用到ALTER TABLE MODIFY语句,输入语句如下:

ALTER TABLE employees MODIFY employee_sex CHAR(1) NOT NULL; 

Mysql数据库 ALTER 基本操作

从执行结果可以看到,employee_sex字段的数据类型由前面的VARCHAR(5)修改为CHAR(1),且其Null列显示为NO,表示该列不允许空值,修改成功

案例四:删除字段employee_sex

删除字段,需要用到ALTER TABLE DROP语句,输入语句如下:

ALTER TABLE employees DROP employee_sex; 

Mysql数据库 ALTER 基本操作

可以看到,表返回的列字段,employee_sex字段已经不在表结构中,删除字段成功

案例五:增加字段名city,数据类型为VARCHAR(10)。

修改字段数据类型,需要用到ALTER TABLE ADD语句,输入语句如下:

ALTER TABLE employees ADD city VARCHAR(10);

Mysql数据库 ALTER 基本操作

可以看到,数据表employees中增加了一个新的列city,数据类型为VARCHAR(10),允许空值,添加新字段成功

案例六:将表employees名称修改为employees_info

修改数据表名,需要用到ALTER TABLE RENAME语句,输入语句如下:

ALTER TABLE employees RENAME employees_info; 

Mysql数据库 ALTER 基本操作

可以看到数据库中已经没有名称为employees的数据表。

案例七,删除外键

具体见https://www.cnblogs.com/xiong97/p/16564428.html ,这里不再赘述

以上7个案例,便是工作中常遇到的场景。

Original: https://www.cnblogs.com/xiong97/p/16570641.html
Author: 静言善思
Title: Mysql数据库 ALTER 基本操作

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/611949/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • ReentrantLock可重入、可打断、Condition原理剖析

    本文紧接上文的AQS源码,如果对于ReentrantLock没有基础可以先阅读我的上一篇文章学习ReentrantLock的源码 重入加锁其实就是将AQS的state进行加一操作 …

    数据库 2023年6月11日
    073
  • day03-拉取在线用户功能

    多用户即时通讯系统03 4.编码实现02 4.2功能实现-拉取在线用户 4.2.1思路分析 客户端想要知道在线用户列表,就要向服务器发送请求(Message),因为只有服务器端保持…

    数据库 2023年6月11日
    0157
  • Nginx进阶篇—web模块及proxy代理

    server { #在server{下面输入 sub_filter n…

    数据库 2023年6月14日
    097
  • 响应式编程-入门介绍

    概念 与传统编程模型对比 传统编程模型,主要特点是 同步阻塞式-Blocking; 而响应式编程(Reactive Programming) 主要特点是 异步非阻塞 Non-Blo…

    数据库 2023年6月11日
    0100
  • 为什么我选择MySQL Workbench・一

    一、官方 官方提供的工具必然有其优势。 MySQL Workbench有两个版本,社区版和商业版。社区版是免费的。 二、第一个选择 使用MySQL之前用的是SQL Server而微…

    数据库 2023年6月9日
    066
  • JDBC

    JDBC 一、JDBC概述 什么是JDBC? JDBC 是使用 Java 语言操作关系型数据库的一套 API。这套 API 是交由不同的数据库厂商实现的。我们利用 JDBC 编写操…

    数据库 2023年5月24日
    074
  • Java实现平滑加权轮询算法–降权和提权

    上一篇讲了普通轮询、加权轮询的两种实现方式,重点讲了平滑加权轮询算法,并在文末留下了悬念: 节点出现分配失败时降低有效权重值;成功时提高有效权重值(但不能大于weight值)。 本…

    数据库 2023年6月6日
    082
  • jdbc-使用java连接mysql

    package com.cqust; import com.mysql.jdbc.Driver; import java.sql.Connection;import java.sq…

    数据库 2023年5月24日
    054
  • GreatSQL vs MySQL性能测试来了,速围观~

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 1.结论先行 无论ibp(inn…

    数据库 2023年6月11日
    080
  • 一篇文章带你掌握主流数据库框架——MyBatis

    一篇文章带你掌握主流数据库框架——MyBatis MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。 在之前的文章中我们学习了MYSQL和JDBC…

    数据库 2023年6月14日
    085
  • 在ESXI6.7中安装OpenWrt

    在ESXI6.7中安装OpenWrt 21.02.2 一、前置准备 安装好的esxi6.7 下载openwrt镜像,如:openwrt-21.02.2-x86-64-generic…

    数据库 2023年6月9日
    0107
  • MySQL的select for update用法

    MySQL中的select for update大家应该都有所接触,但什么时候该去使用,以及有哪些需要注意的地方会有很多不清楚的地方,我把我如何使用和查询到的文档在此记录。 sel…

    数据库 2023年5月24日
    0128
  • 记一次stormOOM异常的产生与解决

    最近这段时间开始了一个新项目,项目使用rabbitMQ存储采集数据,通过storm对rabbitMQ中的数据进行实时计算,将结果存入到rabbitMQ的另一个队列中,再由另外一个s…

    数据库 2023年6月6日
    067
  • MySQL查询性能优化七种武器之索引下推

    前面已经讲了MySQL的其他查询性能优化方式,没看过可以去了解一下: MySQL查询性能优化七种武器之索引潜水 MySQL查询性能优化七种武器之链路追踪 今天要讲的是MySQL的另…

    数据库 2023年5月24日
    088
  • JUC学习

    如何正确停止线程? 停止线程应该是一种通知协作的方式,比如interrupt,但是它仅仅是通知线程,线程拥有完全的自主权,根据自身业务来判断什么时候停止,因为如果选择立即停止就可能…

    数据库 2023年6月16日
    089
  • MySQL实战45讲 11

    11 | 怎么给字符串字段加索引? Q:如何在邮箱这样的字段上建立合理的索引? 用户表的定义: create table SUser( ID bigint unsigned pri…

    数据库 2023年5月24日
    093
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球