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数据迁移相关总结
Apr 29 MySQL
MySQL 存储过程的优缺点分析
May 20 MySQL
一文读懂navicat for mysql基础知识
May 31 MySQL
MySQL基础快速入门知识总结(附思维导图)
Sep 25 MySQL
一文搞清楚MySQL count(*)、count(1)、count(col)区别
Mar 03 MySQL
利用JuiceFS使MySQL 备份验证性能提升 10 倍
Mar 17 MySQL
mysql 生成连续日期及变量赋值
Mar 20 MySQL
一文简单了解MySQL前缀索引
Apr 03 MySQL
Mysql 数据库中的 redo log 和 binlog 写入策略
Apr 26 MySQL
MySQL GTID复制的具体使用
May 20 MySQL
MySQL安装失败的原因及解决步骤
Jun 14 MySQL
mysql拆分字符串作为查询条件的示例代码
Jul 07 MySQL
MySQL 执行数据库更新update操作的时候数据库卡死了
May 02 #MySQL
MySQL如何使备份得数据保持一致
MySQL索引 高效获取数据的数据结构
使用Mysql计算地址的经纬度距离和实时位置信息
Apr 29 #MySQL
解决Mysql中的innoDB幻读问题
Apr 29 #MySQL
详解Mysq MVCC多版本的并发控制
详解Mysql事务并发(脏读、不可重复读、幻读)
You might like
PHP数组循环操作详细介绍 附实例代码
2013/02/03 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
2014/10/23 PHP
PHP date函数常用时间处理方法
2015/05/11 PHP
PHP实现截取中文字符串不出现?号的解决方法
2016/12/29 PHP
JavaScript打印网页指定区域的例子
2014/05/03 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
使用NodeJs 开发微信公众号(三)微信事件交互实例
2016/03/02 NodeJs
jQuery实现鼠标经过像翻页和描点链接效果
2016/08/08 Javascript
原生JS实现图片轮播与淡入效果的简单实例
2016/08/21 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
微信小程序实现3D轮播图效果(非swiper组件)
2019/09/21 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
vue中渲染对象中属性时显示未定义的解决
2020/07/31 Javascript
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
wxPython事件驱动实例详解
2014/09/28 Python
python中lambda与def用法对比实例分析
2015/04/30 Python
Python类的继承用法示例
2019/01/31 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
Pandas替换及部分替换(replace)实现流程详解
2020/10/12 Python
Selenium环境变量配置(火狐浏览器)及验证实现
2020/12/07 Python
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
加拿大约会网站:EliteSingles.ca
2018/01/12 全球购物
New delete 与malloc free 的联系与区别
2013/02/04 面试题
EJB发布WEB服务一般步骤
2012/10/31 面试题
工商管理实习生自我鉴定范文
2013/12/18 职场文书
房地产开发计划书
2014/01/10 职场文书
2016年寒假生活小结
2015/10/10 职场文书
2016廉政教育学习心得体会
2016/01/25 职场文书
九年级历史教学反思
2016/02/19 职场文书
MySQL查询日期时间
2022/05/15 MySQL
Python可视化神器pyecharts之绘制箱形图
2022/07/07 Python