SQL
概述
SQL(Structured Query Language,SQL) 结构化英语查询语言,非过程性语言。集数据定义语言(DDL)、数据操作语言(DML)、数据控制语言(DCL)三大功能于一体。
SQL的几个动词
SQL 功能 | 动词 |
---|---|
数 据 查 询 | SELECT |
数 据 定 义 | CREATE,DROP,ALTER |
数 据 操 纵 | INSERT,UPDATE,DELETE |
数 据 控 制 | GRANT,REVOKE |
检索 select
- 如非必须,少用通配符 *,影响性能。
- 输出中行的值重复了:使用 DISTINCT 关键字,必须放在”列“前,且不对部分使用,是对全体列使用。
- 返回部分行:不同的DBMS语句不同。SQL Server eg:
select top 5 score from Course;
1 | -- MySQL输出前几行,limit输出不超过指定行数。 |
注释
SQL三种注释
1 | -- 单行注释 |
函数
- left(属性名,数字x) 表示取属性值的最左边x个字符
- right(属性名,数字x) 表示取属性值的最右边边x个字符
- lower(属性名) 表示将属性值的字母都变成小写
- upper(属性名)表示将属性值的字母都变成大写
- substring(属性名,起始位置L,长度x)取属性值起始位置L开始,长度为x的子串
- ltrim(属性名)去除属性值最左边的空格
- rtrim(属性名)去除属性值最右边的空格
- trim(属性名)去除属性值首尾空格
- replace(属性名,’目标’,’替代品’)将属性中的目标替换为替代品
- len(属性名)取属性值的字符串长度
order by
- 要使用在句末,否则报错;
- 多行排序时,要求按多个属性排序,则先按第一个属性排序,再在此基础上按第二个属性,以此类推。eg:
order by pro_price,pro_name
先按商品价格排序,价格相同则按商品名称排序。 - 升降序:
DESC
(descending)降序、ASC
(ascending)升序。默认升序。
where
where子句操作符
操作符说 | 明 |
---|---|
= | 等于 |
!= 或 < > | 不等于 |
< | 小于 |
<= 或 !> | 小于等于 |
> | 大于 |
>= 或 !< | 大于等于 |
BETWEEN | 在指定的两个值之间 |
IS NULL | 为NULL值 |
通配符
- like
- %通配符
1
2
3SELECT prod_name
FROM Products
WHERE prod_name LIKE 'F%y'; - 下划线(_)通配符
- 方括号([])——仅
Access
和SQL Server
支持
- %通配符
%匹配一个字符及以上;而下划线只能匹配一个字符。
使用通配符技巧
- 不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用
其他操作符。 - 在确实需要使用通配符时,也尽量不要把它们用在搜索模式的开始
处。把通配符置于开始处,搜索起来是最慢的。 - 仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。