跟沐风晓月一起玩转数据库之MySQL数据库表操作技巧与实用方法解析
前言
今天我们开始探讨数据库表的操作,包含了表的增删改查,但不包含数据的增删改查,想要了解更多关于数据库表中对表中数据进行增删改查的方法,参见下篇文章。
可以关注我的云原生社区:云原生社区
也可以关注我的英语社区:从零开始学英语
文章目录
- 前言
- 一. 创建表
- 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数据库表操作技巧与实用方法解析相关推荐
- SQL2K数据库开发六之表操作创建产品表products
1.在SQL Server企业管理器中的数据库下的"表"节点上右击鼠标,在弹出的菜单上点击"新建表". 2.在出现的表设计器中,为表中加入五个列:Product ...
- SQL2K数据库开发十一之表操作创建UNIQUE约束
1.在数据库关系图中右击表Products,然后从弹出的菜单中选择"属性"命令.或者点击工具栏上的属性图标. 2.或者展开sample数据库,在表Products上 ...
- SQL2K数据库开发八之表操作创建主键
1.使用Transact-SQL语句在表中创建主键时,可以在创建表的语句中定义列时使用如下语法: 2.在查询分析器中输入如下的语句,可以创建一个表Suppliers,该表中的SupplierID列被定 ...
- mysql使用释放资源_数据库--释放mysql数据库资源
数据库--释放mysql数据库资源 背景 nikeodong 之前做了项目的数据库主从,在全备的过程发现数据库是越来越大了:最后发现是资源不释放的问题. 目的 为了解决 mysql 资源不释放的问题. ...
- 清空mysql注册表步骤_完全卸载MySQL 数据库清空MySql注册表
完全卸载MySQL 数据库--清空MySql注册表 完全卸载Mysql的步骤主要有以下4步: 1. 通过控制面板- 卸载程序--mysql 将其卸载掉. 2. 删除Mysql 安装文件目录下的Mysq ...
- mysql数据库压缩备份_MySQL数据库之mysql数据库备份命令分享(mysql压缩数据库备份)...
本文主要向大家介绍了MySQL数据库之mysql数据库备份命令分享(mysql压缩数据库备份) ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 备份MySQL数据库的命令 复制代 ...
- mysql新加不了数据库_MySQL数据库之mysql增加新用户无法登陆解决方法
本文主要向大家介绍了MySQL数据库之mysql增加新用户无法登陆解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 今天安装openstack folsom版本,安装完m ...
- oracle数据库跟mysql的区别_关于Oracle数据库与MySQL数据库的几点区别
Oracle数据库与MySQL数据库的区别是本文我们主要要介绍的内容,接下来我们就开始介绍这部分内容,希望能够对您有所帮助. Oracle与MySQL的区别: 1.在Oracle中用select * ...
- mysql入门优化_MySQL数据库:MySQL十大优化技巧详解
本文主要向大家介绍了MySQL数据库的MySQL十大优化技巧详解,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. WEB开发者不光要解决程序的效率问题,对数据库的快速访问和相应也是 ...
最新文章
- 使用相机暗箱公式和透镜方程估计人脸距离
- [Erlang 0014]Erlang垃圾回收机制
- Android studio版本还原操作
- 10以内数的组成分解图_学前儿童如何学习20以内的加减法,收藏了
- Win10 UAP 绑定
- 微信支付 商户Key 支付Key API密钥 的获取
- jquery-幻灯片的移动分析
- shell取mysql字段_shell 脚本中获取mysql多个字段的值
- python和c++哪个好-C/C++和Python哪个更有前景?
- 前景检测算法(八)--SACON算法
- hopfield tsp matlab,TSP问题—Hopfield神经网络算法
- python制作ppt动画_卧槽,还能这么玩!用Python生成动态PPT
- 《Python》re模块补充、异常处理
- 号码归属地查询 核心平台 NGD
- Pdf 插入图片 | 指定位置插入图片 不改变原格式 直接操作
- 利用四位共阳数码管显示小数
- linux虚拟机之ubuntu的软件包管理(6/10)
- 同步110序列检测电路
- Visual Studio 2008 官方破解版
- 【性能测试】性能测试步骤