第九章 行函式
行函式會在表單獨某個行的基礎上計算新值這個新值可以基於乙個列中的資料。或者基於幾個不同列中的資料。
一些行函式只能用於數字而另一些行函式則可以用於文字或者日期。
第二節任務:建立乙個向1_foods表新增乙個新列的新錶,通過使用行函式建立新的列。這個新列將price,price_increase列加在了一起,這個新列被命名為new_price。
select 1_foods.*,
price+price_increase as new_price
into foods_2
form 1_foods;
在access中,當在select *後面新增額外的列時,必須在星號前新增該錶的名字和乙個句號。
第三節 select子句中行函式的例子
任務:從1_foods表中列出menu_item,description和new_price。通過將price和price_increase加在一起來計算new_price.
select menu_item,
description,
price_price_increase as new_price(這是乙個行函式)
from 1_foods
order by menu_item;
第四節 select語句的子句使用行函式的例 子
任務:從1_foods表中列出menu_item,description,new_price.通過將price,price_increase加在一起來計算new_price。只列出新**大於2美元的食物。按照新**列對結果表的行進行排序。
select menu_item,
description,
price+price_increase as new_price
from 1_foods
where(price+price_increase)>2.00
order by (price+price_increase);必須在完整的寫下這個行函式。
第五節,同樣是上面的任務。先在第一步中定義行函式。
select menu_item,
description,
price+price_increase as new_price
from 1_foods;
儲存這個查詢,將它命為step_1;
select menu_item,
description,
new_price
from step_1
where new_price>2.00
order by new_price;
第六節,數字 函式
用於算術運算的行函式可以執行您 所期望的運算,正如在大多數計算機語言中那樣,星號被用作乘號。null並不表示零,它表示乙個未知資料。
因此,所有對於它進行操作的行函式都會產徨乙個null作為結果。
常用數字函式
:+ - * /
^指數5……2=25
sqr平方根 \整除
mod 相除過後的餘數
sgn:如果為正,結果為1,如果為負,結果為-1如果為0,結果為0;
sgn(-8)=-1;
abs:絕對值
int(3.5)=3;小於或者等於這個值的最大整數。
ceil:大於或者等於這個值的最大整數。在access中沒有,但可以通過其它方式實現 。
int(3.1+0.99)=4;
第七節,如何測試行函式。
在sql中執行運算的問題就是在sql中必須以表為單位進行計算。計算必須始於表並終於表,那麼如何才可以將兩個數字相乘呢?
必須從表開始,任意表都可以,不管表中的資料。
在acceess中,您可能必湎自己來建立這個表,在建立這個表時,一定要在表中存放一些資料,這些資料是什麼無關緊要。但不能是null
select 3*4
from dual;
表在這裡被呼叫成乙個空的容器,它提供了乙個表結構。但沒有提供內容,這為裝入其它內容提供了乙個框架。
測試行函式的另一種方法
任務:測試函式mod(x,3)x代表從-10到10的數字。
使用了包含從-10到10的所有數字的乙個表。
select n,
n mod 3
from seco908_testnumbers
order by n;
第九節,文字函式
&串聯 `sun`&`flower`=sunflower
mid子串 mid(`sunflower`,4,3)=`flo`;
ucase 或strconv(,1)大寫:
strcone(`sunflower`,1)=~sunflower`;
lcase或strconv(,2) 小寫
strcone(,3)乙個或者多個單詞的首字母大寫,其它字母小寫。
ltrim 去除左邊的空格
rtrim 去除右邊的空格
trim 去除兩邊的空格
len 文字字串的數量
len(`sunflower`)=9;
instr乙個字串位於另乙個字串的起始位置
instr(`sunflower`,`low`)=5;
第十節,合併名和姓
任務:列出每個雇員的employee_id和全名,通過將名和姓組合在一起來建立全名,使用乙個空格分隔名和姓。
select employ_id,
first_name&` `&last_name as full_name
from 1_employees;
第十一節,分離名和姓
任務:sec0911表中包含了乙個列,而這個列中又包含全名,即以乙個空格分隔的名和姓。列出這個表中的命名,空格的位置,名和姓。
select full_name,
instr(sull_name,` `)as position_of_space
into step_1
from sec0911;
儲存這個查詢,將其命名為step_1;
select full_name,
position_of_space,
mid(full_name,1,position_of_space-1)as first_name,
mid(full_name,position_of_space+1)as last_name
from step_1;
第十二節 設計**號碼的格式
任務:列出雇員id,雇員的名字和所有雇員 的**號碼,設定phone_number值的格式,使之包括地區號和**號碼的前壓下個阿拉伯數字。
select employee_id,
first_name,
last_name,
`(415)643`&phone_number as phone_number2
from 1_employees;
日期函式
本節將介紹一些最常用的日期日期的計算通常是以天數為單位進行的,使用包含從0到99的數字的表。可以向任何日期新增一些數字,並且可以建立乙個100天長的日曆,儘管可以從乙個日期中減去另乙個日期,但是不能將乙個日期新增到另乙個日期當中去。
在使用日期時,一定要記住每個日期還有乙個時間,儘管這個時間沒有顯示。
常用的日期函式:
日期+數定或者dateadd(`d`,)
#20-jan-2015#+3=#23-jan-2015#
dateadd(`d`,3,#01-20-2015#)=#01-23-2015#
日期減數字或者dateadd
第三種:
日期減日期或者datediff(`d`,)
#23-jan-2015#-#20-jan-2015#=3;
datediff(`d`,#01-20-2015#,#01-23-2015#)=3
第四種,將日期設定為午夜,一天的開始,也可以設定不同的起點。
datevalue(#20-jan-2015# 5:00 pm/am)=#20-jan-2015#
dateadd(`m`,) :
向日期新增乙個月數
datediff(`m`,):兩個日期之間的月數
第十四節,列耿所有雇員,他們的雇用日期通訊到2023年1朋1日為止每個人將為工作的月數。
select first_name,
last_name,
hire_date,
int((#01-jan-2005#-hire_date)/30)as monthswiththecompty
from 1_employees;
從日期中刪除時間
sql的每乙個日期都包含乙個時間,本節介紹了從日期中刪除時間的乙個方法。確切的說,是把所有的時間設為午夜。
任務:列出表,列出原表中的時間,然後介紹如何刪除這些時間
select lunch_id,
lunch_date,
employee_id,
format(date_entered,`dd-mmm-yyyy hh:mm am/pm`) as date_entered2
from 1_lunches;
select lunch_id,
lunch_date,
employee_id
,format(datevalue(date_entered),`dd-mmm-yyyy hh:mm am/pm`)
as date_entered2
from 1_lunches;
返回首頁
c 基礎 (第九章)
結構體型別說明 struct 結構體識別符號 成員變數列表 如果沒有結構體識別符號,則稱為無名結構體型別 引用結構體變數成員 l 結構體變數名.成員名 l 結構體指標名 成員名 l 結構體指標名 成員名 共用體共用體所有變數共用一塊記憶體 定義格式如下 union 共用體識別符號 成員變數列表 列舉...
第九章 Mysql函式
簡介 數學函式 處理數字 字串函式 處理字串 日期和時間函式 處理日期和時間,獲取時間 條件判斷函式 控制條件選擇 系統資訊函式 獲取mysql系統資訊,包括資料庫名稱,當前使用者名稱和資料庫版本 加密函式 對字串加密和解密 其他函式 格式化函式和鎖函式 函式 作用 函式 作用 abs x 絕對值l...
第九章(筆記)
轉移指令是可以修改ip,或同時修改cs和ip的指令 offset 是用於提取標號偏移位址的操作符 jmp在第2章裡說到時用於修改ip或同時修改cs和ip的轉移指令,這章裡單獨的jmp指令是乙個無條件的轉移指令 jmp short 標號 是實現段內短轉移 jmp near ptr 標號 是實現段內近轉...