1.创建表的语法形式

create table 表名 (属性名 数据类型 [完整性约束条件]);

create table example0(id int,name varchar(20),sex boolean);

2.设置表的主键

Create table 表名(属性名 数据类型 primary key)

create table example1(stu_id int primary key,stu_name varchar(20),stu_sex boolean);

3.多字段主键

create table 表名(属性名 数据类型 primary key(属性名1,属性名2,…))

create table example2(stu_id int,course_id int,grade float,primary_key(stu_id,course_id));

4.设置表的外键

create table 表名(属性名 数据类型 primary key (属性1.1,属性1.2) reference 表名(属性名2.1,属性2.2) )

mysql> create table example3(

-> stu_id int,

-> course_id int,

-> constraint c_fk foreign key(stu_id,course_id)references example2(stu_id,course_id)

-> );

5.设置表的非空约束

create table 表名(属性名 数据类型 not null)

mysql> create table example4(

-> id int not null primary key,

-> name varchar(20) not null,

-> stu_id int,

mysql> alter table example0 rename to user;

修改后

mysql数据表的创建与管理(Mysql数据库中表的创建)(1)

2.修改字段的数据类型

alter table 表名 modify 属性名 数据类型;

我们修改name字段的数据类型

alter table user modify name varchar(30);

修改前:

mysql数据表的创建与管理(Mysql数据库中表的创建)(2)

修改后:

mysql数据表的创建与管理(Mysql数据库中表的创建)(3)

3.修改字段名

alter table 表名 change 旧属性名 新属性名 新数据类型;

1. 只修改字段名,不修改数据类型

mysql数据表的创建与管理(Mysql数据库中表的创建)(4)

修改example1中stu_named的字段名为name

alter table example1 change stu_name name varchar(20);

mysql数据表的创建与管理(Mysql数据库中表的创建)(5)

2. 修改字段名且修改数据类型

修改example1中stu_sex的字段为sex,且数据类型修改为int(2)

alter teble example1 change stu_sex sex int(2);

mysql数据表的创建与管理(Mysql数据库中表的创建)(6)

3. 增加字段

alter table 表名 add 属性名1 数据类型[完整性约束条件] [first |after 属性名2];

属性1:指需要增加的字段的名称;

数据类型:新增字段的数据类型;

(1) 增加无完整性约束条件的字段

我们在user表中增加一个无完整性约束条件的字段phone字段。

未执行语句之前

执行语句后

alter table user add phone varchar(20);

(2) 增加有完整性约束条件的字段

我们在user表中增加一个有非空约束的age字段

语句执行前

mysql数据表的创建与管理(Mysql数据库中表的创建)(7)

语句执行后

alter table user add age int(4) not null;

mysql数据表的创建与管理(Mysql数据库中表的创建)(8)

(3) 表的第一个位置增加字段

我们将在user表中第一个位置增加一个num字段,并设置为主键

语句执行前

mysql数据表的创建与管理(Mysql数据库中表的创建)(9)

语句执行后

alter table user add num int(8) primary key first;

mysql数据表的创建与管理(Mysql数据库中表的创建)(10)

(4) 表的指定位置增加字段

我们将user表中phone的后面增加address字段

语句执行前

mysql数据表的创建与管理(Mysql数据库中表的创建)(11)

语句执行后

alter table user add address varchar(30) after phone;

mysql数据表的创建与管理(Mysql数据库中表的创建)(12)

4.删除字段

alter table 表名 drop 字段名;

我们从user表中删除id字段

语句执行前

mysql数据表的创建与管理(Mysql数据库中表的创建)(13)

语句执行后

alter table user drop id;

mysql数据表的创建与管理(Mysql数据库中表的创建)(14)

5.修改字段的排列位置

语法:alter table 表名 modify 属性名1 数据类型 first|after 属性名2;

属性名1:指需要修改位置的字段名称;

数据类型:指属性名1的数据类型;

first:指指定位置为表的第一个位置;

after 属性名2:指指定属性名1插入在属性名2之后。

(1)字段修改到第一个位置

我们user表中name字段修改为该表的第一个字段

修改前

mysql数据表的创建与管理(Mysql数据库中表的创建)(15)

修改后

alter table user modify name varchar(30) first;

mysql数据表的创建与管理(Mysql数据库中表的创建)(16)

(2)字段修改到指定位置

我们将user表中sex字段排到age字段之后

语句执行前

mysql数据表的创建与管理(Mysql数据库中表的创建)(17)

语句执行后

alter table user modify sex tinyint(1) after age;

mysql数据表的创建与管理(Mysql数据库中表的创建)(18)

6.更改表的存储引擎

语法:alter table表名 engine=myisam;

我们先查看一下user表的存储引擎,结果为:InnoDB

mysql数据表的创建与管理(Mysql数据库中表的创建)(19)

执行后

alter table user engine=myisam;

mysql数据表的创建与管理(Mysql数据库中表的创建)(20)

7.删除表的外键约束

语法:alter table 表名 drop foreign key 外键别名;

外键别名:指创建表时设置的外键的代号

我们将example3的外键约束删除

语句执行前

mysql数据表的创建与管理(Mysql数据库中表的创建)(21)

语句执行后

alter table example3 drop foreign key c_fk;

mysql数据表的创建与管理(Mysql数据库中表的创建)(22)

删除表

(1)删除没有被关联的普通表

语法:drop table 表名

我们接下来将example5表删除

语句执行前

mysql数据表的创建与管理(Mysql数据库中表的创建)(23)

语句执行后

drop table example5;

mysql数据表的创建与管理(Mysql数据库中表的创建)(24)

(2)删除被其他表关联的父表

接下来我们删除example1表

drop table example1;

mysql数据表的创建与管理(Mysql数据库中表的创建)(25)

删除失败,有外键依赖于该表

example4表依赖于example1表。example4表的外键时stu_id 依赖于example1表的主键。example1表是example4表的父表。方法一:如果要删除example4表,必须先去掉这种依赖关系。最简单直接的办法是,先删除example4,然后再删除父表example1。方法二:先删除子表的外键约束,然后删除父表。

执行语句前

mysql数据表的创建与管理(Mysql数据库中表的创建)(26)

语句执行后

mysql数据表的创建与管理(Mysql数据库中表的创建)(27)

结果显示成功

mysql数据表的创建与管理(Mysql数据库中表的创建)(28)

,