一、
--練習:
-- 1:db與dbms的區別
-- db:按照一定的資料結構儲存資料的倉庫
-- dbms:使用sql語言管理db的資料庫管理系統
-- 2:修改表中的某一欄位名
-- alter table tname rename column oldname to newname
-- 3:向表中新增乙個新的字段的格式
-- alter table tname add (colname type)
-- 4:修改表中某一欄位型別的格式
-- alter table tname modify colname type
-- 5:查詢emp表中的所有人的姓名,首字母大寫
select initcap(ename) from emp;
-- 6:檢視所有員工的職位,使之右對齊
select lpad(job,10,' ') from emp;
-- 7:檢視所有員工的在職月份,保留整數字
select round(months_between(sysdate,to_date(to_char(hiredate,'yyyy-mm-dd'),'yyyy-mm-dd'))) from emp;
-- 8:檢視自己40歲的日期
select add_months(to_date('1987-10-12','yyyy-mm-dd'),40*12) from dual;
--****************************************==
二、日期函式(續)
1:next_day(date,num)
表示檢視引數date的下乙個週幾的日期
date:某一日期
num:範圍為1-7,表示週日到週六
2:least(p1,p2,p3,...)
多個引數比較,顯示最小的資料
3.greatest(p1,p2,p3,………………)
多個引數比較,顯示最大的資料
注意:①要求:引數為同一型別,
②或者可以預設轉換成第乙個引數的型別。
③引數型別基於第乙個引數型別,以第乙個引數的型別為基準
④字串型別比較大小:比較的字元的ascii碼的大小。
4:extract( p1分 from p2):
表示從日期p2中提取分量p1
①日期的分量:
year
month
dayhour
minute
second
②日期型別關鍵字sysdate和systimestamp,表示當前系統時間
可以從sysdate中提取年月日
可以從systimestamp中提取年月日時分秒
三、空值操作:
null:表示空的意思。
1:表中的任何字段,預設情況下都可以為null值。
2:not null表示 非空,是一種約束,
3.設定為非空約束的字段,必須有有效值,不能為空
4:插入資料時,沒有賦值的字段都是null值。
reg:
insert into emp (empno,ename) values(2001,'張三');
此記錄中,沒有賦值的字段都是null值。
reg:
insert into emp (empno,ename) values(2002,null);
此記錄中,欄位ename為null值。
5:修改資料時,
(1)當空值為條件時
update emp set ename='張三' where comm is null;
(2)當被設定為null時,
update emp set ename = null;
6:當空值參與計算時。
null:相當於無窮大
1+null為null
null也不等於null
reg:計算員工的月收入
select sal+comm from emp; 明顯結果有問題。
四、空值操作函式:
1)nvl(p1,p2)
表示:如果p1這個欄位的值為null,就使用p2
否則使用本身p1
(2)nvl2(p1,p2,p3)
表示:如果p1是null,就使用p2,
如果p2是null,使用p3
ANSI庫續(時間函式)與檔案操作初識
c c 學習筆記之十一 上一節我們講到了標頭檔案stdlib.h與標頭檔案stdio.h中的sscanf sprintf rand srand函式,這一節將繼續討論時間相關函式和檔案操作。時間函式的標頭檔案是 include time t型別 是乙個整數,可以強制轉換為int來列印 與編輯器有關,通...
C 常用函式(續)
view plain 又寫了一些函式,希望大家給指點一下。小弟不勝感激。因為我是在利用ace 在linux下編寫程式,看到ace debug error ace text delallblank execaption n 等是為了除錯程式的方便寫的。用的時候可以丟掉的。view plain wall...
函式的遞迴(續)
漢諾塔問題 有三根柱子a,b,c a柱子上有n個盤子,把a柱子上的盤子全部移到c柱子上,一次只能移動乙個盤子,大的盤子不能放在小的盤子上面,求最少要移動多少次?分析 需要注意的是,只有把a柱子上 n 1 盤子移到b上,才能把a柱子第n個盤子移到c上.有1個盤子 直接移到c 1次 共 1次 有2個盤子...