SQL基础第九章行函数

来源:互联网 发布:easygen3200软件下载 编辑:程序博客网 时间:2024/06/06 03:43
<p align="center"><font color="#FF0000" size="7">第九章      行函数  </font></p><p><font size="4">行函数会在表单独某个行的基础上计算新值这个新值可以基于一个列中的数据。或者基于几个不同列中的数据。</font></p><p><font size="4">一些行函数只能用于数字而另一些行函数则可以用于文本或者日期。</font></p><p align="center"><font color="#FF0000" size="4"> 第二节</font></p><p><font size="4"> 任务:创建一个向1_foods表添加一个新列的新表,通过使用行函数创建新的列。这个新列将price,price_increase列加在了一起,这个新列被命名为new_price。</font></p><p><font size="4"> select 1_foods.*,</font></p><p><font size="4"> price+price_increase as new_price</font></p><p><font size="4">into foods_2</font></p><p><font size="4">form 1_foods;</font></p><p><font size="4"> 在Access中,当在select *后面添加额外的列时,必须在星号前添加该表的名字和一个句号。</font></p><p align="center"><font size="4"> <font color="#FF0000">第三节     select子句中行函数的例</font>子</font></p><p><font size="4">任务:从1_foods表中列出menu_item,description和new_price。通过将price和price_increase加在一起来计算new_price.</font></p><p><font size="4"> select menu_item,</font></p><p><font size="4">description,  </font></p><p><font size="4">price_price_increase as new_price(这是一个行函数) </font></p><p><font size="4">from 1_foodsorder by menu_item;</font></p><p align="center"><font color="#FF0000" size="4"> 第四节   select语句的子句使用行函数的例 子</font></p><p><font size="4"> 任务:从1_foods表中列出menu_item,description,new_price.通过将price,price_increase加在一起来计算new_price。只列出新价格大于2美元的食物。按照新价格列对结果表的行进行排序。</font></p><p><font size="4"> select menu_item,</font></p><p><font size="4"> description,</font></p><p><font size="4"> price+price_increase as new_price</font></p><p><font size="4"> from 1_foods</font></p><p><font size="4"> where(price+price_increase)>2.00</font></p><p><font size="4">order by (price+price_increase);必须在完整的写下这个行函数。</font></p><p align="center"><font color="#FF0000" size="4"> 第五节</font></p><p><font size="4">,同样是上面的任务。先在第一步中定义行函数。</font></p><p><font size="4">select menu_item,</font></p><p><font size="4"> description,</font></p><p><font size="4"> price+price_increase as new_price</font></p><p><font size="4"> from 1_foods;</font></p><p><font size="4">保存这个查询,将它命为step_1;</font></p><p><font size="4"> select menu_item,</font></p><p><font size="4">description,</font></p><p><font size="4">new_price  from step_1</font></p><p><font size="4">where new_price>2.00</font></p><p><font size="4">order by new_price;      </font></p><p align="center"><font color="#FF0000" size="4">第六节</font></p><p><font size="4">,数字 函数  用于算术运算的行函数可以执行您 所期望的运算,正如在大多数计算机语言中那样,星号被用作乘号。null并不表示零,它表示一个未知数据。  因此,所有对于它进行操作的行函数都会产徨一个null作为结果。</font></p><p><font size="4">常用数字函数</font></p><p><font size="4">:+   -   *    /  ^指数5……2=25  sqr平方根   \整除  mod 相除过后的余数  sgn:如果为正,结果为1,如果为负,结果为-1如果为0,结果为0;  sgn(-8)=-1;  abs:绝对值  int(3.5)=3;小于或者等于这个值的最大整数。ceil:大于或者等于这个值的最大整数。在Access中没有,但可以通过其它方式实现 。</font></p><p><font size="4"> int(3.1+0.99)=4;          </font></p><p align="center"><font color="#FF0000" size="4">第七节,如何测试行函数。</font></p><p><font size="4">在SQL中执行运算的问题就是在SQL中必须以表为单位进行计算。计算必须始于表并终于表,那么如何才可以将两个数字相乘呢?</font></p><p><font size="4"> 必须从表开始,任意表都可以,不管表中的数据。  在Acceess中,您可能必湎自己来创建这个表,在创建这个表时,一定要在表中存放一些数据,这些数据是什么无关紧要。但不能是NULL</font></p><p><font size="4">select 3*4</font></p><p><font size="4">from dual;</font></p><p><font size="4">表在这里被调用成一个空的容器,它提供了一个表结构。但没有提供内容,这为装入其它内容提供了一个框架。</font></p><p align="center"><font color="#FF0000" size="4"> 测试行函数的另一种方法</font></p><p><font size="4">任务:测试函数MOD(x,3)x代表从-10到10的数字。使用了包含从-10到10的所有数字的一个表。</font></p><p><font size="4"> select n,</font></p><p><font size="4"> n mod 3</font></p><p><font size="4">from seco908_testnumbers</font></p><p><font size="4">order by n;</font></p><p align="center"><font color="#FF0000" size="4"> 第九节,文本函数</font></p><p><font size="4">&串联  `sun`&`flower`=sunflower</font></p><p><font size="4"> mid子串 mid(`sunflower`,4,3)=`flo`;</font></p><p><font size="4"> ucase 或strconv(,1)大写:</font></p><p><font size="4">strcone(`sunflower`,1)=~SUNFLOWER`;</font></p><p><font size="4">lcase或strconv(,2)  小写</font></p><p><font size="4">strcone(,3)一个或者多个单词的首字母大写,其它字母小写。</font></p><p><font size="4"> ltrim  去除左边的空格</font></p><p><font size="4">rtrim  去除右边的空格</font></p><p><font size="4">trim   去除两边的空格  len  文本字符串的数量</font></p><p><font size="4"> len(`sunflower`)=9;  </font></p><p><font size="4">instr一个字符串位于另一个字符串的起始位置instr(`sunflower`,`low`)=5;</font></p><p align="center"><font color="#FF0000" size="4"> 第十节,合并名和姓</font></p><p><font size="4">任务:列出每个雇员的employee_id和全名,通过将名和姓组合在一起来建立全名,使用一个空格分隔名和姓。</font></p><p><font size="4"> select employ_id,</font></p><p><font size="4"> first_name&` `&last_name as full_name</font></p><p><font size="4"> from 1_employees;    </font></p><p align="center"><font color="#FF0000" size="4">第十一节,分离名和姓</font></p><p><font size="4">任务:sec0911表中包含了一个列,而这个列中又包含全名,即以一个空格分隔的名和姓。列出这个表中的命名,空格的位置,名和姓。</font></p><p><font size="4">select full_name,</font></p><p><font size="4"> instr(sull_name,` `)as position_of_space</font></p><p><font size="4">into step_1</font></p><p><font size="4">from sec0911;</font></p><p><font size="4">保存这个查询,将其命名为step_1;</font></p><p><font size="4">select full_name,</font></p><p><font size="4">position_of_space,</font></p><p><font size="4">mid(full_name,1,position_of_space-1)as first_name,</font></p><p><font size="4"> mid(full_name,position_of_space+1)as last_name</font></p><p><font size="4"> from step_1;    </font></p><p align="center"><font color="#FF0000" size="4">第十二节   设计电话号码的格式   </font></p><p><font size="4">任务:列出雇员ID,雇员的名字和所有雇员 的电话号码,设置phone_number值的格式,使之包括地区号和电话号码的前压下个阿拉伯数字。</font></p><p><font size="4"> select employee_id,</font></p><p><font size="4">first_name,</font></p><p><font size="4"> last_name,</font></p><p><font size="4"> `(415)643`&phone_number as phone_number2</font></p><p><font size="4"> from 1_employees;      </font></p><p align="center"><font color="#FF0000" size="4">日期函数  </font></p><p><font size="4">本节将介绍一些最常用的日期日期的计算通常是以天数为单位进行的,使用包含从0到99的数字的表。可以向任何日期添加一些数字,并且可以创建一个100天长的日历,尽管可以从一个日期中减去另一个日期,但是不能将一个日期添加到另一个日期当中去。  在使用日期时,一定要记住每个日期还有一个时间,尽管这个时间没有显示。  </font></p><p><font size="4">常用的日期函数:  </font></p><p><font size="4">日期+数定或者dateadd(`d`,)  #20-jan-2015#+3=#23-jan-2015#  dateadd(`d`,3,#01-20-2015#)=#01-23-2015#  日期减数字或者dateadd     </font></p><p><font size="4">第三种:  日期减日期或者datediff(`d`,)  #23-jan-2015#-#20-jan-2015#=3;  datediff(`d`,#01-20-2015#,#01-23-2015#)=3    </font></p><p><font size="4">第四种,将日期设置为午夜,一天的开始,也可以设置不同的起点。  datevalue(#20-jan-2015# 5:00 pm/am)=#20-jan-2015#  dateadd(`m`,) :</font></p><p><font size="4">向日期添加一个月数  datediff(`m`,):两个日期之间的月数 </font></p><p><font size="4"><strong>第十四节,列耿所有雇员,他们的雇用日期通讯到2005年1朋1日为止每个人将为工作的月数。</strong></font></p><p><strong><font size="4"> select first_name,</font></strong></p><p><font size="4"> last_name,  </font></p><p><font size="4">hire_date,  int((#01-jan-2005#-hire_date)/30)as monthswiththecompty </font></p><p><font size="4">from 1_employees;</font></p><p align="center"><font color="#FF0000" size="4"> 从日期中删除时间</font></p><p><font size="4"> SQL的每一个日期都包含一个时间,本节介绍了从日期中删除时间的一个方法。确切的说,是把所有的时间设为午夜。 </font></p><p><font size="4"><strong>任务:列出表,列出原表中的时间,然后介绍如何删除这些时间</strong></font></p><p><font size="4">select lunch_id,</font></p><p><font size="4"> lunch_date,</font></p><p><font size="4"> employee_id,</font></p><p><font size="4">format(date_entered,`dd-mmm-yyyy hh:mm am/pm`) as date_entered2</font></p><p><font size="4">from 1_lunches;</font></p><p><font size="4"> select lunch_id,</font></p><p><font size="4"> lunch_date,</font></p><p><font size="4"> employee_id</font></p><p><font size="4">,</font></p><p><font size="4">format(datevalue(date_entered),`dd-mmm-yyyy hh:mm am/pm`)as date_entered2</font></p><p><font size="4"> from 1_lunches; </font></p><hr align=left width=80% size=2 noshade><a href="D:\SQL\SQL基础\首页.html"><font color=green size=7><strong><u>返回首页</u></strong></font></a>


0 0
原创粉丝点击