MySQL数据库之表的增删改查

Posted liuxu2019

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据库之表的增删改查相关的知识,希望对你有一定的参考价值。

mysql数据库之表的增删改查


1 引言

1、MySQL数据库中,数据库database就是硬盘上的一个文件夹,表table就是文件夹里面的一个文件

2、表中的一条记录就相当于文件中的一行内容,与excel表类似,表table中有不同的标题,称之为字段

3、本节对表结构做增删改查,即创建表、删除表、修改表、查看表结构,至于表中数据的增删改查日后单独总结

2 创建表

1、创建一张表,需要建一个表结构,需要表名、表中字段的名字,字段的数据类型及约束条件等

#建表语法:
    create table 表名(
    字段1 数据类型[(宽度) 约束条件],
    字段2 数据类型[(宽度) 约束条件],
    字段3 数据类型[(宽度) 约束条件],
    ......) engine=innodb;

#注意:
    1、一张表中字段名不能相同
    2、字段的数据类型不能少、宽度和约束条件是可选的
    3、搜索引擎默认engine=innodb,可默认不写
#示例:
#建一张学生表,包含学生id\姓名\年龄\性别\分数5个字段

create table student(
    id int,
    name char(10) not null, #约束条件,not null 不为空
    sex char(10),
    score int);

#注意:
    1、每个字段用逗号隔开,最后一个字段不用逗号
    2、int数据类型可以不指定宽度,日后再解释

3 删除表

1、不同的删除方式会有不同的效果,说白点就是有的删除方式删除的干净,而有的则不是

2、方式1的 drop,彻底删除表全部数据和表结构,立刻释放磁盘空间

3、方式2的 truncate,删除表全部数据,保留表结构,立刻释放磁盘空间

4、方式3的 delete from,删除表全部数据,表结构不变,对于 MyISAM 会立刻释放磁盘空间,InnoDB 不 会释放磁盘空间;这种删除后表中 auto_increment的字段会有影响,需注意!

#方式1:
    drop table 表名;
#方式2:
    truncate table 表名;
#方式3:
    delete from 表名;

4 修改表

1、修改表指的是:修改表名、字段名及其约束条件,和删除字段等操作

2、修改字段时,需要指定数据类型,不管是否修改数据类型

3、增加字段、可以一次增加多个,用逗号隔开;也可以指定新字段的位置

#语法:
#1修改表名
    alter table 表名 新表名;

#2修改字段约束条件
    alter table 表名 modify 字段名 数据类型[(宽度) 约束条件];
#3修改字段名
    alter table 表名 change 旧字段名 新字段名 旧数据类型[(宽度) 约束条件];
    alter table 表名 change 旧字段名 新字段名 新数据类型[(宽度) 约束条件];
    
#4增加字段
    alter table 表名 add 新字段名1 数据类型[(宽度) 约束条件],
                            新字段名2 数据类型[(宽度) 约束条件];
                         
    alter table 表名 add 新字段名 数据类型[(宽度) 约束条件] first;
    alter table 表名 add 新字段名 数据类型[(宽度) 约束条件] after 字段名;

#5删除字段
    alter table 表名 delete drop 字段名;

5 查看表

#语法:
desc 表名;   #desc是describe的简写

注意:show create table t1\G; #查看表详细结构,可加\G

6 复制表

1、复制表分两种:完全复制(数据和结构),仅复制表结构

2、方式1的复制会复制原表的数据和结构,但key不会复制(primary key\unique key\索引)
3、方式2的复制是因为存在where 条件是Flase,过滤掉了多有数据,就仅剩表结构

4、推荐方式3的复制表结构

#1完全复制
    create table 新表名 select * from student;     #方式1


#2 仅复制表结构,
    create table 新表名 select *from student where 1=2;    #方式2
    create table 新表名 like student;                      #方式3

以上是关于MySQL数据库之表的增删改查的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据库 ---MySQL表的增删改查(进阶)

mysql 数据表的增删改查 目录

MySQL表的增删改查(进阶)

django-mysql表的增删改查

MySQL的基本操作 库和表的增删改查命令

MySQL数据库2表的增删改查