SQL語句:
1、數據查詢語句 SELECT
2、數據定義語句 DDL 定義表、視圖、索引
3、數據操縱語句 DML INSERT、UPDATE、DELETE
4、數據控制語句 DCL
基本的數據類型:
number(p,s) --> p個數字,s是p中小數點后的數字位數
smallint --> 表示16位的整數
integer --> 32位的整數
varchar(n) --> 可變長度的字符串,最長為n
char(n) --> 固定長度為n的字符串
一、基本查詢語句
1)DESC 表名 --> 查看表的關鍵字、類型
2)dual是虛表 --> 只有一個字段X,是空表
3)SELECT 字段名(原) 字段名(改) FORM表名 --> 修改字段名稱
如果修改后的字段名稱里有空格,那么整個修改后的名稱用雙引號括起來,不僅是空格,中文等特殊字符也要用雙引號,用雙引號的字段名不會變成大寫
注意:字段里的空值與0是不同的概念,任何含有空值的表達式與其他表達式運算后其結果還是空值
4)distinct
SELECT DISTINCT 字段 FORM 表名 --> 把字段中值不重復的列出來
SELECT DISTINCT 字段1,字段2 FORM 表名 --> 把兩個字段組合中不重復的列出來
5)條件表達式
WHERE sal IN <800, 1000, 1500>
BETWEEN 800 AND 1500(包括兩個界限)
IS (NOT) NULL
WHERE birthday > '20-2月-1988' (對日期的處理) 后面的字符串要和日期的格式相同
WHERE name LIKE + "."一個字母, "*"0個或多個字母 "?"0個或一個
"+"一個或多個 "%"0個或多個 "_"一個字母
二、單行函數(只要有一條數據就產生一個輸出)
nvl(i,j) 專門用來處理空值,當i為空值時就把他的只當成j的值
三、聚合函數(組函數)
min()、max()、
avg() 只能對數值型的字段使用
sum()、count()
count(*)就是求這個表里有多少記錄
注意:聚合函數不能用在WHERE子句中
在使用聚合函數是一定小心,如果在SELECT查詢語句的條件表達式中出現聚合函數時不要用WHERE語句,要使用HAVING條件句
四、邏輯運算符
NOT > AND > OR
DDL
1、創建一個表
CREATE TABLE 表名(列名1 列約束,列名2 列約束)
列約束:NOTNULL , UNIQUE
注意:1)把較小的不為空的字段放在前面,可能為空的字段放在后面
2)創建表時可以使用中文的字段名,但最好使用英文字段名
3)創建表時加上默認值,如DEFAULT SYSDATE
4)可以給字段加上約束條件
2、刪除語句 DROP
可以刪除表、索引
3、修改語句 ALTER
1)在表的后面添加一個字段
ALTER TABLE 表名 ADD 列名 類型; 或 ALTER TABLE 表名 ADD (列名1 類型1[,列名2 類型2 ...]);
2)設置一個主鍵
ALTER TABLE 表名 ADD PRIARY KEY (列名);
3)刪除一個主鍵
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、數據刪除語句 TRUNCATE
TRUNCATE TABLE 表名;
(只刪除表的記錄,而不刪除表的結構)
DML(數據操縱語句)
1、INSERT:
在插入日期的時候,可以直接使用字符串,內部直接轉換成日期格式。默認格式是‘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、事務處理語句
1) 顯示提交 COMMIT;
2)隱式提交 DDL(CREATE DROP ALTER TRUNCATE GRANT REVOKE) 她們都不用再提交
3) 自動提交 SET AUTOCOMMIT ON;
事務回滾語句 ROLLBACK
觸發器:
CREATE [OR REPLACE] TRIGGER
ON 表名
[FOR EACH ROW]
PL/SQL
觸發事件:DML:INSERT UPDATE DELETE
觸發條件:條件為true
觸發器動作:PL\SQL