表的基本操作
1. 创建表
格式
create table [if not exists] 表名(
字段名称 数据类型 [null | not null], [null | not null] 该字段是否可以为空, 默认都可以为空
字段名称 数据类型 [auto_increment], [auto_increment] 该字段的值自动增长
字段名称 数据类型 [primary key], [primary key] 主键, 一张表中只能有一个主键
字段名称 数据类型 [default], [default] 默认值, 如果没有传递对应的值, 就使用默认值
字段名称 数据类型 [comment] [comment] 备注, 方便程序员之间沟通
)engine=存储引擎; 存储引擎 innodb/myisam/memory
字段名称: 相当于Excel中每一列的名称
数据类型: 相当于Excel中每一列的数据类型
注意点:
由于一个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)
);
2. 查看数据库中的表
格式
show tables;
查看数据库中的表的结构
格式
desc [ribe] + 表的名称;
例
desc person;
3. 删除表
格式 :
drop table [ if exists ] 表的名称1 + 表的名称2.......;
例
1. drop table stu; 注意点 : 表不存在会报错;
2. drop table if exists stu; 删除表stu 如果表stu存在
3. drop table if exists stu1 stu2; 删除表stu1 stu2
4. 修改表的基本操作
4.1添加字段
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;
4.2 删除字段
格式:
alter table 表名 drop 字段名;
示例一:
alter table stu3 drop name;
4.3修改字段
格式:
alter table 表名 change 原始字段名 新字段名 数据类型;
示例一:
改字段名称, 并且改字段的类型
alter table stu3 change addr age int;
示例二:
改字段的类型, 不改字段的名称
alter table stu3 modify phone varchar(20);
4.4 修改储存引擎
格式
alter table 表名 engine = 新的引擎名;
例
alter table stu engine = innodb;
alter table stu1 engine = myisam;
- 结论:
发现只要新建一个数据库, 就会自动创建一个文件夹
发现只要删除一个数据库, 就会自动删除一个文件夹
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表结构定义文件
engine = myisam 储存引擎
create table stu2(
id int,
name varchar(20)
)engine=myisam;
- 通过观察发现指定存储引擎为myisam, 只要创建一张表就会自动创建三个文件
- .frm文件是MySQL表结构定义文件
- .MYD文件存储表的数据
- .MYI文件存储表的索引
engine = memory; 储存引擎
create table stu3(
id int,
name varchar(20)
)engine=memory;
- 通过观察发现指定存储引擎为memory; 只要创建一张表就会自动创建一个文件
- .frm文件是MySQL表结构定义文件
注意点:
- memory会将数据存储到内存中, 一旦电脑重启数据就不见了
- 特点读写比较快, 但是不会永久存储
4.5修改表的名称
格式:
alter table 原表名 rename to 新表名 ;
例如:
alter table stu1 rename to stu2;
网友评论