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