LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 464|回复: 0

MySQL表操作

[复制链接]
发表于 2024-1-9 16:30:19 | 显示全部楼层 |阅读模式
1 新增表

基本语法:

create table [if not exists] + 表名(
        字段名称 数据类型,
        ……
        字段名称 数据类型        /* 最后后一行,不需要加逗号 */
)[表选项];

其中,if not exists表示

如果表名不存在,就执行创建代码;如果表名存在,则不执行创建代码。
表选项则是用来控制表的表现形式的,共有三种,分别为:

字符集设定:charset/ character set+ 具体字符集,用来表示数据存储的编码格式,常用的字符集包括GBK和UTF8等。
校对集设定:collate+ 具体校对集,表示数据比较的规则,其依赖字符集。
存储引擎:engine+具体存储引擎,默认为InnoDB,常用的还有MyISAM.
由于任何表都归属于某个数据库,因此在创建表的时候,都必须先指定具体的数据库。在这里,指定数据库的方式有两种,分别为:

第 1 种:显式的指定表所属的数据库,示例

create table if not exists test.student(
        name varchar(10),
        age int,            /* 整型不需要指定具体的长度 */
        grade varchar(10)        /* 最后后一行,不需要加逗号 */
)charset utf8;

第 2 种:隐式的指定表所属的数据库,示例

use test;                                /* use + 数据库名称,表示切换到指定的数据库,这句命令其实不加分号也可以,但不建议这么做 */
create table if not exists student(
        name varchar(10),
        age int,            /* 整型不需要指定具体的长度 */
        grade varchar(10)        /* 最后后一行,不需要加逗号 */
)charset utf8;

2 查询表

查看全部 --> 基本语法:show tables;

查看部分(模糊查询)--> 基本语法:show tables like 'pattern';

其中,pattern是匹配模式,有两种,分别为:

%:表示匹配多个字符;
_:表示匹配单个字符。
此外,在匹配含有下划线_的表名的时候,需要在下划线前面加上反斜线\_进行转义操作。

示例:show tables like '%t';表示匹配所有以t结尾的表。

查看表的创建语句 --> 基本语法:show create table + 表名;

在这里,咱们也可以用\g和\G代替上述语句中的;分号,其中\g等价于分号,\G则在等价于分号的同时,将查的表结构旋转90度,变成纵向结构。

查看表中的字段信息 --> 基本语法:desc/describe/show columns from + 表名;

3 更新表

在这里,需要注意:表的修改,分为修改表本身和修改表中的字段。

第 1 类:修改表本身

修改表名,基本语法:rename table 旧表名 to 新表名;
修改表选项,基本语法:alter table + 表名 + 表选项[=] + 值;
第 2 类:修改表中的字段,新增、修改、重命名和删除

新增字段,基本语法:alter table + 表名 + add + [column] + 字段名 + 数据类型 + [列属性][位置];
其中,位置表示此字段存储的位置,分为first(第一个位置)和after + 字段名(指定的字段后,默认为最后一个位置).
示例:alter table student add column id int first;
修改字段,基本语法:alter table + 表名 + modify + 字段名 + 数据类型 + [列属性][位置];
其中,位置表示此字段存储的位置,分为first(第一个位置)和after + 字段名(指定的字段后,默认为最后一个位置).
示例:alter table student modify name char(10) after id;
重命名字段,基本语法:alter table + 表名 + change + 旧字段名 + 新字段名 + 数据类型 + [列属性][位置];
其中,位置表示此字段存储的位置,分为first(第一个位置)和after + 字段名(指定的字段后,默认为最后一个位置).
示例:alter table student change grade class varchar(10);
删除字段,基本语法:alter table + 表名 + drop+ 字段名;
示例:alter table student drop age;
注意:如果表中已经存在数据,那么删除该字段会清空该字段的所有数据,而且不可逆,慎用。

4 删除表

基本语法:

-- 可以一次删除多张表
drop table + 表1, 表2 ... ;       
在这里,需要注意:此删除为不可逆操作,希望大家谨慎使用。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表