前言

今天我们开始探讨数据库表的操作,包含了表的增删改查,但不包含数据的增删改查,想要了解更多关于数据库表中对表中数据进行增删改查的方法,参见下篇文章。

可以关注我的云原生社区:云原生社区
也可以关注我的英语社区:从零开始学英语

文章目录

  • 前言
  • 一. 创建表
    • 1.1 创建student 表
    • 1.2 植物大战僵尸数据库表
  • 二. 查看创建的表结构
    • 2.1 使用desc查看
    • 2.2 使用explain 查看
    • 2.3 使用 show columns from 查询
    • 2.4 查看创建表执行了哪些命令
  • 三. 表的修改
    • 3.1 修改表名称
    • 3.2 修改表中的字段
    • 3.3 修改表中的字段类型和字段名称
    • 3.4 在表中添加字段
    • 3.5 指定位置添加字段
    • 3.6 删除表中的某个字段
    • 3.7 删除表
  • 总结

一. 创建表

创建表的语法如下:

create table 表名(字段名 类型 约束,字段名 类型 约束...
)

1.1 创建student 表

MySQL [(none)]> create database school;
Query OK, 1 row affected (0.00 sec)MySQL [(none)]> use school
Database changed
MySQL [school]> create table students(id int ,name varchar(50),age int,email varchar(50),address varchar(200));
Query OK, 0 rows affected (0.01 sec)MySQL [school]> 

1.2 植物大战僵尸数据库表

CREATE TABLE plants_vs_zombies (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL,type VARCHAR(50) NOT NULL,sun_cost INT NOT NULL,damage INT,health INT,recharge_time INT,special_ability VARCHAR(100),description VARCHAR(200)
);

注释:

  • id"字段:用于唯一标识每个植物的ID,采用INT数据类型,并使用PRIMARY KEY约束。
  • "name"字段:用于存储植物的名称,采用VARCHAR(50)数据类型,并设置为NOT NULL,表示该字段不能为空。
  • "type"字段:用于存储植物的类型,采用VARCHAR(50)数据类型,并设置为NOT NULL。
  • "sun_cost"字段:用于存储植物的太阳能消耗值,采用INT数据类型,并设置为NOT NULL。
  • "damage"字段:用于存储植物的攻击伤害值,采用INT数据类型。 "health"字段:用于存储植物的生命值,采用INT数据类型。
  • "recharge_time"字段:用于存储植物的充能时间,采用INT数据类型。
  • "special_ability"字段:用于存储植物的特殊能力描述,采用VARCHAR(100)数据类型。
  • "description"字段:用于存储植物的描述信息,采用VARCHAR(200)数据类型。

二. 查看创建的表结构

2.1 使用desc查看

MySQL [school]> desc students;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(11)      | YES  |     | NULL    |       |
| name    | varchar(50)  | YES  |     | NULL    |       |
| age     | int(11)      | YES  |     | NULL    |       |
| email   | varchar(50)  | YES  |     | NULL    |       |
| address | varchar(200) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

2.2 使用explain 查看

MySQL [school]> explain students;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(11)      | YES  |     | NULL    |       |
| name    | varchar(50)  | YES  |     | NULL    |       |
| age     | int(11)      | YES  |     | NULL    |       |
| email   | varchar(50)  | YES  |     | NULL    |       |
| address | varchar(200) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

2.3 使用 show columns from 查询

MySQL [school]> show columns from students;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(11)      | YES  |     | NULL    |       |
| name    | varchar(50)  | YES  |     | NULL    |       |
| age     | int(11)      | YES  |     | NULL    |       |
| email   | varchar(50)  | YES  |     | NULL    |       |
| address | varchar(200) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

如果你不是在csdn查看这篇文章,可能会出现文章不全的情况,建议在csdn搜索:我是沐风晓月。

2.4 查看创建表执行了哪些命令

MySQL [school]> show create table student;
ERROR 1146 (42S02): Table 'school.student' doesn't exist
MySQL [school]> show create table students;
+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                                                                                                                                                                           |
+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| students | CREATE TABLE `students` (`id` int(11) DEFAULT NULL,`name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,`age` int(11) DEFAULT NULL,`email` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,`address` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)MySQL [school]> 

三. 表的修改

3.1 修改表名称

语法: alter table 表名 rename 新表名;

  • 案例1: 把students 改为student
MySQL [school]> show tables;
+------------------+
| Tables_in_school |
+------------------+
| students         |
+------------------+
1 row in set (0.00 sec)MySQL [school]> alter table students rename student;
Query OK, 0 rows affected (0.01 sec)MySQL [school]> show tables;
+------------------+
| Tables_in_school |
+------------------+
| student          |
+------------------+
1 row in set (0.00 sec)

3.2 修改表中的字段

语法:alter table 表名 modify 要修改的字段名 要修改的类型;

MySQL [school]> desc student;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(11)      | YES  |     | NULL    |       |
| name    | varchar(50)  | YES  |     | NULL    |       |
| age     | int(11)      | YES  |     | NULL    |       |
| email   | varchar(50)  | YES  |     | NULL    |       |
| address | varchar(200) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)MySQL [school]> alter table student modify email varchar(100);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0MySQL [school]> desc student;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(11)      | YES  |     | NULL    |       |
| name    | varchar(50)  | YES  |     | NULL    |       |
| age     | int(11)      | YES  |     | NULL    |       |
| email   | varchar(100) | YES  |     | NULL    |       |
| address | varchar(200) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)MySQL [school]> 

3.3 修改表中的字段类型和字段名称

语法:alter table 表名 change 原字段名 新字段名 新字段类型;

MySQL [school]> desc student;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(11)      | YES  |     | NULL    |       |
| name    | varchar(50)  | YES  |     | NULL    |       |
| age     | int(11)      | YES  |     | NULL    |       |
| email   | varchar(100) | YES  |     | NULL    |       |
| address | varchar(200) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)MySQL [school]> alter table student change name stname varchar(20);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0MySQL [school]> desc student;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(11)      | YES  |     | NULL    |       |
| stname  | varchar(20)  | YES  |     | NULL    |       |
| age     | int(11)      | YES  |     | NULL    |       |
| email   | varchar(100) | YES  |     | NULL    |       |
| address | varchar(200) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)MySQL [school]> 

注:CHANGE 和MODIFY的区别:
CHANGE 对列进行重命名和更改列的类型,需给定旧的列名称和新的列名称、当前的类型。 MODIFY 可以改变列的类型,此时不需要重命名(不需给定新的列名称)

3.4 在表中添加字段

语法:alter table 表名 add 字段名 字段类型;

MySQL [school]> desc student-> ;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(11)      | YES  |     | NULL    |       |
| stname  | varchar(20)  | YES  |     | NULL    |       |
| age     | int(11)      | YES  |     | NULL    |       |
| email   | varchar(100) | YES  |     | NULL    |       |
| address | varchar(200) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)MySQL [school]> alter table student add score int(20);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0MySQL [school]> desc student;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(11)      | YES  |     | NULL    |       |
| stname  | varchar(20)  | YES  |     | NULL    |       |
| age     | int(11)      | YES  |     | NULL    |       |
| email   | varchar(100) | YES  |     | NULL    |       |
| address | varchar(200) | YES  |     | NULL    |       |
| score   | int(20)      | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

3.5 指定位置添加字段

  • 在第一列添加一个字段
MySQL [school]> alter table student add uid int(20) first;
  • 在age 后面添加性别 gender字段
MySQL [school]> alter table student add gender ENUM('男','女') AFTER stname;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0MySQL [school]> desc student-> ;
+---------+-------------------+------+-----+---------+-------+
| Field   | Type              | Null | Key | Default | Extra |
+---------+-------------------+------+-----+---------+-------+
| uid     | int(20)           | YES  |     | NULL    |       |
| id      | int(11)           | YES  |     | NULL    |       |
| stname  | varchar(20)       | YES  |     | NULL    |       |
| gender  | enum('男','女')   | YES  |     | NULL    |       |
| age     | int(11)           | YES  |     | NULL    |       |
| email   | varchar(100)      | YES  |     | NULL    |       |
| address | varchar(200)      | YES  |     | NULL    |       |
| score   | int(20)           | YES  |     | NULL    |       |
+---------+-------------------+------+-----+---------+-------+
8 rows in set (0.00 sec)

3.6 删除表中的某个字段

语法:alter table 表名 drop 字段名 ;

MySQL [school]> alter table student drop id;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

3.7 删除表

  • 直接删除
DROP TABLE table_name;
  • 使用 if exists关键字
DROP TABLE IF EXISTS table_name;
  • 如果要删除多个表,可以一次性写多个表名
DROP TABLE table1, table2, table3;
  • 要保留表结构,但删除表中所有的数据,可以使用TRUNCATE TABLE 命令:
TRUNCATE TABLE table_name;

总结

对数据库表的操作,包含了增删改查,下篇文章,我们将开始讲解如何插入数据,对数据进行增删改查的操作。

跟沐风晓月一起玩转数据库之MySQL数据库表操作技巧与实用方法解析相关推荐

  1. SQL2K数据库开发六之表操作创建产品表products

    1.在SQL Server企业管理器中的数据库下的"表"节点上右击鼠标,在弹出的菜单上点击"新建表". 2.在出现的表设计器中,为表中加入五个列:Product ...

  2. SQL2K数据库开发十一之表操作创建UNIQUE约束

    1.在数据库关系图中右击表Products,然后从弹出的菜单中选择"属性"命令.或者点击工具栏上的属性图标.         2.或者展开sample数据库,在表Products上 ...

  3. SQL2K数据库开发八之表操作创建主键

    1.使用Transact-SQL语句在表中创建主键时,可以在创建表的语句中定义列时使用如下语法: 2.在查询分析器中输入如下的语句,可以创建一个表Suppliers,该表中的SupplierID列被定 ...

  4. mysql使用释放资源_数据库--释放mysql数据库资源

    数据库--释放mysql数据库资源 背景 nikeodong 之前做了项目的数据库主从,在全备的过程发现数据库是越来越大了:最后发现是资源不释放的问题. 目的 为了解决 mysql 资源不释放的问题. ...

  5. 清空mysql注册表步骤_完全卸载MySQL 数据库清空MySql注册表

    完全卸载MySQL 数据库--清空MySql注册表 完全卸载Mysql的步骤主要有以下4步: 1. 通过控制面板- 卸载程序--mysql 将其卸载掉. 2. 删除Mysql 安装文件目录下的Mysq ...

  6. mysql数据库压缩备份_MySQL数据库之mysql数据库备份命令分享(mysql压缩数据库备份)...

    本文主要向大家介绍了MySQL数据库之mysql数据库备份命令分享(mysql压缩数据库备份) ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 备份MySQL数据库的命令 复制代 ...

  7. mysql新加不了数据库_MySQL数据库之mysql增加新用户无法登陆解决方法

    本文主要向大家介绍了MySQL数据库之mysql增加新用户无法登陆解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 今天安装openstack folsom版本,安装完m ...

  8. oracle数据库跟mysql的区别_关于Oracle数据库与MySQL数据库的几点区别

    Oracle数据库与MySQL数据库的区别是本文我们主要要介绍的内容,接下来我们就开始介绍这部分内容,希望能够对您有所帮助. Oracle与MySQL的区别: 1.在Oracle中用select * ...

  9. mysql入门优化_MySQL数据库:MySQL十大优化技巧详解

    本文主要向大家介绍了MySQL数据库的MySQL十大优化技巧详解,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. WEB开发者不光要解决程序的效率问题,对数据库的快速访问和相应也是 ...

最新文章

  1. 使用相机暗箱公式和透镜方程估计人脸距离
  2. [Erlang 0014]Erlang垃圾回收机制
  3. Android studio版本还原操作
  4. 10以内数的组成分解图_学前儿童如何学习20以内的加减法,收藏了
  5. Win10 UAP 绑定
  6. 微信支付 商户Key 支付Key API密钥 的获取
  7. jquery-幻灯片的移动分析
  8. shell取mysql字段_shell 脚本中获取mysql多个字段的值
  9. python和c++哪个好-C/C++和Python哪个更有前景?
  10. 前景检测算法(八)--SACON算法
  11. hopfield tsp matlab,TSP问题—Hopfield神经网络算法
  12. python制作ppt动画_卧槽,还能这么玩!用Python生成动态PPT
  13. 《Python》re模块补充、异常处理
  14. 号码归属地查询 核心平台 NGD
  15. Pdf 插入图片 | 指定位置插入图片 不改变原格式 直接操作
  16. 利用四位共阳数码管显示小数
  17. linux虚拟机之ubuntu的软件包管理(6/10)
  18. 同步110序列检测电路
  19. Visual Studio 2008 官方破解版
  20. 【性能测试】性能测试步骤

热门文章

  1. Thumbnailator给图片加水印并保证图片的质量(大小)
  2. 浏览器 批量大文件上传下载
  3. 屏蔽360浏览器底部的今日优选
  4. 东莞厚街工业机器人展会_2020东莞国际工业自动化及机器人展览会
  5. 如何关闭IOS键盘首字母自动大写
  6. 简述计算机噪音解决方法,电脑噪音大如何解决
  7. 实现不同VlAN之间的通讯
  8. Unity:角色控制器(CharacterController)
  9. LBP特征的实现及LBP+SVM分类
  10. php empty 包含 isset,phpempty php empty和isset的区别