MySQL数据库–表设计

一:MySQL数据类型
MySQL数据类型主要有三种:数值型,日期和时间型,字符串型。

  • 数值型:

mysql建表日期语句 mysql创建日期字段_mysql建表日期语句

  • 日期/时间型:

mysql建表日期语句 mysql创建日期字段_mysql_02

  • 字符串型:

mysql建表日期语句 mysql创建日期字段_字段_03


二:MySQL建表

  • Navicat建表

点开一个数据库,左击下拉菜单中的表右击点击新建表

mysql建表日期语句 mysql创建日期字段_mysql建表日期语句_04


设置主键,数据类型,字符集等后,点击保存。

mysql建表日期语句 mysql创建日期字段_表名_05


如图,表新建成功。

mysql建表日期语句 mysql创建日期字段_MySQL_06

  • 命令列界面方式创建表
    语法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表结构相同的表

mysql建表日期语句 mysql创建日期字段_mysql_07


可以看到新建的student1_like表结构跟student1表结构相同,但是数据为空。

mysql建表日期语句 mysql创建日期字段_字段_08


mysql建表日期语句 mysql创建日期字段_MySQL_09


语法3:

*create 表名 select ..*

输入:create table student1_new select * from student1;

mysql建表日期语句 mysql创建日期字段_表名_10


我们发现两个表的结构和数据内容相同

mysql建表日期语句 mysql创建日期字段_字段_11


mysql建表日期语句 mysql创建日期字段_mysql_12


但是我们发现student1_new并没有继承student1的某些字段定义比如id的自动递增属性

mysql建表日期语句 mysql创建日期字段_mysql_13


mysql建表日期语句 mysql创建日期字段_表名_14


三:查看表结构

  • Navicat:
    右键表点击“设计表”
  • 命令行界面:
    使用wamp提供的MySQL Console,切换到表所在的数据库数据库然后输入 desc 表名;
  • mysql建表日期语句 mysql创建日期字段_表名_15

  • 四:查看表定义
  • Navicat查看表定义
    右键表,选择对象信息
  • mysql建表日期语句 mysql创建日期字段_mysql_16

  • 命令行查看表定义
  • mysql建表日期语句 mysql创建日期字段_字段_17

五:修改表结构

  • 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中的索引

mysql建表日期语句 mysql创建日期字段_mysql建表日期语句_18

其他创建索引的语法:
alter table 表名 add index 索引名(列的列表);
alter table 表名 add unique (列的列表);
alter table 表名 add primary key (列的列表);

mysql建表日期语句 mysql创建日期字段_字段_19


删除索引:drop index 索引名 from 表名;

alter table 表名 drop index 索引名;

mysql建表日期语句 mysql创建日期字段_mysql_20


mysql建表日期语句 mysql创建日期字段_表名_21