第二章 创建、删除和修改表

创建表

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

属性名 数据类型 [完整性约束条件],

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

注:建表前先选择数据库

   

约束条件

约束条件

说明

primary key

设为主键

foreign key

设为外键,是与之联系的某表的主键

not null

设该属性不能为空

unique

标识该属性的值是唯一的

auto_increment

标识该属性的值自动增加

default

设置该属性的默认值

   

   

查看表结构

describe 表名;

mysql> describe user;

   

设置表的主键

单字段主键

mysql> create table user(id int primary key,

name varchar(23));

多字段主键

primary key(属性名1,属性名2)

   

mysql> create table user(id int,course_id int,grade float,primary

key(id,course_id));

 

设置表的外键

 

   

user_id(主键)

name

age

  

  

  

course_id(主键)

course_name

user_id(外键)

  

  

  

  

  

  

   

当父表删除某条信息时,子表对应得信息也会被删除。

   

constraint 外键别名 foreign key(属性1.1,属性1.2,……)

references 表名(属性2.1,属性2.1,……)

   

创建父表

mysql> create table user(u_id int primary key,name varchar(20));

   

创建子表

mysql> create table course(id int primary key,u_id int,constraint c_fk foreign key(u_id) references user(u_id));

   

c_fk为外键的别名,而且外键必须是父表的主键

父表

F

子表

   

设置表的非空约束

 

mysql> create table course(id int primary key,name varchar(20) not null,u_id int,constraint c_fk foreign key(u_id) references user(u_id));

   

   

   

   

设置 表的唯一约束

   

mysql> create table course(id int primary key,name varchar(20) unique,u_id int,constraint c_fk foreign key(u_id) references user(u_id));

   

   

   

   

   

设置表的属性值自动增加

mysql> create table course(id int primary key auto_increment,name varchar(20) not null,u_id int,constraint c_fk foreign key(u_id) references user(u_id));

   

   

   

设置表的属性的默认值

 

mysql> create table course(id int primary key auto_increment,Computer float default 0,name varchar(20) not null,u_id int,constraint c_fk foreign key(u_id) references user(u_id));

   

   

   

 

查看表结构

1.describe

   

   

2.show create table

   

   

   

   

修改表

修改表名

alter table 旧表名 rename 新表名;

   

   

修改字段的数据类型

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

   

mysql> alter table user modify name varchar(30);

   

修改字段名

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

   

mysql> alter table user change u_id user_id int;

   

更改后的字段与原来字段约束一致,如不更改数据类型,则与原来一致

   

增加字段

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

   

first参数指定新增字段为表的第一个字段,after指定在原有某个字段之后。默认在表的最后一个字段

   

mysql> alter table user add user_age int not null after user_id;

   

   

   

删除字段

alter table 表名 drop 属性名;

   

mysql> alter table user drop user_age;

   

修改字段的排列位置

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

   

更改表的存储引擎

alter table 表名 engine=存储引擎名;

   

更改表的默认编码集

alter table 表名 charset=utf8;

   

删除表的外键约束

alter table 表名 drop foreign key 外键别名;

   

删除表

a.删除未被关联的普通表

drop table 表名;

   

b.删除被关联的父表

1)先删除子表的外键约束,再删除父表

2)先删除子表,再删除父表

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值