mysql之对表的操作

1. 表的基本概念

在数据库中,表是一种非常重要的数据库对象,是组成数据库的基本对象,由若干个字段组成,主要用来储存数据记录。

表中的数据库对象包含列,索引和触发器。

列:也称属性列,在具体创建表时必须指定列的名字和数据类型。

索引:是根据指定的数据库表列建立起来的顺序,提供了快速访问数据的途径且可监督表的数据,使其索引所指向的列中的数据不重复。

触发器:定义的事物命令的集合,当对一个表中的数据进行插入,更新或者删除时这组命令就会自动执行,可以用来确保数据的完整性和安全性。

2.创建表

CREATE TABLE t_dept(
deptno INT,
dbname VARCHAR(20),
loc VARCHAR(40)
);

3.查看表结构

3.1 DESCRIBE(DESC是简写)语句查看表定义

DESCRIBE t_dept;

3.2 SHOW CREATE TABLE语句查看表详细定义

SHOW CREATE TABLE  t_dept;

在显示详细定义信息时,可以使用";","\g"和"\G"符号来结束,为了让结果美观,便于查看,最好使用"\G"符号来结束,如下:

4. 删除表

DROP TABLE t_dept;

5. 修改表

5.1 修改表名

ALTER TABLE old_table_name RENAME [TO] NEW _table_name

5.2 增加字段

在表的最后一个位置增加字段:

ALTER TABLE table_name ADD 属性名 属性类型

在表的第一个位置增加字段:

ALTER TABLE table_name ADD 属性名 属性类型 FIRST

在表的指定字段之后增加字段:

ALTER TABLE table_name ADD 属性名 属性类型 AFTER 属性名

5.3 删除字段

ALTER TABLE table_name DROP 属性名

5.4 修改字段

修改字段的数据类型:

ALTER TABLE table_name MODIFY属性名 属性类型

修改字段的名字:

ALTER TABLE table_name CHANGE 旧属性名 新属性名  旧数据类型

同时修改字段的名字和属性:

ALTER TABLE table_name CHANGE 旧属性名 新属性名  新数据类型

修改字段的顺序:

ALTER TABLE table_name MODIFY 属性名1 数据类型 FIRST|AFTER 属性名2

6. 操作表的约束

对于已经创建好的表,虽然字段的数据类型决定了所能储存的数据类型,但是表中所储存的数据是否合法并没有进行检查。如果想针对表中的数据做一些完整性检查操作,可以通过表中的约束来完成。

6.1 MySQL支持的完整性约束

所谓表的完整性是指数据的准确性和一致性,而完整性检查就是指检查数据的准确性和一致性。

完整性约束
完整性约束关键字 含义
NOT NULL 约束字段的值不能为空
DEFAULT 设置字段的默认值
UNIQUE KEY(UK) 约束字段的值是唯一
PRIMARY KEY(PK) 约束字段为表的主键,可以作为该表记录的唯一标识
AUTO_INCREMENT 约束字段的值为自动增加
FOREIGN KEY(FK) 约束字段为表的外键

MySQL数据库管理系统不支持check约束,即可以使用check约束但是却没有任何效果。

根据约束数据列限制,约束可以分为单列约束(每个约束只约束一列数据)和多列约束(每个约束可以约束多列数据)。

 6.2 设置非空约束(NOT NULL,NK)

create table table_name(
属性名  属性类型 NOT NULL,

...
);

 6.3 设置字段的默认值(DEFAULT)

create table table_name(
属性名  属性类型 DEFAULT 默认值,

...
);

 6.4 设置唯一约束(UNIQUE,UK)

create table table_name(
属性名  属性类型 UNIQUE,

...
);

如果想给设置唯一约束的字段的约束取一个名字,可以执行SQL语句CONSTRAINT:

create table table_name(
dbname 属性类型,

...
CONSTRAINT uk_dbname UNIQUE(dbname)
);

 6.5 设置主键约束(PRIMARY KEY,PK)

设置主键约束时,必须满足主键字段的值是唯一,非空的。

单字段主键:

create table table_name(
属性名  属性类型 PRIMARY KEY,

...
);

如果想给设置单一主键的字段的约束取一个名字,可以执行SQL语句CONSTRAINT:

create table table_name(
dbname 属性类型,

...
CONSTRAINT pk_dbname PRIMARY KEY(dbname)
);

多字段主键:

当主键由多个字段组合而成时,需要通过SQL语句CONSTRAINT 来实现:

create table table_name(
属性名1 数据类型,
属性名2 数据类型,

...
CONSTRAINT 约束名 PRIMARY KEY(属性名1,属性名2)
);

6.6 设置字段值自动增长(AUTO_INCREMENT)

AUTO_INCREMENT是MySQL唯一拓展的完整性约束,当为数据库表中插入新纪录时,字段上的值会自动生成唯一的ID。一个数据库表中只能有一个字段使用该约束,该字段的数据类型必须是整数类型。由于设置AUTO_INCREMENT约束后的字段会生成唯一的ID,所以该字段也经常会设置成PK主键。

create table table_name(
属性名  数据类型 AUTO_INCREMENT,

...
);

6.7 设置外键约束(FOREIGN KEY,FK)

前面的完整性约束都是在单表中进行设置,而外键约束则保证多个表(通常为两个表)之间的参照完整性,即构建于两个表的两个字段之间的参照关系。

create table table_name(
属性名 数据类型,
属性名 数据类型,

...
CONSTRAINT 外键约束名 FOREIGN KEY(属性名1) REFERENCES 表名 (属性名2)
);
posted @ 2015-07-05 17:44  人生设计师  阅读(384)  评论(0编辑  收藏  举报