MySQL表的操作

目录

创建表

查看表结构

修改表

删除表


表的操作会涉及两类SQL语句:

DDL数据定义语言:比如建表,删表,改表,新增列,删除列等。

DML数据操作语言:比如插入记录、删除记录、修改记录等。

创建表

SQL语句如下:

CREATE TABLE [IF NOT EXISTS] table_name(
	field1 datatype1 [COMMENT '注释信息'],
	field2 datatype2 [COMMENT '注释信息'],
	field3 datatype3  [COMMENT '注释信息']
)[CHARSET=charset_name] [COLLATE=collation_name] [ENGINE=engine_name];

解释说明:

SQL中大写的为关键字,[]为可选项。

  • [IF NOT EXISTS]:可选参数,表示如果表不存在,则创建表。
  • table_name:表示要创建的表的名称。
  • field1, field2, field3:表示表的各列的名称。
  • datatype1, datatype2, datatype3:表示表的各列的数据类型。
  • [COMMENT '注释信息']:可选参数,用于为表的字段提供注释信息。
  • [CHARSET=charset_name]:可选参数,用于指定表的字符集。
  • [COLLATE=collation_name]:可选参数,用于指定表的校对规则。
  • [ENGINE=engine_name]:可选参数,用于指定表的存储引擎。

使用show engines;SQL可以查看当前MySQL支持和默认的存储引擎。如下:

MySQL表的操作_第1张图片

 创建表之前要先选中一个数据库,然后在数据库中建表:

MySQL表的操作_第2张图片

MySQL表的操作_第3张图片

在/etc/my.cnf即mysql的配置文件可以看到数据库的存储路径

MySQL表的操作_第4张图片

 即:datadir=/usr/local/mysql/data

在改路径下可以看到创建的数据库,其实是一个目录,进入目录可以看到对应的表:

 采用不同的存储引擎,创建表时所产生的文件不一样:

说明:

  1. InnoDB引擎(默认):

    • 表结构文件:.frm文件,包含表的定义和结构。
    • 数据文件:.ibd文件,包含表的数据和索引。
    • 事务日志文件:.ib_logfile文件,记录了InnoDB引擎的事务日志。
    • 重做日志文件:.ib_redolog文件,记录了InnoDB引擎的重做日志,用于恢复。
    • 临时表空间文件:.ibtmp文件,用于存储临时表等临时数据。
  2. MyISAM引擎:

    • 表结构文件:.frm文件,包含表的定义和结构。
    • 数据文件:.MYD文件,包含表的数据。
    • 索引文件:.MYI文件,包含表的索引。
  3. Memory引擎:

    • 表结构文件:.frm文件,包含表的定义和结构。
    • 数据文件:存储在内存中,没有独立的物理文件。
  4. CSV引擎:

    • 表结构文件:.frm文件,包含表的定义和结构。
    • 数据文件:以.csv格式存储数据,通常是一个文本文件,可以直接使用文本编辑器打开和编辑。

查看表结构

使用desc 表名;SQL查看表的结构:

MySQL表的操作_第5张图片

 说明:

  • Field表示该字段的名字。
  • Type表示该字段的类型。
  • Null表示该字段是否允许为空。
  • Key表示索引类型,比如主键索引为PRI。
  • Default表示该字段的默认值。
  • Extra表示该字段的额外信息说明。

 要查看创建表时的相关细节,可以使用show create table 表名;SQL。加上\G可以使其格式方便查看,如下:

MySQL表的操作_第6张图片

修改表

对应SQL如下:

ALTER TABLE table_name ADD 新增列名 新增列的属性;

ALTER TABLE table_name MODIFY 列名 修改后的列属性;

ALTER TABLE table_name DROP 列名;

ALTER TABLE table_name RENAME [TO] 新表名;

ALTER TABLE table_name CHANGE 列名 新列名 新列属性;

ADD用于新增列,MODIFY用于修改列属性,DROP用于删除列,RENAME用于修改表名, CHANGE用于修改列名和列属性。

比如:

MySQL表的操作_第7张图片

MySQL表的操作_第8张图片

 MySQL表的操作_第9张图片

可以发现表的创建信息和表的详细信息都改变了。

删除表

使用下面SQL:

DROP [TEMPORARY] TABLE [IF EXISTS] table_name;

例如:

MySQL表的操作_第10张图片

 TEMPORARY说明:

使用TEMPORARY关键字在创建表语句中可以创建临时表。临时表是在与服务器的会话结束时自动消失的。以下是与临时表相关的总结:

  1. 使用TEMPORARY关键字在创建表语句中可以创建临时表。
  2. 临时表的名字可以与某个已有的永久表相同。当有临时表存在时,对应的永久表会被隐藏,即无法访问。
  3. 若要删除临时表,需要使用DROP语句,并在表名前加上TEMPORARY关键字。这是为了避免在重新连接后(临时表已不存在)时,无意中使用DROP删除了对应的永久表。
  4. 临时表只在当前会话中可见,并且对其他会话是不可见的。当会话终止时,临时表会自动删除,不会占用数据库中的存储空间。
  5. 临时表通常用于存储临时数据,例如在复杂查询中使用临时表来存储中间结果。
  6. 临时表的数据只在当前会话中有效,不会对其他会话产生影响。每个会话都有自己的临时表的副本。

使用临时表可以有效地管理临时数据,避免对永久表造成干扰,并且能够在会话结束时自动清理临时数据。

你可能感兴趣的:(MySQL,mysql,数据库)