以下文章介绍了一些简单的sql的知识点.主要介绍了SELECT语句的基本格式等
SQL(Structured Query Language) 结构化查询语言.
SQL集数据查询(Data Query) 数据操纵(Data Manipulation) 数据定义(Data Definition)和数据控制(Data Control)功能于一体.
数据库生命周期中的活动
- 定义关系模式,插入数据,建立数据
- 对数据库中的数据进行查询和更新
- 数据库重构和维护
- 数据库安全性和完整性控制
基本表和视图
基本表 Base Table
基本表是本身独立存在的,在sql中一个关系就对应于一个基本表
视图 View
视图是从一个或几个基本表到处的表.它本身不独立存储在数据库中,即数据库中只存放视图的定义而不存放视图对应的数据.这些数据仍存放在到处视图的基本表中,因此视图是一个虚表.
索引
建立索引是加快查询速度的有效手段.
但如果数据增删改频繁,系统会花费许多时间来维护索引,从而降低了查询效率.我们可以选择删除不必要的索引.
数据查询
SELECT语句的一般格式
SELECT [ALL|DISTINCT] <目标列表达式> [AS 别名][,<目标列表达式> [AS 别名] ]...
FROM <表名或视图名> [AS 别名] [,<表名或视图名> [AS 别名] ]...
WHERE <条件表达式>
[GROUP BY <列名1> [HAVING <条件表达式>]]
ORDER BY <列名2> [ASC|DESC]
整个SELECT语句的含义是,根据WHERE子句的条件表达式,从FROM子句指定的基本表或视图中找到满足条件的元组(行),再按SELECT子句中的目标列表达式,选出元组中的属性值形成结果表.
如果有GROUP BY子句,则将结果按<列名1>的值的进行分组,该属性列值相等的元组作为一个组.通常会在每组中作用聚合函数.如果GROUP BY子句带HAVING短语,则只有满足指定条件的组才予以输出.
如果有ORDER BY 子句,则结果表中还要按<列名2>的值的升序或者降序排序.
SELECT语句执行顺序
FROM -> WHERE -> GROUP BY -> SELECT -> ORDER BY
一 .目标列表达式有以下可选格式:
*
<表名>.*
COUNT([DISTINCT|ALL] * )
[<表名>.]<属性列名表达式> [[,<表名>.]<属性列名表达式>]…
其中 <属性列名表达式>可以是有属性名 作用于属性列的聚合函数和常量的任意算术运算(+,-,*,/)组成的运算公式
二. 聚合函数的一般格式
1. COUNT [DISTINCT|ALL]
2. SUM [DISTINCT|ALL]
3. AVG [DISTINCT|ALL]
4. MAX [DISTINCT|ALL]
5. MIN [DISTINCT|ALL]
三. WHERE子句的条件表达式有以下可选格式
- [NOT] BETWEEN … AND …
- [NOT] IN
- [NOT] LIKE
- IS [NOT] NULL
- [NOT] EXISTS
- AND
- OR
- [ANY|ALL|SOME]