ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

【数据库】第三章 SQL

【数据库】第三章 SQL 3.1 SQL概述SQL(Structured Query Language)是关系数据库的标准语言,也称结构化查询语言。SQL是一种综合性的数据库语言,实现对数据的定义、操纵和控制等功能。3.1.1 SQL的特点3.1.2 SQL体系结构3.2 SQL的定义功能(DDL)3.2.1 基本表的定义3.2.2 基本表的修改和删除3.2.3 索引的建立与删除索引是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度。索引包含由表或视图中的一列或多列生成的键。这些键存储在一个结构(B树)中,使数据库可以快速有效地查找与键值关联的行。MySQL有主索引、候选索引、普通索引和唯一索引4种类型的索引Access中有主索引、重复索引和非重复索引SQL Server中则是聚簇索引、非聚簇索引和唯一索引。聚集索引和非聚集索引都可以是唯一的。索引也可以不是唯一的,即多行可以共享同一键值。在创建PRIMARY KEY约束时,如果不存在该表的聚集索引且未指定唯一非聚集索引,则将自动对一列或多列创建唯一聚集索引。主键列不允许空值。在创建UNIQUE约束时,默认情况下将创建唯一非聚集索引,以便强制UNIQUE约束。如果不存在该表的聚集索引,则可以指定唯一聚集索引。在一个基本表上最多只能建立一个聚簇索引聚簇索引的用途:对于某些类型的查询,可以提高查询效率聚簇索引的适用范围很少对基表进行增删操作很少对其中的变长列进行修改操作小表不需要索引数据列中有较多不相同数据时可使用索引查询要返回的数据很少时可用索引需要经常更新数据时不宜用索引只有主索引或聚集索引才会引起数据表中数据的排序3.3 数据查询(DQL)根据WHERE子句中的条件表达式,从FROM子句指定的基本表,视图等中找出满足条件的元组;再根据SELECT子句中指出的属性,选出元组中的分量形成结果表。并不是所有的查询都会用到所有的子句,最小限度情况下,查询只需要一个SELECT 和一个FROM子句。实际上,SELECT子句所完成的功能类似于关系代数中的投影运算, 而WHERE子句的功能类似于关系代数中的选择运算。GROUP BY子句将结果按列名1的值进行分组,该属性列值相等的元组为一个组,每个组产生结果表中的一条记录,通常会在每组中使用集函数。若有HAVING短语,则结果只有满足指定条件的组才被选出来。ORDER BY子句是将查询的结果按列名2的值进行排序显示,ASC表示升序,DESC表示降序,默认为升序。可选项[ALL|DISTINCT]的含义是,如果没有指定DISTINCT短语,则默认为ALL, 即保留结果中所有重复的行。SQL查询语句的结果也是一个关系。关系代数中基于关系是一个集合这样的数学概念,因此,重复的元组不会在关系中出现。但在实践当中,要删除查询结果中的重复元组是相当费时的!3.3.1 单表查询1.SQL中的投影:对应于SQL中利用SELECT子句指定属性的功能
返回列表