数据库基本表的操作之创建表,索引和查询
1、基本表的定义、删除和修改
(1)定义基本表
create table <表名>(<列名><数据类型>[列级完整性约束条件]
[,<列名><数据类型>[列级完整性约束条件]]
……
[,<表级完整性约束条件>])
如:创建一个“学生”表student
create table student
(Sno int primary key auto_increment, /*列级完整性约束条件,Sno是主码,整型,自动增加*/
Sname varchar(20) unique, /*Sname 取唯一值*/
Ssex varchar(5)
)
(2)修改基本表
alter table <表名>
[add <新列名><数据类型>[完整性约束]]
[drop <完整性约束名>]
[alter column <列名><数据类型>]
如:向student表中加入“入学时间”列
alter table student add Sentrane date;
(3)删除基本表
当某个基本表不再需要时,可以使用drop table 语句删除它
drop table <表名>[RESTRICT|CASCADE]
若选择restrict:则该表的的删除时有限制条件的,欲删除的基本表不能被其他表的约束所引用(如check,foreign key 等约束),不能有视图,不能有触发器,不能有存储过程或函数。如果存在这些以来该表的对象,此表不能删除。
若选择cascade:则该表的删除额米有限制条件,在删除基本表的同时,相关的以来对象,例如视图,都将被一起删除。
2、索引的建立与删除
简历索引是加快查询速度的有效手段。用户可以根据应用的环境的需要,在基本表上简历一个或多个索引,以提供多种存取路径,加快查找速度。
一般来说,建立和删除索引都有数据库管理员DBA或表的属主,即建立表的人,负责完成。
(1)建立索引
create [unique][cluster] index <索引名>
on <表名>(<列名>[<次序>][,<列名>][<次序>]…)
索引可以建立在表的一列或多列上,每个<列名>后面可以用<次序>制定索引值得排列次序,可选ASC(升序)和DESC(降序),缺省值为ASC
unique表明此索引的每一个索引值只对应唯一的数据记录。
cluster表示要建立的索引是聚簇索引。所谓聚簇索引指索引项的顺序与表中记录的物理顺序一致的索引组织。
在一个基本表上最多只能建立一个聚簇索引。
(2)删除索引
drop index <索引名>
删除索引时,系统会同时从数据字典中删去有关该索引的描述
3、数据查询
select [all|distinct] <目标列表达式>[,<目标列表达式>]… /*目标列表达式不仅可以是表中的属性列,也可以是表达式*/
from <表名或视图名>[,<表名或视图名>]…
[where <条件表达式>]
[group by <列名1> [having <条件表达式>]] /*将查询结果按<列名1>的值进行分组,该属性列值相等的元组为一个元组*/