SQL语法教材

发布 2021-05-11 05:16:28 阅读 4444

一、利用select 语句选取资料

1. select语法基本构架。

2. 选取全部资料。

3. 指定字段。

4. 选取不重复资料。

5. 衍生字段。

6. 资料排序。

7. 资料分组。

8. 加上选择条件。

9. 使用通配符。

10. 表之间的关联 join

11. 子查询。

12. union

二、操作数据库记录。

1. 利用insert 语句新增记录。

2. 由其他表选取资料新增到指定表中。

3. 删除表中的记录。

4. 更新数据。

三、 常用函数。

1. 汇总函数。

2. 字符串函数。

四、游标 cursor

1cursor定义的基本语法。

2. 打开cursor

3. 提取cursor中的记录。

4. 使用while 循环语句遍历cursor

5. 释放cursor

五、创建临时表。

六、创建存储过程 (create procdure)

1. 创建存储过程的基本语法。

2. 删除存储过程。

3. 执行存储过程。

4. 定义变量。

5. 为变量赋值。

6. 一个典型的实例。

一、利用select 语句选取资料。

select 字段1,字段2,… 字段n

from 表1,表2,…表n

where 条件。

group by 字段1,字段2,… 字段n

order by字段1,字段2,… 字段n

字段。可以是数据表中所定义的字段,也可以是一衍生字段。在select语句中可以一次选择数个字段,但每个字段之间必须以逗号隔开。

数据表。在select语句中可以一次指定一个或数个数据表,当指定一个以上表时就牵涉到表之间的关联(join)。

条件。资料选取时的设定条件,可以设定大于,小于或等于等基本判断条件,而且可以指定多个条件,每个条件之间以 ‘and’ 或 ‘or’ 逻辑运算符连接。

order by 、group by

对选取的数据进行排序(sorting)和分组(grouping)等动作。

例1:想要知道库存数据为负数且使用中物料有哪些?

ex: select distinct pt_part, pt_desc1, pt_desc2, pt_um

from pt_mstr, ld_det

where pt_part = ld_part and

pt_status = 1and (使用中)

ld_qty_oh < 0库存为负)

order by pt_part按物料编码排序)

要浏览整张数据表内的数据时,只要用 select * 即可。

select * from pt_mstr

若只想选取表的部份字段时,则在select 后加字段名单,可以指定多个字段,每个字段之间必须用逗号分开。

select pt_part, pt_desc1, pt_um from pt_mstr

有时数据表中某些字段含有重复值,在选取时如果不想看到重复的值,可以在select语句后加上 distinct 语句。

例1中就用到此语句:

想要知道库存数据为负数且使用中物料有哪些?

ex: select distinct pt_part, pt_desc1, pt_desc2, pt_um

from pt_mstr, ld_det

where pt_part = ld_part and

pt_status = 1and (使用中)

ld_qty_oh < 0库存为负)

order by pt_part按物料编码排序)

库存明细表(ld_det)中同一物料可能存在多个库位的库存数量为负。

在select语句中除了可以以数据表中的字段作为选取对象外,也可以自创衍生字段作为select语句的输出字段。衍生字段可以是字段间经由一般加减乘除运算产生外,也可以由sql server所提供的内建函数(function)产生。衍生字段可以用自定义字段名= 或 as 自定义字段名进行。

重新命名。select pt_part, pt_desc = pt_desc1 + pt_desc2)

from pt_mstr

或。select pt_part, (pt_desc1 + pt_desc2) as pt_desc

from pt_mstr

选取所要的资料后,可以对这些资料以一个或多个字段组合作为键值依序排列,排序的方向可以由小到大(asc: ascending )或由大到小(desc:descending)排序,若未指定asc或desc,则系统内定为由小到大(asc)。

注:当作排序的键值一定要出现在所选取的字段清单中。

select *

from pt_mstr

order by pt_part desc

可以利用group by 子句对select 语句所选取的资料作分组,分组后资料可以显示出来,或利用sum(),**g()等汇总函数对特定字段计算每组资料的总和或平均值。

例2:想知道**商送货总金额。

select prh_vend, sum(prh_qty_rcvd * prh_pur_cost) as prh_amt

from prh_hist

group by prh_vend

group by子句后经常会配合用h**ing子句作为每一组的筛选条件。

例3:想知道送货总金额大于100000的**商。

select prh_vend, sum(prh_qty_rcvd * prh_pur_cost) as prh_amt

from prh_hist

group by prh_vend

h**ing sum(prh_qty_rcvd * prh_pur_cost) >100000

order by prh_vend

若只想选取数据表内的部分资料时,必须加上选择条件,也就是在select语句中加上where子句, 在where 子句中以比较运算符来构成选择条件。以下是可以在where子句中使用的比较运算符:

等于。= 或<>不等于。

大于。 小于。

= 大于等于。

= 小于等于。

between介于。之间。

not between介于。之外。

in ( not in字段值是否存在于清单内。

isnull( is not null字段值是否为null

like 类似于。

可以一次指定数个条件,每个条件间以逻辑运算符not , and ,or 连接条件判断的优先次序依次为:not, and, or。可使用括号来区分逻辑运算符的优先顺序。

当where 子句中指定条件使用了 like 运算符,则可使用通配符代表任意字符,通配符主要有如下几个:

任何多个字符( 包括零个)的字符串。

_(下划线任何单个字符。

指定范围([a-f]) 或集合([abcdef])中的任何单个字符。

不属于指定范围([a-f]) 或集合([abcdef])中的任何单个字。

例4:1) where pt_part like '%200%'

查找出物料编码中任意位置包含 200 的所有物料。

2) where pt_part like 'a01-100-00_'

查找出物料编码中以a01-100-00开头,最后一位为任意值的所有物料。

3) where pt_part like '[c-p]%'

查找出物料编码中以介于 c 与 p 之间的任何单个字符开头的所有物料。

4) where pt_part like '[c-p]%'

查找出物料编码中不以介于 c 与 p 之间的任何单个字符开头的所有物料。

利用select语句由不同的数据表中选取字段时,称之为对数据表的join动作。

若选用的字段名称在join数据表的两边皆存在,则必须以表名。字段名明确指定字段属于哪一张数据表。

join并不限定只能针对两个表作为处理对象 join 条件中所牵涉到的字段最好是索引字段,否则join的速度会很慢。

SQL语法教材

一 利用select指令选取数据。1.select 语法基本架构。2.选取全部资料。3.指定字段。4.选取不重复的数据。5.衍生字段。6.数据排序。7.资料分组。8.加上选择条件。9.使用万用字符。10.的join 11.次查询 sub query 12.union 二 更新数据库内容。1.利用in...

sql语法

知识要点 1 transact sql运算符 1 算术运算符。注 null与任何值运算结果为null。运算可用于datetime型数据。2 字符串运算符。3 比较运算符。逻辑常量 ture false。4 逻辑运算符。not 非 and 与 or 或 between 指定范围 like 模糊匹配 5...

SQL语法

distinct 输出唯一值。select distinct from where between and 介于某一范围的数据。where 某行 between and in 属于某一子集合的数据。where 某行 in substring expression 开始位 长度 选取字符串。selec...