SQL語(yǔ)句:
1、數(shù)據(jù)查詢語(yǔ)句 SELECT
2、數(shù)據(jù)定義語(yǔ)句 DDL 定義表、視圖、索引
3、數(shù)據(jù)操縱語(yǔ)句 DML INSERT、UPDATE、DELETE
4、數(shù)據(jù)控制語(yǔ)句 DCL
基本的數(shù)據(jù)類(lèi)型:
number(p,s) --> p個(gè)數(shù)字,s是p中小數(shù)點(diǎn)后的數(shù)字位數(shù)
smallint --> 表示16位的整數(shù)
integer --> 32位的整數(shù)
varchar(n) --> 可變長(zhǎng)度的字符串,最長(zhǎng)為n
char(n) --> 固定長(zhǎng)度為n的字符串
一、基本查詢語(yǔ)句
1)DESC 表名 --> 查看表的關(guān)鍵字、類(lèi)型
2)dual是虛表 --> 只有一個(gè)字段X,是空表
3)SELECT 字段名(原) 字段名(改) FORM表名 --> 修改字段名稱
如果修改后的字段名稱里有空格,那么整個(gè)修改后的名稱用雙引號(hào)括起來(lái),不僅是空格,中文等特殊字符也要用雙引號(hào),用雙引號(hào)的字段名不會(huì)變成大寫(xiě)
注意:字段里的空值與0是不同的概念,任何含有空值的表達(dá)式與其他表達(dá)式運(yùn)算后其結(jié)果還是空值
4)distinct
SELECT DISTINCT 字段 FORM 表名 --> 把字段中值不重復(fù)的列出來(lái)
SELECT DISTINCT 字段1,字段2 FORM 表名 --> 把兩個(gè)字段組合中不重復(fù)的列出來(lái)
5)條件表達(dá)式
WHERE sal IN <800, 1000, 1500>
BETWEEN 800 AND 1500(包括兩個(gè)界限)
IS (NOT) NULL
WHERE birthday > '20-2月-1988' (對(duì)日期的處理) 后面的字符串要和日期的格式相同
WHERE name LIKE + "."一個(gè)字母, "*"0個(gè)或多個(gè)字母 "?"0個(gè)或一個(gè)
"+"一個(gè)或多個(gè) "%"0個(gè)或多個(gè) "_"一個(gè)字母
二、單行函數(shù)(只要有一條數(shù)據(jù)就產(chǎn)生一個(gè)輸出)
nvl(i,j) 專門(mén)用來(lái)處理空值,當(dāng)i為空值時(shí)就把他的只當(dāng)成j的值
三、聚合函數(shù)(組函數(shù))
min()、max()、
avg() 只能對(duì)數(shù)值型的字段使用
sum()、count()
count(*)就是求這個(gè)表里有多少記錄
注意:聚合函數(shù)不能用在WHERE子句中
在使用聚合函數(shù)是一定小心,如果在SELECT查詢語(yǔ)句的條件表達(dá)式中出現(xiàn)聚合函數(shù)時(shí)不要用WHERE語(yǔ)句,要使用HAVING條件句
四、邏輯運(yùn)算符
NOT > AND > OR
DDL
1、創(chuàng)建一個(gè)表
CREATE TABLE 表名(列名1 列約束,列名2 列約束)
列約束:NOTNULL , UNIQUE
注意:1)把較小的不為空的字段放在前面,可能為空的字段放在后面
2)創(chuàng)建表時(shí)可以使用中文的字段名,但最好使用英文字段名
3)創(chuàng)建表時(shí)加上默認(rèn)值,如DEFAULT SYSDATE
4)可以給字段加上約束條件
2、刪除語(yǔ)句 DROP
可以刪除表、索引
3、修改語(yǔ)句 ALTER
1)在表的后面添加一個(gè)字段
ALTER TABLE 表名 ADD 列名 類(lèi)型; 或 ALTER TABLE 表名 ADD (列名1 類(lèi)型1[,列名2 類(lèi)型2 ...]);
2)設(shè)置一個(gè)主鍵
ALTER TABLE 表名 ADD PRIARY KEY (列名);
3)刪除一個(gè)主鍵
ALTER TABLE 表名 DROP PRIMARY KEY(列名);
4)修改表的名稱
RENAME 舊表名 TO 新表名
5)改變表里字段的定義描述
ALTER TABLE 表名 MODIFY 字段描述;
6)給表里的字段加上唯一約束
ALTER TABLE 表名 ADD CONSTRAINT cons_name UNIQUE(列名);
cons_name 是給約束起的名稱
-->ALTER TABLE ABC ADD CONSTRAINT ONLY UNIQUE(A1);
4、數(shù)據(jù)刪除語(yǔ)句 TRUNCATE
TRUNCATE TABLE 表名;
(只刪除表的記錄,而不刪除表的結(jié)構(gòu))
DML(數(shù)據(jù)操縱語(yǔ)句)
1、INSERT:
在插入日期的時(shí)候,可以直接使用字符串,內(nèi)部直接轉(zhuǎn)換成日期格式。默認(rèn)格式是‘D-M-YY’、
TO_DATE('2008-09-09','YYYY-MM-DD')按照指定的格式顯示
INSERT INTO 表名(字段列表) SELECT (字段名列表) FORM 表名;
2、UPDATE:
UPDATE table_name SET column1 = 'XXX' WHERE conditions;
UPDATE table_name SET(col1,col2..) = (SELECT ...) WHERE ..
3、DELETE:
DELETE [FROM] 表名 WHERE 條件;
4、事務(wù)處理語(yǔ)句
1) 顯示提交 COMMIT;
2)隱式提交 DDL(CREATE DROP ALTER TRUNCATE GRANT REVOKE) 她們都不用再提交
3) 自動(dòng)提交 SET AUTOCOMMIT ON;
事務(wù)回滾語(yǔ)句 ROLLBACK
觸發(fā)器:
CREATE [OR REPLACE] TRIGGER
ON 表名
[FOR EACH ROW]
PL/SQL
觸發(fā)事件:DML:INSERT UPDATE DELETE
觸發(fā)條件:條件為true
觸發(fā)器動(dòng)作:PL\SQL