SQL(Structured Query Language ,结构查询语言)是一个功能强大的数据库语言。SQL常用于与数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL没有循环结构(比如 if-then-else、do-while)以及函数定义等的功能,只有数据类型的固定设置。
SQL可以分成以下几组:
DML(Data Manipulation Language,数据操作语言)——用于检索或者修改数据。
DDL(Data Defination Language,数据定义语言)——用于定义数据的结构,如创建、修改或者删除数据库对象。
DCL(Data Control Language,数据控制语言)——用于定义数据库用户的权限。
语法:
SELECT [DISTINCT] {*,column[alias],...}
FROM table;
书写SQL语句的规则:
SQL语句不区分大小写,除非特别指定。
SQL语句可以写成一行或多行。
关键字不能简写或分割于多行。
子句通常置于单独行,这样更具可读性并且便于编辑。
Tab和缩进的使用可以提高程序的可读性。
关键字最好使用大写,其它词诸如列名,表名使用小写。
在SQL*Plus中,SQL语句是在SQL promt状态下输入,并且每行都有编号。这叫SQL缓冲区,并且任何时候在缓冲区中只会存放当前一条语句。
数据列的选择有两种方式:选择所有列和所有行,选择指定的列
一个列宽内列标题及其结果的默认显示方式是
字符型的列标题及其数据采用左对齐的方式
数值型的列标题及其数据采用右对齐的方式
在SQL语句的任何子句中可以使用算术运算符,但FROM子句除外。
运算符的优先顺序是:先乘除再加减,在表达式中同一优先权的运算符计算次序是从左到右,如果使用了括号 括号中的运算优先,如果有多重括号嵌套 内层括号中的运算优先。
如果有SELECT所选的列后指定别名,则需要使用空格作为分隔符。默认的情况下列标题是以大写的形式出现。如果列标题包含空格、特殊字符(如#,$)、区分大小写则需要用双引号将其引起来。
在一个SQL语句中,列的别名可以用于SELECT和ORDER BY子句中,但是不能用在WHERE子句中。
连接符“||”,用于列与列、列与算术表达式或列与常量之间创建一个字符表达式。连接符两边的列将组合成一个列作为结果输出。
原义字符是包含在SELECT列表中的一个字符、数字或日期,而不是列名或别名。每个字符串都会在每个数据行的输出中出现。自由形态文本中的字面字符串可以和SELECT列表中的字段一样被包括在查询结果中,日期和字符字面值必须用单引号引起来。
在SELECT子句中紧跟着关键字SELECT使用关键字DISTINCT可消除重复行。
如果一个数据行的某个列缺少数据,那么这种值叫做NULL,或者说是包含空值。空值指一种无效的、未赋值的、未知的或不可用的值。空值不同于零或者空格,零是一个数,空格是一个字符。任何数据类型的列都可以包含空值,除非该列在创建时已经被定义为非空或主键。
在算术表达式中只要存在空值,那么运算结果一定是空值。