【MySQL】表的操作{创建/查看/修改/删除}

1.创建表

CREATE TABLE table_name (
	field1 datatype,
	field2 datatype,
	field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
field 表示列名
datatype 表示列的类型
character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

在这里插入图片描述

show create table user1;
show create table user1 \G;

1.1comment:注释信息

注释对于数据库的性能没有任何影响,它们只是作为元数据存储在数据库中,供人阅读。
注释的长度是有限制的,具体限制取决于MySQL的版本和配置,但通常足够长以包含有用的信息。

CREATE TABLE employee (  
    id INT AUTO_INCREMENT COMMENT '员工编号',  
    name VARCHAR(100) COMMENT '员工姓名',  
    position VARCHAR(100) COMMENT '职位',  
    salary DECIMAL(10, 2) COMMENT '薪资',  
    PRIMARY KEY (id)  
) COMMENT='员工信息表';

通过SHOW CREATE TABLE可以查看创建表时的语句

在这里插入图片描述

1.2存储引擎

不同的存储引擎,创建表的文件不一样。

users 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:
users.frm:表结构
users.MYD:表数据
users.MYI:表索引
innodb是.frm和.ibd(数据和索引放在一个文件)

2.查看表

字段名 字段类型 是否允许为空 索引类型 默认值 扩充
在这里插入图片描述

在这里插入图片描述

3.修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,
表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...);
ALTER TABLE tablename DROP (column);

插入两条记录

insert into users values(1,'a','b','1982-01-04'),(2,'b','c','1984-01-
04');

3.1add添加列,对原数据无影响

在这里插入图片描述

3.2drop删除列

alter table users drop password;

删除字段一定要小心,删除字段及其对应的列数据都没了

3.3modify修改列类型

在这里插入图片描述

3.4change修改列名

alter table Users change name Name varchar(60); --新字段需要完整定义

3.5rename [to]修改表名

alter table users rename [to] Users;

4.删除表

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
drop table Users;

5.总结

在MySQL中,DROP TABLE语句用于删除一个或多个表,并释放与之相关的空间。当你想要彻底移除表及其所有数据时,这个语句非常有用。DROP TABLE语句的语法支持一些选项,如TEMPORARY和IF EXISTS,这些选项提供了额外的灵活性和错误处理机制。

基本语法
sql
DROP TABLE [IF EXISTS] tbl_name [, tbl_name] …
使用TEMPORARY关键字
TEMPORARY关键字用于指定要删除的表是临时表。临时表只在当前会话(或连接)中可见,并且当会话结束时会自动删除。然而,如果你想要在当前会话中提前删除临时表,可以使用DROP TEMPORARY TABLE语句。但是,需要注意的是,在DROP TABLE语句中直接使用TEMPORARY关键字并不是MySQL的标准用法。要删除临时表,通常只需使用DROP TABLE,因为MySQL能够识别出哪些表是临时的。

使用IF EXISTS选项
IF EXISTS选项在尝试删除一个或多个表之前检查这些表是否存在。如果表存在,则将其删除;如果表不存在,则不会引发错误,而是简单地忽略该表并继续执行语句中的其他操作(如果有的话)。这在你不知道表是否存在但想要安全地尝试删除它时非常有用。

示例
删除名为my_table的表(如果它存在):
sql
DROP TABLE IF EXISTS my_table;
同时删除两个表(table1和table2),如果它们都存在:
sql
DROP TABLE IF EXISTS table1, table2;
注意:虽然这里提到了TEMPORARY,但在标准DROP TABLE语法中,如果你想要删除临时表,通常不需要(也不能)显式指定TEMPORARY。只需确保你正在正确的会话中操作,并且知道哪些表是临时的。
注意事项
使用DROP TABLE时要格外小心,因为一旦执行,表及其所有数据将被永久删除,且无法恢复(除非你有备份)。
如果你只是想删除表中的数据但保留表结构,应该使用TRUNCATE TABLE语句而不是DROP TABLE。
DROP TABLE操作通常不会记录在二进制日志中,除非你设置了相应的二进制日志格式(如ROW格式),但这取决于你的MySQL配置和版本。

您可以使用MySQL数据库的建语句来创建。以下是一个示例的MySQL语句: CREATE TABLE 名 ( 列1 数据类型, 列2 数据类型, 列3 数据类型, ... ); 其中,名是您要创建的名称,列1、列2、列3等是您要在创建的列的名称,数据类型是指定每个列的数据类型。 例如,如果您要创建一个名为"employees"的,其中包含名字、年龄和工资三个列,您可以使用以下建语句: CREATE TABLE employees ( name VARCHAR(50), age INT, salary DECIMAL(10,2) ); 在上面的例子中,name列的数据类型是VARCHAR(50),示存储最多50个字符的文本;age列的数据类型是INT,示存储整数;salary列的数据类型是DECIMAL(10,2),示存储最多10位数的带有两位小数的十进制数。 根据您的需求和的结构,您可以使用类似的语法来创建适合您的MySQL语句。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [常用mysql数据库配置文件](https://download.csdn.net/download/zslsh44/88278582)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Excel生成MYSQL语句](https://download.csdn.net/download/u014624447/13781003)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿猿收手吧!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值