目录
索引的建立与删除
建立索引
删除索引
数据查询
查询指定列
查询全部列
查询经过计算的列
索引的建立与删除
建立索引的目的:加快查询速度。
谁可以建立索引:DBA或表的属主(即建立表的DBMS一般会自动建立以下列上的索引:
PRIMARY KEY;
UNIQUE;
索引相当于一本书的目录。
RDBMS中索引一般采用B+树、HASH索引来实现B+树索引具有动态平衡的优点,HASH索引具有查找速度快的特点。采用B+树还是HASH索引则由具体的RDBMS:来决定。
建立索引
建立索引语句格式: CREATE [UNIQUE][CLUSTER] INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]…);
UNIQUE表明此索引每一个索引值只对应唯一的数据。
CLUSTER表示要建立的索引是聚簇索引。聚簇索引是指索引顺序与表中记录的物理顺序一致的索引组织。
建立聚簇索引后能保证实际的逻辑顺序与物理顺序相同。
一个基本表最多只能建立一个聚簇索引。
删除索引
DROP INDEX<索引名>;
删除索引时,系统会从数据字典中删去有关该索引的描述。
数据查询
SELECT[ALLDISTINCT]<目标列表达式><目标列表达式>
FROM<表名或视图名>[表名或视图名>][WHERE<条件表达式>][GROUP BY-<列名I>HAVING<条件表达式>I[ORDER BY<列名2>[ASC|DESC
查询时需要知道三个方面内容,去哪个表里查,按照什么条件查,最后显示什么内容。
英文不区分大小写,标点符号要是英文
查询指定列
【例】查询全体学生的学号与姓名。 SELECT Sno,Sname FROM Student;
【例】查询全体学生的姓名、学号、所在系。 SELECT Sname,Sno,Sdept FROM Student;
查询全部列
【例】查询全体学生的详细记录。 SELECTSno,Sname,Ssex,Sage,Sdept FROM Student;
或:SELECT*FROM Student;
查询经过计算的列
【例】查全体学生的姓名及其出生年份 SELECT Sname,2004-Sage FROM Student;
【例】查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。
SELECT Sname,Year of Birth,2004-Sage, LOWER(Sdept)FROM Student;
【例】使用列别名改变查询结果的列标题。
SELECT Sname NAME,Year of Birth:BIRTH,2004-Sage BIRTHDAY,LOWE(Sdept)DEPARTMENT FROM Student;
修改Sname别名为NAME,Year of Birth 别名为BIRTH,Sdept别名为DEARTMENT。