MySQL数据定义
前言
关系数据库系统支持三级模式结构,其模式、外模式和内模式中的基本对象有模式、表、视图和索引。因此Mysql的数据定义功能包括模式定义、表定义、视图和索引的定义
一、模式
一个关系数据库管理系统的实例(instance)中可以建立多个数据库,一个数据库中可以建立多个模式,一个模式下通常包括多个表、视图和索引等数据库对象。
模式:定义模式实际上定义了一个命名空间,在这个空间中可以进一步定义该模式包含的数据库对象。
1.1创建模式
1.1例程:为用户WANG定义一个学生-课程模式S-T。
CREATE SCHEMA "S-T" AUTHORIZATION WANG;
1.2删除模式
1.2例程删除用户WANG的学生-课程模式S-T。
DROP SCHEMA "S-T" CASCADE; /*级联*/
二、表
基本表是本身独立存在的表,在关系数据库管理系统中一个关系就对应一个基本表。一个或多个基本表对应一个存储文件,一个表可以带若干个索引,索引也存放在存储文件中。
2.1创建表
2.1例程创建一个供应商表S(供应商代码,供应商姓名,供应商状态,供应商所在城市)
create table S
(sno char(10) primary key, /*primary key定义为主码,后续在完整性约束中详细讲解*/
sname char(15),
statu char(10),
city char(15));
数据类型表,在建表时可参考该表对数据类型进行设置:
2.2删除表
2.2例程删除供应商表S
DROP TABLE S CASCADE; /*级联删除*/
2.3修改表
修改功能中包含添加,删除,修改。我们仅举例添加
2.3例程向供应商表S中添加新列,诚信值sincerity数据类型为char类型
ALTER TABLE S
ADD sincerity char ;
三、视图
视图时从一个或多个基本表(或视图)导出的表。它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。
3.1创建视图
3.1例程建立供应商表S的视图:
CREATE VIEW S_Student /*视图名为S_Student*/
AS
SELECT Sno,Sname,Stuta,City /*此为查询语句,在总结查询时详细介绍*/
FROM S;
3.2删除视图
3.2例程删除供应商表S创建的视图:
DROP VIEW S_Student;
四、索引
4.1创建索引
4.1例程:创建将表S的供应商号Sno按升序创建唯一索引,索引名为 Ssno
CREATE UNIQUE INDEX Ssno
ON S(sno ASC); /*ASC为升序,DESC为降序*/
4.2删除索引
4.2例程:删除S表创建的唯一索引Ssno
DROP INDEX Ssno ON S ;
4.3修改索引
4.3例程:将S 表的索引名改为Gsno
ALTER TABLE S RENAME INDEX Ssno TO Gsno;