亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡) [打印本頁]

作者: vlife    時間: 2003-06-26 14:27
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
SQL定義:SQL是一種面向數(shù)據(jù)庫的通用數(shù)據(jù)處理語言規(guī)范,能完成以下幾類功能:提取查詢數(shù)據(jù),插入修改刪除數(shù)據(jù),生成修改和刪除數(shù)據(jù)庫對象,數(shù)據(jù)庫安全控制,數(shù)據(jù)庫完整性及數(shù)據(jù)保護控制。

SQL分類:
DDL—數(shù)據(jù)定義語言(CREATE,ALTER,DROP,DECLARE)
DML—數(shù)據(jù)操縱語言(SELECT,DELETE,UPDATE,INSERT)
DCL—數(shù)據(jù)控制語言(GRANT,REVOKE,COMMIT,ROLLBACK)

db2數(shù)據(jù)類型
CHAR():定長字符串  最大長度為 254   
VARCHAR():變長字符  最大長度為 4000  
SMALLINT:短整型數(shù)字  長度為 2 字節(jié)
INTEGER:整型數(shù)字  長度為 4 字節(jié)
REAL:單精度浮點  32 位近似值
DOUBLE:雙精度浮點  64 位近似值
DECIMAL(m,n):數(shù)字  精度為m小數(shù)位為n
DATE:日期時間
TIME:日期時間
TIMESTAMP:日期時間

DDL—數(shù)據(jù)庫定義語言:直接提交的。
   CREATE:用于創(chuàng)建數(shù)據(jù)庫對象。
   DECLARE:除了是創(chuàng)建只在過程中使用的臨時表外,DECLARE語句和CREATE語句非常相似。唯一可以被聲明的對象是表。并且必須放入用戶臨時表空間。  
   DROP:可以刪除任何用CREATE(數(shù)據(jù)庫對象)和DECLARE(表)創(chuàng)建的對象。
   ALTER:允許修改某些數(shù)據(jù)庫對象的信息。不能修改索引。
下面主要基于對象介紹基本的語法:
1、數(shù)據(jù)庫:
  創(chuàng)建數(shù)據(jù)庫:CREATE DATABASE database-name [USING CODESET codeset TERRITORY territory]
  注:代碼頁的問題。
  刪除數(shù)據(jù)庫:drop database dbname
2、表:
  創(chuàng)建新表:
   create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
  根據(jù)已有的表創(chuàng)建新表:
   A:create table tab_new like tab_old
   B:create table tab_new as select col1,col2… from tab_old definition only
修改表:
增加一個列:
Alter table tabname add column col type
注:列增加后將不能刪除。DB2中列加上后數(shù)據(jù)類型也不能改變,唯一能改變的是增加varchar類型的長度。添加主鍵:
Alter table tabname add primary key(col)
刪除主鍵:
Alter table tabname drop primary key(col)
刪除表:drop table tabname
3、表空間:
  創(chuàng)建表空間:create tablespace tbsname pagesize 4k managed by database using (file ‘file’ size)
  表空間加入容器:alter tablespace tablespace_name add(file 'filename' size)
  注:該操作是不可逆的,加入容器后將不能將其刪除,因此在加入的時候注意。
  刪除表空間:drop tablespace tbsname
4、索引:
  創(chuàng)建索引:create [unique] index idxname on tabname(col….)
  刪除索引:drop index idxname
  注:索引是不可更改的,想更改必須刪除重新建。
5、視圖:
  創(chuàng)建視圖:create view viewname as select statement
  刪除視圖:drop view viewname
    注:視圖唯一能修改的是引用類型列,改變列的范圍。其他定義好了都不能修改。當(dāng)視圖基于的基表drop后,視圖變?yōu)闊o效。

DML—數(shù)據(jù)庫操縱語言,它不隱式地提交當(dāng)前事務(wù) ,是否提交視環(huán)境設(shè)定而定。

SELECT:從表中查詢符合數(shù)據(jù)
  注:條件中連接的問題,避免出現(xiàn)笛卡兒乘積

DELETE:刪除已有表的數(shù)據(jù)
UPDATE:更新已有表的數(shù)據(jù)
INSERT:向已有表中插入數(shù)據(jù)
注:DELETE,UPDATE和INSERT是否直接提交取決與執(zhí)行語句所在的環(huán)境。
在執(zhí)行時注意事務(wù)日志滿的情況。

1、select時,注意索引謂詞和非索引謂詞,盡量在有索引的列上使用索引謂詞。
謂詞類型        可索引        注        釋
Col∝con        Y        ∝代表>;,>;=,=,<=,<,但是<>;不是可索引的。
Col between con1 and con2        Y        在匹配系列中必須是最后的。
Col in list        Y        僅對一個匹配列
Col is null        Y       
Col like ‘xyz%’        Y        模糊匹配%在后面。
Col like ‘%xyz’        N        模糊匹配%在前面。
Col1∝Col2        N        Col1和col2來自同一個表
Col∝Expression        N        例如:c1(c1+1)/2
Pred1 and Pred2        Y        Pred1和Pred2都是可索引的,指相同索引的列
Pred1 or Pred2        N        除了(c1=a or c1=b)外,他可以被認(rèn)為是c1 in(a,b)
Not Pred1        N        或者任何的等價形式:Not between,Not in,Not like等等。
使用索引的例子介紹:
<1>;、單個表上索引查詢的介紹 :
A:select *  from t1 where c1 = 10;
  在c1列上無索引,如何檢索
  在c1列上有索引,如何檢索
B:select *  from t1 where c1 =10 and c2 between 5 and 10 and c3 like ‘A%’
僅在c1列上有索引
  在c1,c2和c3列上有單獨的索引
  在c1,c2和c3列上有聯(lián)合索引
此處可以填加索引匹配規(guī)則和高級規(guī)則,比較難理解!
<2>;、兩個或多個表上索引查詢的介紹:
(1)、使用循環(huán)嵌套法執(zhí)行查詢
A:select t1.c1,t1.c2,t2.c3,t2.c4 from t1,t2 where t1.c1=10 and t1.c2 =t2.c3
        介紹查詢的方法,看看哪列上最需要索引。
B:select t1.c1,t1.c2,t2.c3,t2.c4 from t1,t2 where t1.c1=10 and t2.c4 = 10 and t1.c2 =t2.c3
(2)、使用歸并連接執(zhí)行連接查詢
例:select t1.c1,t1.c2,t2.c3,t2.c4 from t1,t2 where t1.c1=10 and t2.c4 = 10 and t1.c2 =t2.c3
(3)、三個以上的表進行連接查詢采取的規(guī)則或者方法
(2)、GROUP BY:實現(xiàn)簡單分組的功能,當(dāng)用group by時,查詢選擇列中除了在group by中出現(xiàn)的和常量外,其他的列上要用分組函數(shù)?梢允褂靡恍┓纸M函數(shù)實現(xiàn)一些列不在group by中出現(xiàn),min,max等。
(3)、HAVING的使用,對一些分組列進行條件判斷。
(4)、ORDER BY子句使得SQL在顯示查詢結(jié)果時將各返回行按順序排列,返回行的排列順序由ORDER BY 子句指定的表達式的值確定。
2、DELETE:從表中刪除記錄
語法格式:
DELETE FROM tablename WHERE (conditions)
3、INSERT:向表中插入記錄
語法格式:
INSERT INTO tablename (col1,col2,…) VALUES (value1,value2,…);
INSERT INTO tablename (col1,col2,…) VALUES (value1, value2,…), (value1, value2,…),……
Insert不會等待任何程序,不會導(dǎo)致鎖定。
4、UPDATE:
語法格式:
UPDATE tabname SET (col1=values1,col2=values2,…) WHERE (conditions);
注:update的速度比較慢,要在相應(yīng)列上建立索引。

DCL—數(shù)據(jù)控制語言

GRANT—授予用戶權(quán)限
REVOKE—撤消用戶權(quán)限
COMMIT—提交事務(wù),可以使數(shù)據(jù)庫的修改永久化
ROLLBACK—回滾事務(wù),消除上一個COMMIT命令后的所做的全部修改,使得數(shù)據(jù)庫的內(nèi)容恢復(fù)到上一個COMMIT執(zhí)行后的狀態(tài).。

1、GRANT:所有著或者管理員把訪問權(quán)限賦給其他用戶
語法格式:
grant [all privileges|privileges,….] on tabname | viewname  to [public|user,….]
2、REVOKE:取消某一用戶的某中訪問權(quán)限
語法格式:
Revoke [all privileges|privileges,….] on tabname | viewname  from [public|user,….]
注:不能取消實例級別的用戶的任何權(quán)限,他們不是通過grant授權(quán)的,是通過組實現(xiàn)的權(quán)限。
3、COMMIT:把事務(wù)中所做的修改永久化記錄到數(shù)據(jù)庫。
語法格式:
commit [work]
4、ROLLBACK:將上次提交以來所做的更改全部撤消。
語法格式:
Rollback [work]

高級sql簡單介紹
一、查詢間使用運算詞
A: UNION 運算符
UNION 運算符通過組合其他兩個結(jié)果表(例如 TABLE1 和 TABLE2)并消去表中任何重復(fù)行而派生出一個結(jié)果表。當(dāng) ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重復(fù)行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。
B: EXCEPT 運算符
EXCEPT 運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重復(fù)行而派生出一個結(jié)果表。當(dāng) ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重復(fù)行。
C: INTERSECT 運算符
INTERSECT 運算符通過只包括 TABLE1 和 TABLE2 中都有的行并消除所有重復(fù)行而派生出一個結(jié)果表。當(dāng) ALL 隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重復(fù)行。
注:使用運算詞的幾個查詢結(jié)果行必須是一致的。
二、外連接
A、left outer join:
左外連接(左連接):結(jié)果集幾包括連接表的匹配行,也包括左連接表的所有行。
B:right outer join:
右外連接(右連接):結(jié)果集既包括連接表的匹配連接行,也包括右連接表的所有行。
C:full outer join:
全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。

注:復(fù)合外連接按照從左到右的順序執(zhí)行連接,左邊連接的結(jié)果集和右邊連接
三、超級分組和移動函數(shù)
A:grouping sets:用來在單個sql中形成多級分組。
例:select company_id,node_id,count(customer_id) from customer group by  grouping sets(company_id,node_id)
B:rollup:可以在單個數(shù)據(jù)庫操作中形成多個分組。
例:select company_id,node_id,count(customer_id) from customer group by  rollup(company_id,node_id)
注:rollup操作不是可交換的操作,指定用戶組的順序是很重要的。
C:cube: 生成分組表中分組的所有組合。
例:select company_id,node_id,count(customer_id) from customer group by  cube(company_id,node_id)
D:over:移動函數(shù)可以幫助實現(xiàn)移動的數(shù)據(jù)分析
  Select date,avg(qty) over(order by date rows between 1 preceding and 1 following) as values from sale

附錄:常用函數(shù)介紹
1、類型轉(zhuǎn)化函數(shù):
  轉(zhuǎn)化為數(shù)字類型的:
decimal, double, Integer, smallint,real
Hex(arg):轉(zhuǎn)化為參數(shù)的16進制表示。
  轉(zhuǎn)化為字符串類型的:
char, varchar
Digits(arg):返回arg的字符串表示法,arg必須為decimal。
  轉(zhuǎn)化為日期時間的:
date, time,timestamp
2、時間日期:
year, quarter, month, week, day, hour, minute ,second
dayofyear(arg):返回arg在年內(nèi)的天值
Dayofweek(arg):返回arg在周內(nèi)的天值
days(arg):返回日期的整數(shù)表示法,從0001-01-01來的天數(shù)。
midnight_seconds(arg):午夜和arg之間的秒數(shù)。
Monthname(arg):返回arg的月份名。
Dayname(arg):返回arg的星期。
3、字符串函數(shù):
length,lcase, ucase, ltrim, rtrim
Coalesce(arg1,arg2….):返回參數(shù)集中第一個非null參數(shù)。
Concat (arg1,arg2):連接兩個字符串a(chǎn)rg1和arg2。
insert(arg1,pos,size,arg2):返回一個,將arg1從pos處刪除size個字符,將arg2插入該位置。
left(arg,length):返回arg最左邊的length個字符串。
locate(arg1,arg2,<pos>:在arg2中查找arg1第一次出現(xiàn)的位置,指定pos,則從arg2的pos處開始找arg1第一次出現(xiàn)的位置。
posstr(arg1,arg2):返回arg2第一次在arg1中出現(xiàn)的位置。
repeat(arg1 ,num_times):返回arg1被重復(fù)num_times次的字符串。
replace(arg1,arg2,arg3):將在arg1中的所有arg2替換成arg3。
right(arg,length):返回一個有arg左邊length個字節(jié)組成的字符串。
space(arg):返回一個包含arg個空格的字符串。
substr(arg1,pos,<length>:返回arg1中pos位置開始的length個字符,如果沒指定length,則返回剩余的字符。
4、數(shù)學(xué)函數(shù):
Abs, count, max, min, sum
Ceil(arg):返回大于或等于arg的最小整數(shù)。
Floor(arg):返回小于或等于參數(shù)的最小整數(shù)。
Mod(arg1,arg2):返回arg1除以arg2的余數(shù),符號與arg1相同。
Rand():返回1到1之間的隨機數(shù)。
Power(arg1,arg2):返回arg1的arg2次方。
Round(arg1,arg2):四舍五入截斷處理,arg2是位數(shù),如果arg2為負(fù),則對小數(shù)點前的數(shù)做四舍五入處理。
Sigh(arg):返回arg的符號指示符。-1,0,1表示。
truncate(arg1,arg2):截斷arg1,arg2是位數(shù),如果arg2是負(fù)數(shù),則保留arg1小數(shù)點前的arg2位。

5、其他:
nullif(arg1,arg2):如果2個參數(shù)相等,則返回null,否則,返回參數(shù)1
作者: wymacu    時間: 2003-06-26 14:54
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
好!!!
作者: Law    時間: 2003-06-27 09:05
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
good
作者: vlife    時間: 2003-06-27 15:17
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
這個耗的精力更多,怎么沒人關(guān)注呢?      
我頂一下。
作者: 大連老K    時間: 2003-06-27 15:47
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
呵呵,還是置頂方便些
作者: liangxinf    時間: 2003-06-29 16:18
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
感謝
作者: ddmmdd    時間: 2003-07-01 14:07
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
辛苦!辛苦!
作者: mhxiaoyi    時間: 2003-07-03 16:56
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
謝謝~~~~~~~~~~~~~~~~~`
作者: CCBZZP    時間: 2003-07-04 18:12
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
好人
作者: yaosj    時間: 2003-07-04 18:36
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
謝了!
作者: 長征一號    時間: 2003-07-08 16:02
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
very good。
thanks
作者: observertwo    時間: 2003-07-09 12:56
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
得益非淺,謝謝了.
作者: dennisfox    時間: 2003-07-23 18:30
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
good
作者: szh2933    時間: 2003-07-24 09:07
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
簡潔易懂,經(jīng)典!。
作者: lookyoung    時間: 2003-07-24 10:50
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
8錯8錯!
作者: lihbcn77    時間: 2003-07-24 12:29
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
多謝!。。。。。!
作者: apster    時間: 2003-08-19 10:23
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: GO_FIGHT    時間: 2003-08-21 22:14
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: 雨水    時間: 2003-08-30 17:11
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
GOOD
作者: kuake    時間: 2003-08-31 20:51
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
GOOD!
作者: KevinAN    時間: 2003-09-10 13:12
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
GOOD! KEEP GOING...
作者: longbegue    時間: 2004-11-28 23:35
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
希望像樓主這樣的好人多一些!
作者: daliwa    時間: 2004-11-29 13:59
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)

作者: myuhan    時間: 2004-11-29 15:15
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
頂一下呵呵
作者: huyuhui001    時間: 2004-12-01 08:44
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
對下面的內(nèi)容有疑義:
**************
3、表空間:
創(chuàng)建表空間:create tablespace tbsname pagesize 4k managed by database using (file ‘file’ size)
表空間加入容器:alter tablespace tablespace_name add(file 'filename' size)
注:該操作是不可逆的,加入容器后將不能將其刪除,因此在加入的時候注意。
***********
一個表空間是否能減少容器取決于它的HWM(高水位標(biāo)記),只要扣減了移走容器容量之后,剩余容器容量大于HWM,移走操作就成功。
作者: smithy    時間: 2005-06-10 11:14
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
好人啊。還是大學(xué)的時候?qū)W過的,好久沒用,都快忘記了,呵呵。謝啦
作者: myuhan    時間: 2005-06-10 11:38
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
我頂
作者: DB2_AIX    時間: 2005-06-12 09:32
標(biāo)題: [原]:sql培訓(xùn)內(nèi)容(精簡)
辛苦了!
作者: woaini-gigi010    時間: 2006-07-27 21:53
very good
作者: pqxpqx    時間: 2006-08-31 11:16
支持!
作者: helpme    時間: 2006-08-31 11:23
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: ekinguofeng    時間: 2006-09-01 08:21
大家頂住,別讓他沉下去了
作者: dlms    時間: 2006-09-01 14:51
多謝!
作者: dlms    時間: 2006-09-01 15:03
locate(arg1,arg2,<pos>:在arg2中查找arg1第一次出現(xiàn)的位置,指定pos,則從arg2的pos處開始找arg1第一次出現(xiàn)的位置。
posstr(arg1,arg2):返回arg2第一次在arg1中出現(xiàn)的位置。

locate函數(shù)中的pos指什么!我要是從oracle中移植腳本instr用那個代替合適!
作者: YOHU78    時間: 2006-09-03 19:22
謝謝~~~~~~~~~~
作者: jakey2413    時間: 2009-03-18 20:51
絕對的、真誠的、感謝樓主!
作者: hippozzz    時間: 2009-03-26 13:42
好東西,不錯不錯




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2