您好,登錄后才能下訂單哦!
一. SQL分類
DDL:數據定義語言(Data Definition Language)
DML:數據操縱語言(Data Manipulation Language)
TCL:事務控制語言(Transaction Control Language)
DQL:數據查詢語言(Data Query Language)
DCL:數據控制語言(Data Control Language)
1. DDL
用于建立,修改,刪除數據庫對象
CREAE:創建表或其它對象結構
ALTER:修改表或其它對象的結構
DROP:刪除表或其它對象的結構
TRUNCATE:刪除表數據,保留表結構
2. DML
INSERT:將數據插入數據表中
UPDATE:更新數據表中已經存在的數據
DELETE:刪除數據庫表中的數據
3. TCL
COMMIT:提交,確認已經進行的數據改變
ROLLBACK:回滾,取消已經進行的數據改變
SAVEPOINT:保存點,使當前的事務可以回退到指定的保存點,便于取消部分改變
4. DQL
SELECT
5. DCL
GRANT:授予,用于給用戶或角色授予權限
REVOKE:用于收回用戶或角色已有的權限
CREATE USER:創建用戶
二. ORACLE基本類型
1. NUMBER(數字類型)
NUMBER(P,S):P表示數字總位數;S表示小數點后面的位數
2. CHAR(固定長度字符類型)
CHAR(N):N表示占用的字節數,最大長度是2000字節
無論給定的值是多長的字節都會占用N個字節。
3. VARCHAR2(變長的字符類型)
VARCHAR(N):N表示最多可占用的字節數,最大長度是4000字節
給定的值是多長就占用多長的字節,但是不利于頻繁改動的字符,因為需要重新計算原先后面的字符,性能較VCHAR差。
ORACLE中也有VARCHAR,和Mysql中的一樣,其中VARCHAR和VARCHAR2一樣,但是VARCHAR可能跟著大眾的同意規則改變,而VARCHAR2永遠不變,是變長的字符類型。
4. DATE(定義日期時間的數據)
長度:7個字節
默認格式:DD-MON-RR(eg:11-APR-71)
其中RR年份如下:
當前時間(列)/系統時間(行) | 0–49 | 50–99 |
0–49 | 本世紀 | 下世紀 |
50–99 | 上世紀 | 本世紀 |
三. 基本語法
1. 創建表CREATE TABLE table_name( id NUMBER(4));
2. 查看表結構DESC table_name
3. 創建表時對字段賦默認值DEFAULT
4. 非空(NOT NULL)條件約束,確保字段值不為空
5. 修改表名
RENAME old_name TO new_name;
6. 增加列
ALTER TABLE table_name ADD (column datatype[DEFAULT EXPR][column datatype...])
列只能增加在最后,不能插入到現有的列中(Mysql可以插入到指定列后面)
eg: 給表增加一列hiredata,并設置默認值為當前日期
ALTER TABLE myemp ADD (hiredate DATE DEFAULT sysdate);
7. 刪除列
ALTER TABLE table_name DROP (column);
刪除字段需要從每行中刪掉該字段占據的長度和數據,并釋放在數據塊中占據的空間,如果紀錄比較大,刪除字段可能需要比較長的時間。
8. 修改列
ALTER TABLE table_name MODIFY (column datatype [DEFAULT expr][column datatype...])
建表之后可以改變表中列的數據類型,長度和默認值
修改只對以后插入的數據有效
若把長度由大改小則可能不成功
eg: MODIFY TABLE myemp MODIFY (job VARCHAR2(40) DEFAULT ‘CLERK’);
9. 插入數據
INSERT INTO table_name(column1, column2) VALUES(value1,value2);
執行了DML操作后,需要再執行commit語句,才算真正確認了此操作
如果插入的列有日期字段,需要考慮日期的格式。默認日期格式為'DD-MON-RR’,可以自定義日期格式,用TO_DATE函數轉換為日期類型的數據
eg: INSERT INTO myemp (id, name, job, birth) VALUES(1002, ‘doma’, ‘MANAGER’, TO_DATE(‘2009-01-01, ‘YYYY-MM-DD''));
10. 更新操作
UPDATE table_name SET column = value WHERE id = 2;
11. 刪除操作
DELETE FROM table_name = where id = 2;
在DDL語句中的TRUNCATE語句,同樣有刪除表數據的作用。
和DELETE語句區別:
— DELETE可以有條件刪除,TRUNCATE將表數據全部刪除
— DELETE是DML語句,可以退回,TRUNCATE是DDL語句,立即生效,無法回退
— 如果是刪除全部表紀錄,且數據量較大,DELETE語句效率比TRUNCATE語句低
事務控制:
COMMIT用于事務提交
ROLLBACK用于回滾事務。那么該次事務中的所有增刪改操作全部失敗。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。