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 05 MySQL
正确使用MySQL update语句
May 26 MySQL
MySQL为id选择合适的数据类型
Jun 07 MySQL
mysql优化之query_cache_limit参数说明
Jul 01 MySQL
MySQL系列之十二 备份与恢复
Jul 02 MySQL
mysql 直接拷贝data 目录下文件还原数据的实现
Jul 25 MySQL
MYSQL 运算符总结
Nov 11 MySQL
MySQL利用UNION连接2个查询排序失效详解
Nov 20 MySQL
彻底解决MySQL使用中文乱码的方法
Jan 22 MySQL
千万级用户系统SQL调优实战分享
Mar 03 MySQL
MYSQL优化之数据表碎片整理详解
Apr 03 MySQL
MySQL数据库实验之 触发器和存储过程
Jun 21 MySQL
MySQL 执行数据库更新update操作的时候数据库卡死了
May 02 #MySQL
MySQL如何使备份得数据保持一致
MySQL索引 高效获取数据的数据结构
使用Mysql计算地址的经纬度距离和实时位置信息
Apr 29 #MySQL
解决Mysql中的innoDB幻读问题
Apr 29 #MySQL
详解Mysq MVCC多版本的并发控制
详解Mysql事务并发(脏读、不可重复读、幻读)
You might like
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
2011/11/02 PHP
PHP自定义大小验证码的方法详解
2013/06/07 PHP
PHP英文字母大小写转换函数小结
2014/05/03 PHP
destoon找回管理员密码的方法
2014/06/21 PHP
PHP验证类的封装与使用方法详解
2019/01/10 PHP
PHP大文件分块上传功能实例详解
2019/07/22 PHP
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
2007/03/06 Javascript
我也种棵OO树JXTree[js+css+xml]
2007/04/02 Javascript
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
jQuery最佳实践完整篇
2011/08/20 Javascript
jQuery.each()用法分享
2012/07/31 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
2013/01/27 Javascript
在Node.js中实现文件复制的方法和实例
2014/06/05 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
javascript html5轻松实现拖动功能
2017/03/01 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
jQuery实现简单的Ajax调用功能示例
2019/02/15 jQuery
小程序hover-class点击态效果实现
2019/02/26 Javascript
vue.js iview打包上线后字体图标不显示解决办法
2020/01/20 Javascript
公众号SVG动画交互实战代码
2020/05/31 Javascript
python处理中文编码和判断编码示例
2014/02/26 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
python-tornado的接口用swagger进行包装的实例
2019/08/29 Python
执行Python程序时模块报错问题
2020/03/26 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
彩妆大赛策划方案
2014/05/13 职场文书
培训研修方案
2014/06/06 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
2014年行政部工作总结
2014/11/19 职场文书
2014年银行信贷员工作总结
2014/12/08 职场文书