MySQL 数据表操作


Posted in MySQL onMay 04, 2022

一、创建数据表

1、基本语法

create table 表名 (
    字段名 字段类型 [字段属性],
    字段名 字段类型 [字段属性],
    ...
) [表选项];

需要注意:表需要放在对应的数据库下面

2、创建方式一

-- 先选择数据库
use mydatabase;
-- 创建数据表
create table user(
    name varchar(10)
);

3、创建方式二

-- 直接将数据表挂到数据库下
create table mydatabase.user(
    name varchar(10)
);

4、表选项

  • Engine 存储引擎
  • Charset 字符集
  • Collate 校对集

指定表的字符集

create table user(
    name varchar(10)
) charset utf8;

5、复制已有表结构

create table 表名 like 表名;
-- eg 从test数据库复制表
create table user like test.user;

二、显示数据表

-- 显示所有表
mysql> show tables;
+----------------------+
| Tables_in_mydatabase |
+----------------------+
| t_author             |
| user                 |
+----------------------+
-- 显示匹配表
mysql> show tables like '%author';
+--------------------------------+
| Tables_in_mydatabase (%author) |
+--------------------------------+
| t_author                       |
+--------------------------------+

三、显示表结构

基本语法:

desc 表名(常用);
describe 表名;
show columns from 表名;

示例:

mysql> desc user;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
1 row in set (0.00 sec)
mysql> describe user;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
1 row in set (0.01 sec)
mysql> show columns from user;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
1 row in set (0.01 sec)

字段含义:

Field    字段名
Type     字段类型
Null     是否允许为空
Key      索引
Default  默认值
Extra    额外的属性

四、显示表创建语句

基本语法:

show create table 表名;

示例:

mysql> show create table user;
+-------+----------------+
| Table | Create Table   |
+-------+----------------+
| user  | CREATE TABLE `user` (
  `name` varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci |
+-------+----------------+
1 row in set (0.00 sec)

语句结束符:

  • ; \g 效果一样,字段在上,数据在下
  • \G 字段在左,数据在右
mysql> show create table user\G
*************************** 1. row ***************************
       Table: user
Create Table: CREATE TABLE `user` (
  `name` varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
1 row in set (0.00 sec)

五、设置表属性

  • engine
  • charset
  • collate
-- 基本语法
alter table 表名 表选项 [=] 值;
-- eg 修改表的字符集
alter table user charset gbk;

如果数据表已经有数据,不要轻易修改表属性

六、修改表结构

1、修改表名

--基本语法
rename table 旧表名 to 新表名;
-- eg:
rename table user to tb_user;

2、新增字段

-- 基本语法
alter table 表名 add [column] 字段名 字段类型 [字段属性] [位置first/after 字段名];
mysql> desc user;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
-- 给学生表新增age字段,默认加到表的最后
mysql> alter table tb_user add age int;
mysql> desc tb_user;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(10) | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

-- 在最前面增加一个id字段
mysql> alter table tb_user add id int first;
mysql> desc tb_user;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

字段位置:

first          放在最前名
alter 字段名    放在某个字段后面

3、修改字段名

-- 基本语法
alter table 表名 change 旧字段名 新字段名 字段类型 [字段属性] [新位置]
-- 将age字段修改为old
mysql> alter table tb_user change age old int;
mysql> desc tb_user;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
| old   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

4、修改字段属性

-- 基本语法
alter table 表名 modify 字段名 新字段类型 [新字段属性] [新位置]
-- eg 将name的长度由10修改为20
mysql> alter table tb_user modify name varchar(20);

mysql> desc tb_user;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| old   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

5、删除字段

-- 基本语法
alter table 表名 drop 字段名
-- eg 删除old字段
alter table tb_user drop old;

七、删除表结构

-- 基本语法, 可以同时删除多个表
drop table 表名 [, 表名...];
-- eg: 删除 tb_user表
mysql> drop table tb_user;

mysql> show tables;
+----------------------+
| Tables_in_mydatabase |
+----------------------+
| t_author             |
+----------------------+

到此这篇关于MySQL数据库之数据表操作的文章就介绍到这了!


Tags in this post...

MySQL 相关文章推荐
详解MySQL主从复制及读写分离
May 07 MySQL
MySQL 如何设计统计数据表
Jun 15 MySQL
MySQL 1130异常,无法远程登录解决方案详解
Aug 23 MySQL
MySQL面试题讲解之如何设置Hash索引
Nov 01 MySQL
mysql的数据压缩性能对比详情
Nov 07 MySQL
MySQL 数据类型详情
Nov 11 MySQL
MySQL慢查询优化解决问题
Mar 17 MySQL
mysql 获取时间方式
Mar 20 MySQL
Windows 64位 安装 mysql 8.0.28 图文教程
Apr 19 MySQL
手把手带你彻底卸载MySQL数据库
Jun 14 MySQL
mysql实现将字符串字段转为数字排序或比大小
Jun 14 MySQL
MySql统计函数COUNT的具体使用详解
Aug 14 MySQL
MySQL 执行数据库更新update操作的时候数据库卡死了
May 02 #MySQL
MySQL如何使备份得数据保持一致
MySQL索引 高效获取数据的数据结构
使用Mysql计算地址的经纬度距离和实时位置信息
Apr 29 #MySQL
解决Mysql中的innoDB幻读问题
Apr 29 #MySQL
详解Mysq MVCC多版本的并发控制
详解Mysql事务并发(脏读、不可重复读、幻读)
You might like
PHP获取数组最大值下标的方法
2015/05/12 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
Yii调试查看执行SQL语句的方法
2016/07/15 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
js 绑定带参数的事件以及手动触发事件
2010/04/27 Javascript
javascript中使用replaceAll()函数实现字符替换的方法
2010/12/25 Javascript
jquery处理json对象
2014/11/03 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
js全选实现和判断是否有复选框选中的方法
2015/02/17 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
详解AngularJS过滤器的使用
2016/03/11 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
2017/11/27 Javascript
详解javascript中的变量提升和函数提升
2018/05/24 Javascript
element-ui的回调函数Events的用法详解
2018/10/16 Javascript
微信小程序获取用户openid的实现
2018/12/24 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
js实现倒计时秒杀效果
2020/03/25 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
[02:03]完美世界DOTA2联赛10月30日赛事集锦
2020/10/31 DOTA
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
Python线程的两种编程方式
2015/04/14 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
解读! Python在人工智能中的作用
2017/11/14 Python
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
【python】matplotlib动态显示详解
2019/04/11 Python
python 制作磁力搜索工具
2021/03/04 Python
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
俄罗斯女装店:12storeez
2019/10/25 全球购物
Java中的类包括什么内容?设计时要注意哪些方面
2012/05/23 面试题
畜牧兽医本科生的自我评价
2014/03/03 职场文书
公司委托书格式范文
2014/04/04 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
师德先进个人事迹材料
2014/12/19 职场文书