自学内容网 自学内容网

MySQL 表的操作

要在mysql中的数据库创建表,首先要进入进入某个数据库,我们可以使用如下命令

use 数据库名;

例如,进入test1数据库

创建表

create table table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
  • field:字段名
  • datatype:该字段的数据类型
  • character set:指定字符集,若没有指定,与数据库使用的字符集一致
  • collate:指定校验集,若没有指定,与数据库使用的校验集一致
  • engine:指定存储引擎

例如,我们创建一个名为 t1 的表,其内容有两列,第一列为id,类型为 int,第二列为name,类型为 varchar(10),并设置字符集为utf8,校验集为utf8_general_ci,存储引擎为MyIsam。

同时我们可以查看/var/lib/mysql/test1目录下出现了三个文件:t1_375.sdit1.MYDt1.MYI,这三个文件共同维护了t1这张表。实际上也可看出,数据库本质是一个目录,而其中的表是一个个文件。

查看表

查看当前数据库有那些表

show tables;

查看表的结构

describe/desc 表名;

  • Field:字段名
  • Type:字段的数据类型
  • Null:该列是否允许为空
  • Key:索引类型
  • Default:默认值
  • Extra:扩充

查看建表时的语句

show create table 表名;

例如,我们可以查看创建 t1 时的语句。

我们可以将语句末尾的 ; 改为 \G 选项将格式简单化。

不过我们可以看到输出的建表语句与我们输入的语句并不完全相同,这是因为MySQL会对输入的语句进行优化,统一格式化,比如说MySQL建议将关键字全部大写,我们以小写的语句创建表格底层会被转化为大写。

修改表

添加行数据

insert into 表名 [(列名,列名...)] values (对应列的数据,对应列的数据...)
[,(对应列的数据,对应列的数据...),...];

[ ]中为可选项,填入表的列 [(列名,列名...)] 可以省略表示全插入,也可以 ( ) 中指定某些列部分插入,[,(对应列的数据,对应列的数据...),...] 表示可以添加多行数据,每行数据包含在 ( ) 中,行与行之间用逗号隔开。

例如

查看表中的数据

查看所有数据

select * from 表名;

例如我们查看刚刚添加的所有数据,可以发现如果部分插入时,那些没有插入数据的列值为NULL

也可以查看特定列的数据

select 列名[,列名,...] from 表名;

[ ]中为可选项,可以查看多列,列与列之间用逗号隔开。

还可以通过添加where选项添加条件查询,以便只返回满足特定条件的行

select * from 表名 where 条件;

例如我们查看 name='王五' 的行数据

添加列

alter table 表名 add 列名 类型 [comment 描述 after 某一列列名];

[ ]中为可选项,可以添加 comment 对该列的描述,以及 after 将新添加的列置于某一列的后面,未选用 after 时默认添加到最后一列,如果想添加到第一列则将 after 某一列列名 改为 first

例如,在t1表的 id 列后添加一列 age,数据类型为 int。

修改列

alter table 表名 change 旧列名 新列名 类型;

例如,我们将t1表的 id 改为 new_id,类型 int 改为 bigint。

删除列

alter table 表名 drop 列名;

例如,我们将t1表的 age 列删除。

修改表名

alter table 旧表名 rename [to] 新表名;

其中的 to 可以省略。

例如,我们将t1表重命名为 student。

删除表

drop table [if exists] 表名 [, 表名, ...];

[ ]中的内容为可选项,如果想要删除多个表,可以在表与表之间加逗号隔开。


原文地址:https://blog.csdn.net/2301_79881188/article/details/143669192

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!