久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

sql重要及不常用語句收集

 java程序員879 2011-10-27
1.要限制結(jié)果集中行的數(shù)量,可以使用 FETCH FIRST 子句,,例如:輸出前10行
SELECT * FROM staff FETCH FIRST 10 ROWS ONLY
 
2.HAVING 子句 常常與 GROUP BY 子句一起使用,,從而檢索出滿足特定條件的 組
的結(jié)果。 HAVING 子句可以包含一個或多個謂詞,將組的某一屬性與組的另一個
屬性或常量進(jìn)行比較,。例如:
"SELECT sales_person, SUM(sales) AS total_sales
FROM sales
GROUP BY sales_person
HAVING SUM(sales) > 25"
這個語句返回銷售總量超過 25 的銷售人員的列表,。
 
3.INSERT 語句用來在表或視圖中添加新的行。在視圖中插入一個新行也會在 視
圖基于的表中插入這一行,。
● 使用 VALUES 子句為一行或多行指定列數(shù)據(jù),。例如:
INSERT INTO staff VALUES
(1212,'Cerny',20,'Sales',3,90000.00,30000.00)
注意,連續(xù)使用 VALUES 插入多行數(shù)據(jù)時,,推薦使用下面的寫法,,可以獲得
更高的效率:
INSERT INTO staff (id, name, dept, job, years, salary, comm)
VALUES (1212,'Cerny',20,'Sales',3,90000.00,30000.00),
(1213,'Wolfrum',20,'Sales',2,90000.00,10000.00)
可以指定完全選擇來標(biāo)識出要從其他表或視圖復(fù)制的數(shù)據(jù)。完全選擇
( fullselect ) 是產(chǎn)生結(jié)果表的語句,。例如:
CREATE TABLE pers LIKE staff
INSERT INTO pers
SELECT id, name, dept, job, years, salary, comm
FROM staff
WHERE dept = 38
 
4.UPDATE 語句用來修改表或視圖中的數(shù)據(jù),。通過指定 WHERE 子句,可以修改
滿足條件的每一行的一個或多個列的值,。例如:
UPDATE staff
SET dept = 51, salary = 70000
WHERE id = 750
多個列同時更新:
UPDATE staff
SET (dept, salary) = (51, 70000)
WHERE id = 750
警告,! 如果沒有指定 WHERE 子句, DB2 就會更新表或視圖中的每一行,!
 
update select
UPDATE tmp_khjldzb1 a SET a.newkhjl = (SELECT b.newkhjl FROM tmp_khjldzb b WHERE b.OLDKHJLID=a.OLDKHJLID FETCH FIRST 1 ROWS ONLY)
update select 連用時,,一定要保證a.newkhjl =唯一值。
 
5.DELETE 語句用來從表中刪除整行的數(shù)據(jù),。通過指定 WHERE 子句,,刪除滿足
條件的每一行。例如:
DELETE FROM staff
WHERE id IN (1212, 1213)
警告,! 如果沒有指定 WHERE 子句,, DB2 就會刪除表中的所有行!
 
6.MERGE 語句使用來自源表的數(shù)據(jù)更新目標(biāo)表或可更新視圖,。僅僅用一個操作 ,,
目標(biāo)表中與源表匹配的行就可以被更新或刪除,目標(biāo)表中不存在的行被插入,。 例
如:
MERGE INTO employee AS e
USING (SELECT empno, firstnme, midinit, lastname, workdept,
phoneno,
hiredate, job, edlevel, sex, birthdate, salary FROM my_emp) AS m
ON e.empno = m.empno
WHEN MATCHED THEN
UPDATE SET (salary) = (m.salary)
WHEN NOT MATCHED THEN
INSERT (empno, firstnme, midinit, lastname, workdept, phoneno ,
hiredate, job, edlevel, sex, birthdate, salary)
VALUES (m.empno, m.firstnme, m.midinit, m.lastname,
m.workdept, m.phoneno, m.hiredate, m.job, m.edlevel,
m.sex, m.birthdate, m.salary)
對上面 SQL 的解釋如下( Merge 操作對一些 SQL 老手來說都可能從來沒用
過呢):使用表 my_emp 聯(lián)合表 employee ,,根據(jù)兩個表的比照( ON e.empno =
m.empno ),如果存在這樣的記錄,,則使用 表 my_emp 的 salary 值來更新表
employee 的 salary 的值,;如果不存在符合條件的記錄,則將表 my_emp 中的
數(shù)據(jù)插入到表 employee 中去,??梢岳斫鉃?先更新數(shù)據(jù),更新不了就插入數(shù)據(jù) ,。
 
7.假設(shè)您想在同一個工作單元( UOW )中給職員 000220 加薪 7% 并檢索她原 來
的工資,??梢允褂?數(shù)據(jù)修改 - 表引用 子句來實現(xiàn),這個子句是 SQL 語句中 FR OM
子句的一部分,。
SELECT salary FROM OLD TABLE (
UPDATE employee SET salary = salary * 1.07
WHERE empno = '000220');
數(shù)據(jù)修改操作(插入,、更新或刪除)的目標(biāo)中的列變成中間結(jié)果表中的列,
可以在查詢的選擇列表中按名稱引用這些列(在這個示例中是 Salary ),。
 
插入,、更新或刪除 沒有執(zhí)行,查出結(jié)果為舊表結(jié)果,。把括號外語句注釋了,,插入、更新或刪除才能執(zhí)行,。
 
SELECT salary FROM NEW TABLE (
UPDATE employee SET salary = salary * 1.07
WHERE empno = '000220');
查看到預(yù)期的結(jié)果,,但實際employee的數(shù)據(jù)沒有任何該表。
 
8.查看存儲過程語句
select text from syscat.procedures where procname='PROC1';
 
9.查看表結(jié)構(gòu)
describe table user,;

 10.查看表的索引信息
db2 "select colnames from syscat.indexes where tabname=
'TB_CLEAR_MATCH_DETAIL? ”
 
11.表重命名
db2 rename table tb_branch to tb_branch_bak
 
12.日程安排提前五分鐘提醒
  SQL: select * from 日程安排 where datediff('minute',f開始時間,getdate())>5
13.查詢存在
SELECT 1 as a FROM A a1 WHERE EXISTS (SELECT * FROM A a2 WHERE a1.name=a2.name and name='輸入內(nèi)容');
執(zhí)行效率比count(*)高點,避免全表查詢,。當(dāng)用戶名存在,,a的值為1,當(dāng)用戶名不存在,,a的值為NULL,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多