创建表
语法:
create table table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
field 表示列名
datatype 表示列的类型
character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
- 创建一个表名为users的表
create table users(
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
)character set utf8 engine MyISAM;
comment是注释的意思,相当于C语言中的“//”
该表的字符集采用的是utf8,存储引擎是MyISAM
查看表结构
desc 表名
修改表
修改表主要包括:修改字段名字、字段大小、字段类型、表的字符集类型、表的存储引擎,添加字段,删除字段等。
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);
例:
- 在users表中添加一条记录
insert into users values(1, 'Calm', 'a', '2000-09-20');
- 在users表中添加一个字段,用于保存IP地址
alter table users add IP varchar(100) comment 'IP地址' after birthday;
那插入一个新的字段后,会不会对表中的数据产生影响呢?
我们可以查看一下:
发现插入一个新的字段对表中数据并没有影响。
- 修改name,将其长度改为40
alter table users modify name varchar(40);
- 删除birthday列
要注意的是:删除列字段后,其对应的列数据也被删除了
alter table users drop birthday;
- 将表名修改为employee
alter table users rename [to] employee;
to可写可不写
- 将name列修改为xingming
alter table employee change name xingming varchar(40);//因为已经将表名修改为了employee,所以使用的是employee,xingming后边加上varchar(40)是因为新字段需要完整定义
删除表
例:
drop table employee;