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 infobright的安装步骤
Apr 07 MySQL
MySQL数字类型自增的坑
May 07 MySQL
MySQL 查询速度慢的原因
May 25 MySQL
MySQL中的引号和反引号的区别与用法详解
Oct 24 MySQL
MySQL Innodb索引机制详细介绍
Nov 23 MySQL
SQL注入详解及防范方法
Dec 06 MySQL
Mysql多层子查询示例代码(收藏夹案例)
Mar 31 MySQL
MySQL分区以及建索引的方法总结
Apr 13 MySQL
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
Apr 20 MySQL
mysql实现将字符串字段转为数字排序或比大小
Jun 14 MySQL
Mysql的Table doesn't exist问题及解决
Dec 24 MySQL
MySQL索引失效十种场景与优化方案
May 08 MySQL
MySQL 执行数据库更新update操作的时候数据库卡死了
May 02 #MySQL
MySQL如何使备份得数据保持一致
MySQL索引 高效获取数据的数据结构
使用Mysql计算地址的经纬度距离和实时位置信息
Apr 29 #MySQL
解决Mysql中的innoDB幻读问题
Apr 29 #MySQL
详解Mysq MVCC多版本的并发控制
详解Mysql事务并发(脏读、不可重复读、幻读)
You might like
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
2013/11/12 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
JS中confirm,alert,prompt函数使用区别分析
2010/04/01 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
基于Bootstrap的Metronic框架实现页面链接收藏夹功能
2016/08/29 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
jQuery实现二维码扫描功能
2017/01/09 Javascript
Vue 2.X的状态管理vuex记录详解
2017/03/23 Javascript
Angular2 组件通信的实例代码
2017/06/23 Javascript
js 只比较时间大小的实例
2017/10/26 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
vue文件运行的方法教学
2019/02/12 Javascript
vue router 组件的高级应用实例代码
2019/04/08 Javascript
countup.js实现数字动态叠加效果
2019/10/17 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
python备份文件的脚本
2008/08/11 Python
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
Python的randrange()方法使用教程
2015/05/15 Python
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
windows下python和pip安装教程
2018/05/25 Python
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
美国隐形眼镜网上商店:Lens.com
2019/09/03 全球购物
小学清明节活动总结
2014/07/04 职场文书
日语系毕业求职信
2014/07/27 职场文书
奶茶店创业计划书
2014/08/14 职场文书
群众路线自查报告及整改措施
2014/11/04 职场文书
入党积极分子半年考察意见
2015/06/02 职场文书
2016年小学“感恩教师”主题队日活动总结
2016/04/01 职场文书
python批量更改目录名/文件名的方法
2021/04/18 Python
Win11如何查看显卡型号 Win11查看显卡型号的方法
2022/08/14 数码科技