3 表的操作
3.1 创建一个表
语法:
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
说明:
- field 表示列名
- datatype 表示列的类型
- character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
- collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
3.2 创建表实例
- 创建一个使用默认引擎的class表
create table class(
major varchar(16) comment '专业',
name char(8) comment '班级名',
nums int comment '人数'
);
- 创建一个使用MyISAM引擎的students表
create table students(
id int comment '学号',
name varchar(16) comment '姓名',
gender char(2) comment '性别'
) engine MyISAM;
说明:
- MySQL创建表使用的默认引擎是InnoDB引擎。
- 使用不同的存储引擎,创建表的文件不一样。
students表使用的存储引擎是MyISAM,在目录中有三个不同的文件,分别是:
students.frm:表结构
students.MYD:表数据
students.MYI:表索引
而class表使用的是默认引擎InnoDB,在目录中只有一个文件:class.frm。
3.3 查看表结构
desc 表名
实例:
desc students;
输出结果:
3.4 修改表
在实际应用中,我们可能会遇到需要修改某个表的结构,比如字段名字,字段大小,字段数据类型,表的字符集编码,表的校验规则,表的存储引擎等等。除此以外还会遇到一些比如添加字段、删除字段的需求。这时我们就需要修改表。
语法:
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);
ALTER TABLE tablename MODIFY (column datatype [DEFAULT expr][,column datatype]...);
ALTER TABLE tablename DROP (column);
实例:
-
现在students表中添加两条数据
insert into students values(1501,'小明','男'),(1502,'小红','女');
-
在students表中添加一个新字段contact
alter table students add contact char(11) comment '联系方式' after name;
从图中可以看到,插入新字段后,对原来表中的数据没有任何影响,并且为新字段自动填充了默认值NULL。 -
修改name长度为30
alter table students modify name varchar(30);
-
删除gender列
alter table students drop gender;
注意:删除字段一定要小心,从图中可以看到,删除字段后其对应的列数据都没了!
-
修改表名为information
alter table students rename to information;
-
将name列改名为xingming
alter table information change name xingming varchar(60);
注意:改名新字段需要完整定义给出
3.5 删除表
语法:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
实例:
drop table class;
注意:删除表一定要慎重!!!