溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

db基本語句(oracle)

發(fā)布時(shí)間:2020-07-29 09:50:50 來源:網(wǎng)絡(luò) 閱讀:1287 作者:Turnsole1 欄目:關(guān)系型數(shù)據(jù)庫

一. 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–4950–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ù)中的所有增刪改操作全部失敗。


向AI問一下細(xì)節(jié)

免責(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)容。

AI