oracle的ddl定義語言學(xué)習(xí)_第1頁
oracle的ddl定義語言學(xué)習(xí)_第2頁
oracle的ddl定義語言學(xué)習(xí)_第3頁
oracle的ddl定義語言學(xué)習(xí)_第4頁
oracle的ddl定義語言學(xué)習(xí)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、DDL數(shù)據(jù)定義語言創(chuàng)建表CREATE TABLE <table_name>( column1 DATATYPE NOT NULL PRIMARY KEY, column2 DATATYPE NOT NULL,.constraint <約束名> 約束類型 (要約束的字段). )說明:DATATYPE -是Oracle的數(shù)據(jù)類型,可以查看附錄。NUT NULL -可不可以允許資料有空的(尚未有資料填入)。PRIMARY KEY -是本表的主鍵。constraint -是對表里的字段添加約束.(約束類型有 Check,Unique,Primary key,not null,F

2、oreign key)。示例:create table stu(s_id number(8) PRIMARY KEY,s_name varchar2(20) not null,s_sex varchar2(8),clsid number(8),constraint u_1 unique(s_name),constraint c_1 check (s_sex in ('MALE','FEMALE');復(fù)制表CREATE TABLE <table_name> as <SELECT 語句>(需注意的是復(fù)制表不能復(fù)制表的約束);示例:create

3、 table test as select * from emp;如果只復(fù)制表的結(jié)構(gòu)不復(fù)制表的數(shù)據(jù)則:create table test as select * from emp where 1=2;創(chuàng)建索引CREATE UNIQUE INDEX <index_name> ON <table_name>(字段 ASC|DESC);UNIQUE -確保所有的索引列中的值都是可以區(qū)分的。ASC|DESC -在列上按指定排序創(chuàng)建索引。(創(chuàng)建索引的準(zhǔn)則:1.如果表里有幾百行記錄則可以對其創(chuàng)建索引(表里的記錄行數(shù)越多索引的效果就越明顯)。2.不要試圖對表創(chuàng)建兩個或三個以上的索引。

4、3.為頻繁使用的行創(chuàng)建索引。) 示例create index i_1 on emp(empno asc);創(chuàng)建同義詞CREATE SYNONYM <synonym_name> for <tablename/viewname>同義詞即是給表或視圖取一個別名。示例:create synonym mm for emp;修改表1.向表中添加新字段ALTER TABLE <table_name> ADD (字段1 類型 NOT NULL,字段2 類型 NOT NULL. );2.修改表中字段ALTER TABLE <table_name> modify(字

5、段1 類型,字段2 類型. );3 .刪除表中字段ALTER TABLE <table_name> drop(字段1,字段2. );4 .修改表的名稱RENAME <table_name> to <new table_name>5 .對已經(jīng)存在的表添加約束ALTER TABLE <table_name> ADD CONSTRAINT <constraint_name> 約束類型 (針對的字段名);示例:Alter table emp add constraint S_F Foreign key (deptno) references

6、dept(deptno); 6 .對表里的約束禁用;ALTER TABLE <table_name> DISABLE CONSTRAINT <constraint_name>7 .對表里的約束重新啟用;ALTER TABLE <table_name> ENABLE CONSTRAINT <constraint_name>8 .刪除表中約束ALTER TABLE <table_name> DROP CONSTRAINT <constraint_name>示例:ALTER TABLE emp drop CONSTRAINT &

7、lt;Primary key>刪除表DROP TABLE <table_name>示例drop table emp;刪除索引DROP INDEX <index_name>示例drop index i_1;刪除同義詞DROP SYNONYM <synonym_name>示例drop synonym mm;DML數(shù)據(jù)操縱語言插入記錄INSERT INTO table_name (column1,column2,.)values ( value1,value2, .); 示例insert into emp (empno,ename) values(9500,

8、'AA');把 一個表中的數(shù)據(jù)插入另一個表中INSERT INTO <table_name> <SELECT 語句>示例create table a as select * from emp where 1=2;insert into a select * from emp where sal>2000;查詢記錄一般查詢SELECT DISTINCT <column1 as new name ,columns2,.> FROM <table1>WHERE <條件>GROUP BY <column_list&

9、gt;HAVING <條件>ORDER BY <column_list> ASC|DESC DISTINCT -表示隱藏重復(fù)的行WHERE -按照一定的條件查找記錄GROUP BY -分組查找(需要匯總時使用)HAVING -分組的條件ORDER BY -對查詢結(jié)果排序要顯示全部的列可以用*表示示例:select * from emp;WHERE 語句的運算符where <條件>AND<條件> -兩個條件都滿足示例:select * from emp where deptno=10 and sal>1000;where <條件>

10、OR<條件> -兩個條件中有一個滿足即可示例:select * from emp where deptno=10 OR sal>2000; where NOT <條件> -不滿足條件的示例:select * from emp where not deptno=10;where IN(條件列表) -所有滿足在條件列表中的記錄示例:select * from emp where empno in(7788,7369,7499);where BETWEEN . AND. -按范圍查找示例:select * from emp where sal between 1000

11、and 3000;where 字段 LIKE -主要用與字符類型的字段 示例1:select * from emp where ename like '_C%' -查詢姓名中第二個字母是'C'的人'-' 表示任意字符;'%' 表示多字符的序列;where 字段 IS NOT NULL -查找該字段是不是空的記錄匯總數(shù)據(jù)是用的函數(shù)SUM -求和示例:select deptno,sum(sal) as sumsal from emp GROUP BY deptno;AVG -求平均值MAX -求最大值MIN -求最小值COUNT -求

12、個數(shù)子查詢 SELECT <字段列表> from <table_name> where 字段 運算符(<SELECT 語句>);示例:select * from emp where sal=(select max(sal) from emp);運算符Any 示例:select * from emp where sal>ANY(select sal from emp where deptno=30) and deptno<>30;-找出比deptno=30的員工最低工資高的其他部門的員工ALL select * from emp where

13、sal>ALL(select sal from emp where deptno=30) and deptno<>30;-找出比deptno=30的員工最高工資高的其他部門的員工連接查詢 SELECT <字段列表> from <table1,table2> WHERE table1.字段(+)=table2.字段(+)示例select empno,ename,dname from emp,dept where emp.deptno=dept.deptno;查詢指定行數(shù)的數(shù)據(jù)SELECT <字段列表> from <table_name&

14、gt; WHERE ROWNUM<行數(shù);示例:select * from emp where rownum<=10;-查詢前10行記錄注意ROWNUM只能為1 因此不能寫 select * from emp where rownum between 20 and 30;要查第幾行的數(shù)據(jù)可以使用以下方法:select * from emp where rownum<=3 and empno not in (select empno from emp where rownum<=3);結(jié)果可以返回整個數(shù)據(jù)的3-6行;不過這種方法的性能不高;如果有別的好方法請告訴我。更新數(shù)據(jù)

15、UPDATE table_name set column1=new value,column2=new value,.WHERE <條件>示例update emp set sal=1000,empno=8888 where ename='SCOTT'更新數(shù)據(jù)DELETE FROM <table_name>WHERE <條件>示例delete from emp where empno='7788'DCL數(shù)據(jù)控制語言數(shù)據(jù)控制語言1.授權(quán)GRANT <權(quán)限列表> to <user_name>2.收回權(quán)限REVOKE <權(quán)限列表> from <user_name>Oracle 的權(quán)限列表connect

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論