03-表的增删改查

创建表

create table [if not exists] 表名(
    字段名称 数据类型 [null | not null],
    字段名称 数据类型 [auto_increment],
    字段名称 数据类型 [primary key],
    字段名称 数据类型 [default],
    字段名称 数据类型 [comment]
)engine=存储引擎;

字段名称: 相当于Excel中每一列的名称
数据类型: 相当于Excel中每一列的数据类型

[null | not null] 该字段是否可以为空, 默认都可以为空
[auto_increment] 该字段的值自动增长
[primary key] 主键, 一张表中只能有一个主键
[default] 默认值, 如果没有传递对应的值, 就使用默认值
[comment] 备注, 方便程序员之间沟通
存储引擎  innodb/myisam/memory

注意点:
由于一个MySQL中可以有很多数据库, 所以在创建表之前必须告诉MySQL要创建到哪一个数据库中

示例一:
use person;
create table stu(
    id int,
    name varchar(20)
);
上面语句的含义: 在person数据库中创建一张叫做stu的表, 表中有两个字段, 分别是id和name, id将来可以存储int类型的值, name将来可以存储字符串类型的值

示例二: 企业开发推荐写法
use person;
create table if not exists stu(
    id int,
    name varchar(20)
);

查看表

  • 查看数据库中的表
    show tables;
  • 查看表的结构
    desc[ribe] 表名;

删除表

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

示例一:
drop table stu;
注意点: 表不存在会报错

示例二:
drop table if exists stu;

示例三:
#可以连续删除多张表
drop table if exists stu1,stu2;

修改表

  • 添加字段
    alter table 表名 add 字段名 数据类型 [位置];
示例一:
会将新的字段添加到原有字段的最后
alter table stu3 add email varchar(30);

示例二:
会将新的字段添加到原有字段的最前面
alter table stu3 add phone int first;

示例三:
会将新的字段添加到指定字段的后面
alter table stu3 add addr varchar(100) after name;
  • 删除字段
    alter table 表名 drop 字段名;
示例一:
alter table stu3 drop name;
  • 修改字段
    alter table 表名 change 原始字段名 新字段名 数据类型;
示例一:
改字段名称, 并且改字段的类型
alter table stu3 change addr age int;

示例二:
改字段的类型, 不改字段的名称
alter table stu3 modify phone varchar(20);
  • 修改表的存储引擎
    alter table 表名 engine=引擎名称;
修改表的存储引擎实例
alter table stu2 engine=innodb;
  • 修改表名
    alter table 原始名称 rename to 新名称;

存储引擎分类

  • innodb: 默认
create table stu(
    id int,
    name varchar(20)
);
create table stu1(
    id int,
    name varchar(20)
)engine=innodb;
- 通过观察发现指定存储引擎为innodb和不指定引擎创建表生成的文件夹都一样, 所以推断出默认使用的就是innodb存储引擎
- innodb存储引擎只要创建一张表就会自动创建一个后缀为frm的文件
- 注意:
    + .frm文件不是存储表中的数据的, 数据会存储到ibdata1中, 如果数据比较多系统会自动创建ibdata2, ibdata3, ....
    + .frm文件是MySQL表结构定义文件
  • myisam
create table stu2(
    id int,
    name varchar(20)
)engine=myisam;
- 通过观察发现指定存储引擎为myisam, 只要创建一张表就会自动创建三个文件
-  .frm文件是MySQL表结构定义文件
-  .MYD文件存储表的数据
-  .MYI文件存储表的索引
  • memory
create table stu3(
    id int,
    name varchar(20)
)engine=memory;
- 通过观察发现指定存储引擎为memory; 只要创建一张表就会自动创建一个文件
-  .frm文件是MySQL表结构定义文件
- 注意点:
    + memory会将数据存储到内存中, 一旦电脑重启数据就不见了
    + 特点读写比较快, 但是不会永久存储
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 8,068评论 5 115
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,999评论 0 9
  • 一、MySQL优化 MySQL优化从哪些方面入手: (1)存储层(数据) 构建良好的数据结构。可以大大的提升我们S...
    宠辱不惊丶岁月静好阅读 2,655评论 1 8
  • 第一天 7月13日OCP笔记: Oracle Ocp11g准备资料: OracleFundmentals 书 管理...
    fjxCode阅读 2,892评论 0 4
  • 手动不易,转发请注明出处 --Trance 数据库系统命令: (1).查看存储过程状态:show pro...
    Trance_b54c阅读 1,831评论 0 8

友情链接更多精彩内容