MySQL数据库之数据表操作

作者:彭世瑜psy 时间:2024-01-19 18:01:40 

一、创建数据表

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             |
+----------------------+

来源:https://blog.51cto.com/u_13567403/5261309

标签:MySQL,数据库,操作
0
投稿

猜你喜欢

  • python执行scp命令拷贝文件及文件夹到远程主机的目录方法

    2023-07-10 09:12:19
  • 菜鸟课堂:详述如何提高MySQL中数据装载效率

    2009-10-23 14:29:00
  • pyqt5移动鼠标显示坐标的方法

    2023-06-09 22:37:30
  • Python数据结构树与算法分析

    2023-10-10 19:30:18
  • 网页设计:巧用记事本编辑网页

    2008-02-05 09:00:00
  • SqlServer查询和Kill进程死锁的语句

    2024-01-23 11:07:42
  • Javascript实现信息滚动效果

    2023-07-02 05:15:55
  • Java使用JDBC连接数据库的实现方法

    2024-01-25 15:38:47
  • 在Linux下安装Oracle

    2010-07-30 12:46:00
  • PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法

    2023-09-03 22:21:42
  • mysql 循环批量插入的实例代码详解

    2024-01-16 10:28:23
  • python学习基础之循环import及import过程

    2022-04-02 13:23:25
  • python 日期排序的实例代码

    2023-12-02 16:09:35
  • 影响SQL Server性能的关键三个方面

    2009-02-13 16:59:00
  • 微信小程序 支付功能实现PHP实例详解

    2023-11-19 08:53:36
  • python 计算两个列表的相关系数的实现

    2021-10-07 10:43:57
  • 使用Javascript动态增加,删除表格

    2008-02-03 19:15:00
  • python 的 openpyxl模块 读取 Excel文件的方法

    2023-02-23 14:41:56
  • 判断触发器正在处理的是插入,删除还是更新触发

    2012-01-29 18:30:34
  • 自己搭建resnet18网络并加载torchvision自带权重的操作

    2021-11-28 12:24:33
  • asp之家 网络编程 m.aspxhome.com