您的位置:首页 > 数据库 > MySQL

MYSQL---数据库中表的操作

2016-06-25 12:02 561 查看
在数据库中创建表

1.首先选中一个数据库 use example;//example为数据库名

2.创建表: create table example0(id int,name varchar(20),sex boolean);//example0为表名

属性之间用逗号分隔开
在创建表的同时考虑完整性约束条件
主键用来标识唯一记录,表中主键值互不相同


1)设置表的单字段主键 create table example1(id int primary key,name varchar(20),sex boolean);

2)设置表的多字段主键 create table example2(id int,name varchar(20),sex boolean,primary key(id,name));

外键用来建立该表与父表之间的联系,父表删除某条信息时,子表与之对应的信息必须改变。比如学生表和课程表,当学生退学时,在学生表中删除该学号信息时,课程表中的课程成绩等对应信息必须删除。

3)设置表的外键 (example3表的外键id,name依赖example2的主键id,name.其中c_fk为外键别名)

create table example3(id int,name varchar(20),score float,constraint c_fk foreign key(id,name) references example2(id,name));

给已有表添加外键 alter table 表名 add constraint c_fk foreign key(id,name) references example2(id,name);

设置外键时,出现错误121,表明外键重复不能创建外键。不同表中外键也不能重复。

4)设置表的非空约束 即字段的值不能为空,如果新插入的该记录中字段值为空,则系统报错。 eg:属性名 数据类型名 not null

create table example4(id int not null primary key,name varchar(20),sex boolean);

5)设置表的唯一性约束 即该字段的值不能重复出现。 eg:属性名 数据类型名 unique

create table example5(id int not null primary key,name varchar(20) unique,sex boolean);

6)设置表的属性值自动增加,主要为表中插入新的记录自动生成唯一的ID.一个表只能有一个字段用auto_increment约束,且为主键的一部分。约束的字段可以是任何整数类型。默认从1递增。而且自增字段不能设置默认值

create table example6(id int not null primary key auto_increment,name varchar(20) unique,sex boolean);

id的值被设置为自动增长,以后每插入一个新的记录,id的值就在原来的基础上增加1;

7)设置表的属性的默认值。当新插入记录未给字段指定值时,系统将自动为这个字段插入默认值。

create table example6(id int not null primary key,name varchar(20) unique,sex boolean default 1/true);



查看表结构

1.查看表结构 : describe 或 desc 均可查看表的结构

其中表结构中的 field(字段) type(数据类型) null(是否为空) key(是否为主外键) default(默认值) extra(额外信息)

2.查看表的详细结构语句 show create table 表名 \G;

除了可以查看表的字段名,数据类型,完整性约束条件等信息,还可以查看表的默认存储引擎和字符编码,加上\G之后可以更直观的显示信息。

修改表

1.修改表名 alter table 旧表名 rename 新表名

2.修改字段的数据类型 alter table 表名 modify 属性名 数据类型(修改后的新数据类型)

3.修改字段名 alter table 表名 change 旧属性名 新属性名 数据类型

4.增加字段

1) 增加无完整性约束的字段(表中多了一个字段) alter table 表名 add 属性名 数据类型 ;

2) 增加有完整性约束的字段(表中多了一个字段) alter table 表名 add 属性名 数据类型 约束条件(not null等);

3) 在增加字段的时候,应该尽可能加上完整性约束条件,这样可以提高数据的安全性。

a)表的第一个位置增加字段 alter table 表名 add 属性名 数据类型 约束条件 first;

b) 在指定位置增加字段 alter table 表名 add 属性名 数据类型 约束条件 after 表中已有的属性名;

c)对于一个数据表而言,字段的排列顺序并没有什么影响,但是对于创建表的人,将相关的属性名放在一起,便于更好理解表的结构

d)删除字段 alter table 表名 drop 属性名

e)修改字段的排列位置

字段修改到第一个位置 alter table 表名 modify 属性名 数据类型 first;

字段修改到指定位置 alter table 表名 modify 属性名 数据类型 after 表中已有的属性名;

g)修改表的存储引擎 alter table 表名 engine=存储引擎名;

如果一个表中已经有较多的数据,请不要随便更改存储引擎,防止出现意料之外的影响。

h)删除表的外键约束 alter table 表名 drop foreign key 外键别名;

可用show create table 表名;该语句来显示外键约束是否已经被删除

删除表

1.删除没有被关联的普通表 drop table 表名 删除一个表时,表中的所有数据也都会被删除

2.删除被其他表关联的父表

1)先删除子表,再删除父表 ,但会牺牲子表数据

2)先删除子表的外键约束,再删除父表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: