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