MySQL数据库–表设计
一:MySQL数据类型
MySQL数据类型主要有三种:数值型,日期和时间型,字符串型。
- 数值型:
- 日期/时间型:
- 字符串型:
二:MySQL建表
- Navicat建表
点开一个数据库,左击下拉菜单中的表右击点击新建表
设置主键,数据类型,字符集等后,点击保存。
如图,表新建成功。
- 命令列界面方式创建表
语法1:
右击samp1_db,选中命令列界面。
输入:create table student1( id int(10) not null auto_increment comment'主键', name varchar(20) not null comment'姓名', sex char(2) not null default'男' comment '性别', age tinyint comment'年龄', primary key(id) )engine=innodb default charset=utf8;
刷新后,发现student1表被创建
auto_increment:自动递增
comment:备注
语法2:
*create 表名 like 已存在的表名*
命令列界面中输入:create table student1_like like student1;
表示创建一个与student1表结构相同的表
可以看到新建的student1_like表结构跟student1表结构相同,但是数据为空。
语法3:
*create 表名 select ..*
输入:create table student1_new select * from student1;
我们发现两个表的结构和数据内容相同
但是我们发现student1_new并没有继承student1的某些字段定义比如id的自动递增属性
三:查看表结构
- Navicat:
右键表点击“设计表” - 命令行界面:
使用wamp提供的MySQL Console,切换到表所在的数据库数据库然后输入 desc 表名; - 四:查看表定义
- Navicat查看表定义
右键表,选择对象信息 - 命令行查看表定义
五:修改表结构
- Navicat修改表
右键表选择设计表 - 命令行修改表
1.改变列的数据类型
语法:alter table 表名 modify
例如:alter table student1 modify name varchar(32); //将name的数据类型改为varchar(32).
2.增加表字段
语法:alter table 表名 add
例如:alter table student1 add mobile varchar(16) after name; //在name字段后面添加 一个mobile字段 。
3.删除表字段
语法:alter table 表名 drop
例如:alter table student1 drop mobile ; //删除mobile字段 。
4.修改字段名字
语法:alter table 表名 change 旧列名 新列名 列类型
例如:alter table student1 change sex gender char;
5.修改表的名称
语法:alter table 表名 rename 新表名
例如:alter table student1 change sex gender char;
六:删除表
- Navicat:右键表,删除表
- 命令行方式删除表:
语法:drop table 表名;
七:创建索引
语法:
create index 索引名 on table 表名(列的列表);
输入:create index index_name on student1(name);
再输入:show index from student1查看student1中的索引
其他创建索引的语法:
alter table 表名 add index 索引名(列的列表);
alter table 表名 add unique (列的列表);
alter table 表名 add primary key (列的列表);
删除索引:drop index 索引名 from 表名;
alter table 表名 drop index 索引名;