以Oracle为例
一、数据库的查询
SELECT <列> /*指定要选择的列及其限定*/
FROM <表或视图> /*FROM子句,指定表或视图*/
[ WHERE <条件表达式> ] /*WHERE子句,指定查询条件*/
[ GROUP BY <分组表达式> ] /*GROUP BY子句,指定分组表达式*/
[ HAVING <分组条件表达式> ] /*HAVING子句,指定分组统计条件*/
[ ORDER BY <排序表达式> [ ASC | DESC ]] /*ORDER子句,指定排序表达式和顺序*/
选择表中的列组成结果表,语法格式为:
SELECT [ ALL | DISTINCT ] <列名列表>
其中<列名列表>指出了结果的形式,其主要格式为:
{ * /1、选择当前表或视图的所有列/
| { <表名> | <视图> } . * /2、选择指定的表或视图的所有列/
| { <列名> | <表达式> }
[ [ AS ] <列别名> ] /3、选择指定的列/
| <列标题> = <列名表达式> /4、选择指定列并更改列标题/
} [ , … n ]
/*1、别名*/
SELECT 学号 AS num, 姓名 AS name, 总学分 AS score
FROM XSB
WHERE 专业= '计算机';
SELECT 学号 num, 姓名 name, 总学分 score/*也可以省略AS关键字*/
FROM XSB
WHERE 专业='计算机';
/*2、表达式*/
SELECT 产品名称, 价格* 库存量 AS 产品总值
FROM CP;
/*3、消除结果集中的重复行*/
SELECT DISTINCT 专业 AS 专业,总学分 AS 总学分
FROM XSB;
WHERE <条件表达式>
其中,<条件表达式>为查询条件,格式为:
<条件表达式>::=
{ [ NOT ] <判定运算> | (<条件表达式> ) }
[ { AND | OR } [ NOT ] { <判定运算> | (<条件表达式>) } ]
} [ ,…n ]
其中,<判定运算>的结果为TRUE、FALSE或UNKNOWN,经常用到的格式为:
<判定运算>::=
{ <表达式1> { = | < | <= | > | >= | <> | != } <表达式2> /1、比较运算/
| <字符串表达式1> [ NOT ] LIKE <字符串表达式2> [ ESCAPE ‘<转义字符>’ ]
/2、字符串模式匹配/
| <表达式> [ NOT ] BETWEEN <表达式1> AND <表达式2> /3、指定范围/
| <表达式> IS [ NOT ] NULL /4、是否空值判断/
| <表达式> [ NOT ] IN ( <子查询> | <表达式> [,…n] ) /5、IN子句/
| EXIST ( <子查询> ) /EXIST子查询/
}
/*1、表达式比较*/
SELECT *
FROM CP
WHERE 库存量>500;
SELECT *
FROM XSB
WHERE 专业='通信工程' AND 总学分>=44