当前位置: 首页 > news >正文

MySQL——表操作

目录

一、创建表

二、查看表

2.1 查看表中某成员的数据

2.2 查看整个表中的表成员

2.3 查看创建表时的句柄

三、修改表 alter

3.1 重命名 rename

3.2 新增一列 add

3.3 更改列属性 modify

3.4 更改列名称 change

3.5 删除某列


上一篇博客介绍了库的操作,接下来来看一下表的相关操作。

一、创建表

create table table_name (

        field1 datatype,

        field2 datatype,

        field3 datatype

) character set 字符集 collate 校验规则 engine 存储引擎;

注意,最后一个数据成员后面没有逗号。

下面我们举例看一下如何创建表:

mysql> create table user1(

-> id int,

-> name varchar(20) comment '用户名',

-> password char(32) comment '用户密码',

-> birthday date comment '用户生日'

-> )character set utf8 collate utf8_general_ci engine MyIsam;

Query OK, 0 rows affected, 2 warnings (0.00 sec)

mysql> create table user2(

-> id int,

-> name varchar(20) comment '用户名',

-> password varchar(32) comment '用户密码',

-> birthday date comment '用户生日' ->

)charset=utf8 collate=utf8_general_ci engine=InnoDB;

Query OK, 0 rows affected, 2 warnings (0.04 sec)

对于字符集、校验集以及存储引擎的设置,以上两个例子中的方法都可以使用,可以直接使用空格,也可以使用 = 赋值。

二、查看表

2.1 查看表中某成员的数据

desc 表名;

关于查找到的信息,请看下图:

2.2 查看整个表中的表成员

show tables;

2.3 查看创建表时的句柄

show create table 表名 \G

\G 格式化显示,过滤掉不需要的符号

使用 \G 前:

使用 \G 后:

三、修改表 alter

3.1 重命名 rename

alter table tb_name rename to new_name;

在MySQL中对表进行重命名,输入以下语句:
mysql> alter table user1 rename to user;
Query OK, 0 rows affected (0.03 sec)

验证一下:
mysql> show tables;
+----------------------+
| Tables_in_helloworld | 
+----------------------+
| user |
+----------------------+
1 row in set (0.00 sec)

可以看到 user1 真的被重命名为 user 了

3.2 新增一列 add

为了方便观察现象,先执行以下语句向表中插入两条数据:

mysql> insert into user values(1, '张三', '123456', '2010-06-18'), (2, '李四', '654321', '2014-07-12'); Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0

alter table tb_name add 列名 数据类型 (comment '备注' after 某列名);

在某列后新增新列,括号中的内容可以省略

mysql> select * from user;
+------+--------+----------+------------+--------+
| id   | name   | password | birthday   | school |
+------+--------+----------+------------+--------+
|    1 | 张三   | 123456   | 2010-06-18 | NULL   |
|    2 | 李四   | 654321   | 2014-07-12 | NULL   |
+------+--------+----------+------------+--------+
2 rows in set (0.00 sec)

可以看到,表中真的在 birthday 后新增了一列 school

3.3 更改列属性 modify

这里的列属性是列的数据类型与comment

alter table tb_name modify 列名 新属性 (comment '新备注');

将 `name` varchar(20) DEFAULT NULL COMMENT '用户名', 改为 varchar(32) 且不加 comment:
mysql> alter table user modify name varchar(32);
使用 show create table user 查看:
`name` varchar(32) DEFAULT NULL,

从上面的例子可以看出来,在修改之前,因为我们在 create 时,为 name 添加了 comment ,但是修改后仅仅更改了数据类型,并没有新添加 comment ,之后在查看时,发现 comment 的内容消失了,这意味着什么呢?

不难看出, modify 的修改是以新属性覆盖旧属性

3.4 更改列名称 change

alter table tb_name change 原列名 新列名 列属性;

将表中第一列的 id 改为 ID:
mysql> alter table user change id ID int;
前后使用 show create table user; 可以发现:
`id` int DEFAULT NULL, 被修改为了 `ID` int DEFAULT NULL 。

3.5 删除某列

alter table tb_name drop 列名;

这个比较简单,就不做样例说明了。

http://www.lryc.cn/news/433681.html

相关文章:

  • 阅读笔记--Guiding Attention in End-to-End Driving Models(二)
  • Linux: network: TCP: errno: EWOULDBLOCK
  • 闲话“设计模式”
  • Sentence-BERT实现文本匹配【CoSENT损失】
  • 业余考什么证书比较实用?
  • 16款facebook辅助工具,总有一款适合你!
  • 给网站发外链的好处,你了解多少?
  • 安卓链接正常显示,ios#符被转义%23导致链接访问404
  • excel分列
  • STM32 HAL DMA 中断碰到的问题
  • 让树莓派智能语音助手实现定时提醒功能
  • AIoTedge边缘计算+边缘物联网平台
  • Java使用拷贝asset文件,解密,并用DexclassLoader加载执行
  • 【AcWing】861. 二分图的最大匹配(匈牙利算法)
  • 经验笔记:JSP(JavaServer Pages)
  • 【零基础必看的数据库教程】——SQL WHERE 子句
  • vscode docker debug python
  • 【Kubernetes】常见面试题汇总(四)
  • MATLAB基础语法知识
  • PopupInner源码分析 -- ant-design-vue系列
  • Maven 的 pom.xml 文件中<dependency> 元素及其各个参数的解释
  • 【信创】Linux终端禁用USB存储 _ 统信 _ 麒麟 _ 方德
  • 开放API接口时要注意的安全处理总结
  • FastGPT自定义插件的icon
  • SprinBoot+Vue旅游网站的设计与实现
  • 代码随想录刷题day27丨455.分发饼干 ,376. 摆动序列 ,53. 最大子序和
  • Detect It Easy
  • c++开关灯
  • DevOps实现CI/CD实战(六)- Jenkins集成k8s
  • 张雪峰:物联网行业迎高光时刻!如何选择?我们诚聘销售工程师!