程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> ORACLE簡單操作語句(增刪改查),和代碼例子

ORACLE簡單操作語句(增刪改查),和代碼例子

編輯:Oracle教程

ORACLE簡單操作語句(增刪改查),和代碼例子


//創建用戶 :               create user c##名字 identified by 密碼 ;         //命名規則 :              1 名字必須以字母開頭,             2 長度不能超過30個字符(60字節),             3 不能使用oracle的保留字<             4 只能使用a-z,A-Z, 0-9,$,#,_,等...   //切換當前用戶 :                connect 用戶名/密碼@網絡服務器(orcl);   //oracle數據類型 :               number : 整型值  插入值的時候 直接 (22,33,4,45,...就行)         varchar2 : 字符型 插入值的時候 '必須用單引號括起來';     number :            number(5,2);//一共5位數字,其中有兩位是小數,范圍是(-10^38 ~ 10^38);         number(5);//就是規定有五位數字,沒有小數 默認是number(5,0);          char :            //查詢快,但是浪費空間         char:定長,2000字符(4000字節),字符串char(5);//可以設置5可 但是內容必須是 '內容',用單引號括起來       varchar2 :            varchar2:變長,4000字符(8000字節);         varchar2(20 byte);//規定能寫20個字符 但是只能是byte類型(字節型),但是內容必須是 '內容',用單引號括起來       clob :            clob(characterlarge object);//字符型大對象,最大4G       date :            date;//時間格式,values()賦值的時候,可以用這個更改格式 : to_date('20-2-81','DD-MON-RR');       blob :          blob://二進制數據電影,圖片,音樂,4G不會放到數據庫裡面,文件服務器   //創建表單 :      在當前用戶下創建表單     create table 表名字(id number(5,2), name varchar2(20 byte));//創建一個表單,裡面有兩列,第一列是id 是數值型 切共有5位數字,並有兩位是小數,三位是整數 ,第二列是name 字符型,能輸入20個字節,必須是字節   //更改表名字 :        rename 舊表名 to 新表名;   zeng :  //增 :     //創建用戶 :               create user c##名字 identified by 密碼 ;         //命名規則 :              1 名字必須以字母開頭,             2 長度不能超過30個字符(60字節),             3 不能使用oracle的保留字<             4 只能使用a-z,A-Z, 0-9,$,#,_,等...       //為用戶授權 : 權限           grant connect,resource,unlimited tablespace to c##名字 container=all;//所有權限       //grant 權限 to c##用戶名:           connect:鏈接(登陸) 權限         resource:數據/源 權限 (對數據的 增 刪 改 查 )         unlimited tablespace : 表空間 權限       // grant 權限 傳遞                  grant 權限 to 用戶名 with grant option;//它也就有給別人權力的權力,但是權力不能超過他自己(本身)       //設置用戶使用的表空間 :                   alter user 用戶名 default tablespace users;         alter user 用戶名 temporary tablespace temp;//臨時表空間       //創建表單 :           create table 表名(屬性 number(5,0)/*數據類型五位數,且沒有小數*/ , 屬性 varchar2(4 byte)/*數據類型,字符型,只能輸入4位,必須是字節格式*/)       //往表裡面添加行(內容) :                   insert into 用戶名.表名(屬性1,屬性2.../*可選的*/)values(值,值...);       //往表單裡添加一個字段 : (添加一個列/屬性)           alter table 表名 add ("名字" number(3)/*類型,規定內容格式*/);       //多個插入 :            insert into 新表名(字段名) select 列 from 表名 where 行限定條件(不是所有數據,年齡段,某個部門)//     如 : insert into emp(id) select age from emp where id = 33;//把emp表中 id列值為33,對應的那些age的值,添加到emp表的id列中       //備份表 :            create table 表名 as select * from 表名;       //模擬中的數據復制 :            insert into 表1(屬性1,屬性2...) select * from 表2;//表1後面屬性個數是多少,表2就必須是多少,而且數據類型也必須完全相同 , 然後把表2裡面列的數據類型的值,添加到和表1中對應列的數據類型相同的那一列的後面(追加行 )         1 insert into emp (id/*我這個id是number(5)類型,並且只能寫5個數字*/) select * from emp2;//表2 裡面必須有一個number(5)類型的列,並且也只能寫5個數字         2 insert into emp (id/*我這個id是number類型*/) select hao from emp2;//hao這個列 必須和id列的數據類型完全相同,然後把hao那一列的數據,在id哪一列的後面,追加   shan :  //刪 :       //刪除用戶和表 :                 //刪除用戶 只能用sys用戶才能刪除,因為只有sys用戶有刪除別的用戶的權利         drop user 用戶名 cascade;//用戶和表一起刪除       //刪除表 :            drop table 用戶名.表名;//刪除表       //刪除權限 :           revoke 操作名(權限) on 表名 from 用戶名;       //刪除一個表的字段 : (刪除一個列/屬性)           alter table 表名 drop column 列名;    //強烈建議不要對成熟的系統這麼做       //刪除行 : 不定條數              delete from 表名 where 行限定條件;             限定條件 如 : name那一列為Kay的 全部刪除         delete from emp where name = 'Kay';       //刪除表的數據           truncate table 表名;    //相當於刪除表和數據然後重建表.   gai :  //改 :       //更改表名字 :                   rename 舊表名 to 新表名;       //切換當前用戶 :            connect 用戶名/密碼@網絡服務器(orcl);       //更改字段(列)的類型或者名字 :            alter table 表名 modify (屬性 類型);             如 : alter table student modify (sex number(1));       //更改列上的值 :            update 表名 set 列名=列值改變量(+-*/), 字段2,字段3, where 行限定條件;             如 :  update 表名 set 列名='值' where id='B0002'(限定條件,id為B0002的 都會把前面指定的屬性的值更改);               1  update 表名 set (job,sal,comm/*列名*/)= (select job,sal,comm from/*查看三個列*/ emp where ename='clock'/*ename為'clock'*/) where ename ="scott"/*enamel為'Scott'的*/;//               1 --> update 表名 set (job,sal,comm)= (select job,sal,comm from emp where ename='clock') where ename ="scott";//先查ename為'clock'的(區分大小寫),獲取job,sal,comm,對應的值,再把這些值更改(賦值)到 ename為'scott' 對應的job,sal,comm的列值中   cha :  //查 :       //查看當前登陸用戶 :                   show user;       //查看當前用戶下所有的表單 :           select * from user_tables;       //查看你能管理的所有用戶 :               select * from all_users;        //查看數據庫裡面的所有用戶 :            select * from dba_users;//前提是 你登陸的是sys或system號(用戶);       //查看數據庫裡面的所有表           select 表名 from dba_tables;//數據庫所有表,包括系統表,前提是 你登陸的是sys或system號(用戶);       //查看表頭 :            desc 表名;//查看表頭(也就是列) where_and :      //篩選數據,多選, 查詢空值 (後面只能用null 這是一個語句)           select * from 表名 where 列(屬性) is not null;//不為空的         select * from 表名 where 列(屬性) is  null;//為空的         //查看某列的屬性為空(不為空)的所有數據   where_and_or :          or : 或者 或         >,>=,<,<=,= : 大於,大於等於,小於,小於等於,等於;     select * from 表 where (列 >/*</>/=(大於或等於或小於)*/值 or 列 = 值) and 列 like 'j%';//          如 : select * from emp where (id>20 or age = 19)and name like 'j%';//查看emp表中 id列的值大於20或age列的值為19的 並且 name列的值以j開頭的所有的行的屬性        //指定查詢 :            select 列限定(就是列) from 表限定(就是表) where 行限定(就是一行中某一個屬性);    //數據限定條件區分大小寫,java限定大小寫,select什麼就輸出什麼         1 select id,name from emp where job = 'CLERK';//查看 job(列)為'CLERK'的哪一行(或多行)的id值和name值           2 select * from 表 where 列(列限定/表頭) < 7800 and 列>2000;//(*就代表輸出所有列的屬性) 輸出 某表中 某列上的值小於7800 且 某列的值大於2000 的所有列的屬性       //查詢特定列 :            select 列1,列2,列3... from 表 where 行限定;(行限定 : 就是某一列上的值 )         如 :             select id,name from emp where sex = '男';//查看性別為'男'的 id和name屬性   distinct :      //單列查詢 : (去除重復)           select distinct 列限定 from 表名 where 行限定(z只能單行查詢)      like :        //匹配字符查詢 : (就是篩選)           % : 匹配多個字符 有兩個意思 1 可以匹配任意位字符                                     2 可以匹配每位上面的任意字符         _ : 匹配一個字符          1 select * from 表名 where 限定列 like ''%k%';//查看某個表中某個列的屬性值,包含k的所有的行的屬性          2  select * from 表名 where 限定列 like '__k%';//兩個下劃線(代表兩位) 查看某個表的某個列的值, 值的第三位是k的所有的行的屬性   in :        //枚舉查詢           select * from 表 where 列 in(值(1),值(2),值(3)...);//輸出某表中 某列的值為 1 或者 2 或者 3 的所有的行的屬性         select * from emp id in(22,42,66);//輸出emp表中 id 列的值為22或42或66的所有的行的屬性       in_and :          >,>=,<,<=,= : 大於,大於等於,小於,小於等於,等於;         select * from 表 where 列 in(值(1),值(2),值(3)) and 列 >/</=(大於或小於或等於) 值;         如 : select * from emp where id in(22,33,44) and age >19;//查看emp表中 id列的值為22或33或44 並且 age(年齡)列的值 大於19的 所有的行的屬性        //對查看到值進行運算 :                           +*-/ : 運算查看的值(查是查 算是算 不是一回事,並不會改變表單裡面的值,只是更改了輸出方式)//但是 該列的數據類型必須是數字(number類型)             select 列+20 '年終獎' , name from 表名;             select 列+(加/減/乘/除)20(加減乘除對應的值) '年終獎'(給算好的結果(輸出時候的列)起個名字) ,name from 表名;              select sal+20 '年終獎' , name from emp;//查看emp表中的sal值和name值 ,並且把sal的值都加20 然後起個列名為年終獎        nvl :          //!!!!重點 : 如果 某列某行 有個空值 , 那麼運算結果肯定為空值         nvl(列,0) : 把某列上的空值 賦值為0         select 運算列1 + nvl(運算列2,0)*12 "年工資",列 from 表;         select sal(工資) + nvl(jiang(獎金列),0) '年工資' ,name from emp;//查看emp表中的sal列,和jiang列,和name列 , 並把sal列的值和jiang列的值相加(有的人獎金為空 , 就是沒有,然後通過nvl(),就把空值賦值為0),然後算出來的結果起名(輸出時候的列名)為 年工資 ,   order_by :       desc :            //給查到的數據,進行從大到小排序(是查到後,在排序,和表內容沒關系)         select * from 表名 order by  列 desc;//某列從大到小排序(只是輸出的時候排序而已)       asc :            //給查到的數據,進行從小到大排序(是查到後,在排序,和表內容沒關系)         select * from 表 order by 列 asc;//某表的某列輸出的時候從小到大排序(只是輸出的時候排序)       as : (起名)           select 列,列*12 + nvl(列*12,0) as sy,  列 from emp order by sy 排序(asc/desc);//查看某個表的某些列,並對某些列進行了算數操作,並給算的結果起個別名 叫 sy列 ,然後再給這個sy列進行排序 asc(從小到大)/desc(從大到小)   //子查詢 : 分頁           //幾個查詢運算,只能是number類型 ,返回值也都為int類型     max :            max();//獲取某一列的最大值  返回值為int類型             如 : max(id);//獲取id那一列的最大值       min :            min();//獲取某一列的最小值  返回值為int類型             如 : min(id);//獲取id那一列的最小值       avg :            avg();//獲取某一列的平均值  返回值為int類型             如 : avg(id);//獲取id那一列的平均值       sum :            sum();//獲取某一列的值的總和    返回值為int類型             如 : sum(id);//獲取id那一列的值的總和       count :            conut();//當前列下有多少個值    返回值為int類型             如 : conut(id);//獲取id那一列有幾個值          group_by :        //以單列為標准分組           group by ;//以某一列為標准,進行分組   分組標准必須是查詢條件中的列         select 操作(列),操作(列).... ,分組列 from 表 group by 分組列;//分組列就是以某個列為標准分組,去除這一列的重復數據(是把相同數據的行,分為一組)         select avg(sal),max(sal),deptno from emp group by deptno;        //以多列為標准分組           group by ;//以某幾個列為標准,進行分組   分組標准必須是查詢條件中的列         select 操作(列),操作(列).... ,分組列1,分組列2 from 表 group by 分組列1,分組列2;//以多列為標准進行分組,就是分組列1進行分組(把相同的數據分為一組,並且 每個組裡面不能有分組列2相同的數據 , 如 : id , name  每個id分組裡面,不能有相同的name)         select min(sal),avg(sal),max(sal),deptno,job from emp group by deptno,job;   having :            having ;//對統計結果進行過濾         select 操作(列),操作(列).... ,分組列 from 表 group by 分組列 having 操作(列) 比較符 值;//就是限定條件  但是是對結果集進行的限定查詢, 先分組,在從分組的基礎上,進行限定         select avg(sal),max(sal),deptno from emp emp group by deptno having avg(sal)>2000;(平均工資低於2000的部門號和平均工資)     //為用戶授權 : 權限           grant connect,resource,unlimited tablespace to c##名字 container=all;//所有權限       //grant 權限 to c##用戶名;         connect:鏈接(登陸) 權限         resource:數據/源 權限         unlimited tablespace : 表空間 權限       //設置用戶使用的表空間 :                   alter user 用戶名 default tablespace users;         alter user 用戶名 temporary tablespace temp;//臨時表空間  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved