alter table add column多个字段_CREATE、DROP、ALTER

本文介绍MySQL的基本概念及其核心操作,包括DDL(数据定义语言)的使用,创建、删除、修改数据库与数据表的方法,以及复制数据表的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文标识 : MQ0003

本文编辑 : 长安月下赏美人儿

编程工具 : MySQL

阅读时长 : 5分钟

目录

MySQL 有啥用

DDL 是什么

数据库的创建&删除&修改&进入

数据表的创建&删除&修改&复制

一、MySQL 有啥用?

掌握 MySQL,是一枚数据分析狮的基础技能之一,是一种本能!

MySQL 是一个关系型数据库管理系统,相当于人类饥饿的时候吃饭用的筷子。

关系型数据库是指“采用了关系模型来组织数据的数据库,以行和列的形式存储数据,便于用户理解。关系型数据库这一系列的行和列被称为表,一组表组成了数据库。”

二、DDL 是什么?

DDL(Data Definition Language),是连接存储世界与现实世界的高铁!

DDL 为 MySQL 的定义语言,用于描述数据库中要存储的现实世界实体的语言。

主要用途:对数据库对象进行创建、修改、删除等操作。

操作对象:数据库、数据表、列、索引等。

定义命令:CREATE、DROP、ALTER

CREATE:用于创建数据库或表的命令。

DROP:用于删除已建数据库或表。

ALTER:用于在已有的表中添加、修改或删除列,更新表名,字段类型等。

三、数据库的操作

1、创建数据库

CREATE DATABASE IF NOT EXISTS songxiaoer;

2、删除数据库(1)查看目前所有数据库

SHOW DATABASES;

(2)删除指定数据库

DROP DATABASE IF EXISTS songxiaoer;

3、修改数据库字符集

(1)查看数据库字符集类型

SHOW VARIABLES LIKE'character_set_database';

(2)修改数据库字符集

ALTER DATABASE songxiaoer character SET 'gbk';

4、进入数据库

USE songxiaoer;

四、数据表的管理

1、创建数据表(1)语法

CREATE TABLE tab_name(list_name1 type[len],
list_name2 type[len],
......
list_nameN type[len])
[engine=lnnodb default   #存储引擎
charset=utf-8];  #字符集

(2)创建班级数据表 Pikachu

        CREATE TABLE Pikachu(
        number_id int not null comment '学号',
        name varchar(30) not null comment '姓名',
        age int,
        birthday datetime comment '出生日期',
        tel int not null comment '电话',
        stusex bit default 1)
        [engine=lnnodb default charset=utf-8]; 

(3)图表架构如下

v2-f992a8ad4b3121499d93d0714903aafe_b.jpg

2、删除数据表
(1)查看目前所有数据表

SHOW TABLES;

(2)删除指定数据表

DROP TABLE IF EXISTS Pikachu;

3、修改数据表

(1)修改列名

ALTER TABLE Pikachu RENAME COLUMN old_column_name TO new_column_name;

(2)修改列的类型和约束

ALTER TABLE Pikachu MODIFY COLUMN age varchar(20);

(3)修改添加新列注意:添加新列如无特殊约束条件,则默认添加到最后一列;如果添加到指定位置,则需要注意约束条件的正确使用。

  • FIRST 表示添加到列表的第一列
  • AFTER 表示添加到某个列之后
ALTER TABLE Pikachu ADD COLUMN stu_add varchar(200) AFTER num_id;

(4)删除列

ALTER  TABLE Pikachu DROP COLUMN num_id;

(5)修改表名

ALTER TABLE Pikachu RENAME TO Pikachu_song;

4、复制数据表假设:tab_1 已存在,tab_2 不存在。(1)复制表的结构

CREATE TABLE tab_2 LIKE tab_1;

(2)复制表的数据及内容

CREATE TABLE tab_2 LIKE SELECT * FROM tab_1;

(3)复制表的部分数据(如,复制 num_id>2001345 学员的全部信息)

CREATE TABLE tab_2 LIKE SELECT * FROM tab_1 WHERE num_id>2001345;

(4)复制表的某些字段(如,复制 age>10 学员的学号及姓名)

CREATE TABLE tab_2 LIKE SELECT num_id,name FROM tab_1 WHERE age>10;

猜你喜欢

1、来啊,一起“整”个 MySQL !

2、Win10 如何拥有 MySQL8.0.17 之解压版

3、DBeaver 一个神奇的数据库操作软件

### 使用 `ALTER TABLE` 修改数据库表结构 #### 添加新列 当需要向现有的 MySQL 表中增加一列或多列时,可以使用如下命令: ```sql ALTER TABLE table_name ADD column_name datatype; ``` 如果要指定新增加的列为特定位置,则可以在上述基础上加上 FIRST 或 AFTER 关键字来定义该列的位置[^1]。 #### 删除已有列 移除不再使用的字段可以通过下面这条指令完成操作: ```sql ALTER TABLE table_name DROP COLUMN column_name; ``` 需要注意的是,在实际环境中应当谨慎对待此动作,因为这会永久性地丢失对应的数据记录[^2]。 #### 更改现有列属性 对于已经存在的某一列,比如改变其数据类型或者长度限制等参数,可通过 MODIFY 子句实现;而 RENAME TO 则用于重命名某列名称。具体形式如下所示: ```sql -- 修改列的数据类型或约束条件 ALTER TABLE table_name MODIFY column_name new_datatype; -- 改变列的名字 ALTER TABLE table_name CHANGE old_column_name new_column_name datatype; ``` 另外,还可以通过设置 NOT NULL 来强制要求某些字段不能为空值,并且利用 DEFAULT 给定默认初始化数值[^3]。 #### 调整列的位置 为了重新排列各列之间的相对次序,可借助于 FIRST 和 AFTER 参数配合 ADD 动作一起作用。例如要把某个已有的列移到最前面或是紧跟在另一指定列之后显示出来,语法如下: ```sql -- 将 'column_to_move' 移动至首位 ALTER TABLE table_name MODIFY column_to_move INT FIRST; -- 把 'column_to_move' 插入到 'target_column' 后面 ALTER TABLE table_name MODIFY column_to_move VARCHAR(255) AFTER target_column; ``` 值得注意的一点是在不同版本间可能存在差异支持情况,请参照官方文档确认兼容性问题。 #### 变更存储引擎 有时出于性能考量或其他原因考虑更换底层所采用的具体实现方式——即所谓的“存储引擎”。此时便需要用到 ENGINE 选项来进行转换工作: ```sql ALTER TABLE table_name ENGINE = desired_engine_type; ``` 这里替换掉 `desired_engine_type` 即为目标类型的标识符字符串,像 MyISAM, InnoDB 等都是常见的候选对象之一。 #### 创建/删除索引 除了基本的增删查改之外,`ALTER TABLE` 还能帮助建立辅助性的查询加速机制——也就是常说的各种类型索引来提高检索效率。创建唯一性索引、全文本搜索索引等功能均在此范围内得以体现。相应的 SQL 片段列举如下: ```sql -- 新建普通索引 CREATE INDEX index_name ON table_name (column_list); -- 清理不必要的索引项 DROP INDEX index_name ON table_name; ``` 以上就是围绕着 `ALTER TABLE` 的一些主要应用场景及其对应的处理方法概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值