【正文】
用select命令查詢V$parameter動態(tài)性能視圖用show命令查看全局?jǐn)?shù)據(jù)庫名、實(shí)例名用show命令查看是否啟動自動歸檔、標(biāo)準(zhǔn)數(shù)據(jù)塊大小、控制文件的文件名、存儲位置和狀態(tài)信息?(1).查看數(shù)據(jù)文件的文件名、存儲位置和狀態(tài)信息(2).查看控制文件的文件名、存儲位置和狀態(tài)信息0和服務(wù)器型文件都要找到),查看各類默認(rèn)位置并記錄下來(包括物理文件所在目錄,該數(shù)據(jù)庫相關(guān)的各個(gè)目錄等),登錄到mydb數(shù)據(jù)庫。sqlalter database open。:有幾種打開SQL*Plus的方法?分別是什么?(1)直接打開 sql plus 即窗口方式(2)cmd 命令行方式(3)WEB 頁面中 iSQL*Plus 方式 ,記錄命令 SQLshutdown immediate,再加載數(shù)據(jù)庫,打開數(shù)據(jù)庫。,提示:設(shè)置正確的服務(wù)器地址和端口號?!緦?shí)驗(yàn)結(jié)論】,記錄下和數(shù)據(jù)庫有關(guān)的服務(wù)名,將他們設(shè)為手動方式,啟動相關(guān)服務(wù)。*Plus,用SYS和SYSTEM用戶名和密碼登錄。,查看是否在服務(wù)中有LISTENER,是否能啟動。注:序列從1開始,每次增長2,最大值為9,循環(huán)兩次。create sequence myseq increment by 2 start with 10。n 創(chuàng)建序列指定每次增長的增量create sequence myseq increment by 2。序列的操作:nextval:取得序列的下一個(gè)內(nèi)容 currval:取得當(dāng)前序列的內(nèi)容n 創(chuàng)建表驗(yàn)證序列的操作create table testseq(next number,curr number)。si:kw?ns] create sequence 序列名稱。注:視圖的操作會影響到表的操作。u 視圖概念:一個(gè)視圖實(shí)質(zhì)是封裝了一條復(fù)雜的SQL語句n 創(chuàng)建視圖 語法:create view 視圖名稱 as 子查詢n 創(chuàng)建部門20員工的雇員信息create view empv20 as select * from emp where deptno=20。男39。)。n 非空約束(not null)create table person(pid varchar2(18)primary key, name varchar(30)not null, age number(3), sex varchar2(2)default39。constraint person_pid_pk primary key(pid)。streint] 約束;強(qiáng)制 create table person(pid varchar2(18), name varchar(30), age number(3), sex varchar2(2)default39。)。u 約束約束的分類主鍵約束:表示一個(gè)唯一的標(biāo)識,本身不能為空 唯一約束:列值不允許重復(fù)檢查約束:檢查一個(gè)列的內(nèi)容是否合法非空約束:不能為空值,如用戶不能為空(no null)外鍵約束:在兩張表中進(jìn)行約束的操作n 主鍵約束(primary key)主鍵約束一般在id上使用,而且本身已經(jīng)默認(rèn)了不能為空,主鍵約束可以在建表的時(shí)候指定 create table person(pid varchar2(18)primary key, name varchar(30), age number(3), sex varchar2(2)default39。n 截?cái)啾韙runcate table 表名。注:這是oracle特有的操作n 將myemp表改名為iemp SQL rename myemp to iemp。,則要求更改時(shí),該列的所有記錄值都為空。n 修改列的數(shù)據(jù)類型alter table 表名稱 modify(列的名稱 列的類型 default 默認(rèn)值)。u 刪除表 語法:drop table 表名。u 復(fù)制表create table 表名 as(子查詢)。clob:大對象,表示大文本數(shù)據(jù)類型,可存放4G。u Oralce的事務(wù)處理mit:提交事務(wù) rollback:回滾操作注:操作一旦執(zhí)行了mit操作,就再也不能回滾操作了。u 刪除記錄delete from 表名 where 條件n 刪除雇員編號為7896的雇員信息 delete from myemp where empno=7896。u 修改記錄update表名set要修改的字段=新值,要修改的字段=新值,...where條件n 將雇員號為7896的雇員的獎(jiǎng)金修改為100 update myemp set m=100 where empno=7896。u to_date:字符型轉(zhuǎn)換成日期型u 批量插入記錄 格式:insert into 表名select 字段列表 from 表名 where 條件注:insert表和select表列數(shù)等都一致 例如:create table test as select * from emp。即:insert into 表名 values(值1,值2,.......)。注:給定的值要和指定的字段數(shù)一致。142月200539。736939。清潔工39。張三39。u 七、ORACLE_表的更新操作u 創(chuàng)建表副本create table myemp as select * from emp。u select empno from emp where sal子查詢all的使用u all:比最大的值大select * from emp where salall(select min(sal)from emp group by deptno)。))。,39。子查詢any的使用u =any:與in操作符的效果一致查詢和smith或jones在同一部門,同一職位工作的員工select ename from emp where(deptno,job)=any(select deptno,job from emp where ename in(39。JONES39。SMITH39。六、ORACLE_子查詢在where子句中使用子查詢u 查詢工資比7654雇員工資高的全部雇員信息select * from emp where sal(select sal from emp where empno=7654)。分組查詢having字句的使用u 顯示出平均工資大于2000的部門編號和平均工資 select deptno,avg(sal)from emp group by deptno having avg(sal)2000。 分組查詢語法格式select 列名...,列函數(shù) from 表名...where 條件...group by 列名...order by 列名...u 查詢每個(gè)部門的人數(shù)select deptno,count(*)from emp group by deptno。SUM(SAL)+SUM(COMM)31225select sum(sal+nvl(m,0))from emp。列函數(shù)的使用對null的處理u 查詢所有員工的年收入select sum(sal+m)from emp。u left join:左外連接u right join:右外連接五、ORACLE_列函數(shù)和分組216。u 自然連接(nutural join):自動進(jìn)行關(guān)聯(lián)字段的匹配 select * from emp natural join dept。注:(+)在右邊表示左連接,會列出左表中出現(xiàn)但沒有在右表中出現(xiàn)的行。注:(+)在左邊,表示右連接,會列出所有右表中出現(xiàn)但是沒有在左表中出現(xiàn)的行。注:當(dāng)查詢的字段間的關(guān)系涉及到n個(gè)表時(shí),則n個(gè)表之間關(guān)聯(lián)。注:這里的e是emp的別名,d是dept的別名關(guān)聯(lián)查詢自連接u 查詢出每個(gè)雇員的姓名、工作、雇員的直接上級領(lǐng)導(dǎo)的姓名select , mname from emp e,emp m where =。注:NVL(m,0),當(dāng)m的值為null時(shí),用0替換ORACLE_多表查詢u 格式:select 列名1 別名1,......from 表名1,表名2,......where 條件 order by 列名u 查詢員工的編號,姓名,部門編號,部門名稱select empno,ename,dname from emp,dept where =。年收入=工資+獎(jiǎng)金n 查詢每個(gè)員工的年收入select empno,ename,(sal+m)*12 ine from emp。TO_DATE(39。yyyymmdd39。2009073139。12339。12339。)from dual。)+to_number(39。說明:$代表美元u 轉(zhuǎn)換成數(shù)字(to_number)select to_number(39。$99,99939。說明:9代表1位數(shù)字EMPNO ENAMETO_CHAR7369 SMITH8007499 ALLEN1,6007521 WARD1,250 注:把sal的值分成兩個(gè)部分,后三位為一個(gè)部分,前兩位為一個(gè)部分,用逗號隔開。99,99939。)from emp。u 使用fm去掉前導(dǎo)0 select empno,ename,to_char(hiredate,39。yyyymmdd39。)from emp。u 轉(zhuǎn)換成字符串(to_char)查詢雇員號,姓名,以及入職的年份select empno,ename,to_char(hiredate,39。)from dual。u 下一個(gè)給定的星期是那個(gè)日期(next_day)select next_day(sysdate,39。u 在指定日期上加入指定的月數(shù)之后的日期(ADD_MONTHS)select add_months(sysdate,4)from dual。u 日期函數(shù) 運(yùn)算規(guī)律:日期+數(shù)字=日期 日期數(shù)字=日期日期日期=數(shù)字(天數(shù))u 查詢當(dāng)前日期select sysdate from dual。TRUNC(,2)700 u 除空格(TRIM)SQL SELECT TRIM(55)FROM DUAL。TRUNC()789n 截?cái)嘈?shù)位(TRUNC):指定保留小數(shù)位 select trunc(,2)from dual。n 四舍五入(Round):對整數(shù)四舍五入 select round(,2)from dual。u 四舍五入(Round)select round()from dual。u 要求顯示所有雇員的姓名和姓名的后三個(gè)字符select ename,substr(ename,length(ename)2)from emp。結(jié)果:REPLACE(39。WEL39。WOR39。HELLO WORLD39。注:含義為截取ename字段從第一個(gè)字符開始,總共三個(gè)字符u 求長度(LENGTH)select length(ename)from emp。 from dual。||39。select 39。WORLD39。HELLO39。hello world39。)from dual。?p?] 上面的,上部的u 轉(zhuǎn)換為小寫字母select lower(39。注:dual是公共表。smith39。sendi?]上升的,降序排列(descend [di39。注:ASC升序,DESC降序,默認(rèn)ASC。u 對結(jié)果排序Oracle By n 查詢員工工資大于1500員工的信息,按工資排序 select * from emp where sal1500 order by sal。n 查詢工資中包含5的雇員信息select * from emp sal where like39。注:_匹配一個(gè)字符,%匹配0個(gè)多個(gè)字母(前綴或后綴的代表)n 查詢1982年入職的所有雇員的信息select * from emp where hiredate like39。u 限定查詢 like的使用n 查詢雇員的名字第二個(gè)字符是M的雇員信息 select * from emp where ename like39。select * from emp where empno in(7369,7499,7521)。smith39。SMITH39。SMITH39。3112月 198139。11月 198139。u 限定查詢 使用not對條件整體取反n 查詢工資不大于1500并且不能領(lǐng)取獎(jiǎng)金的雇員select empno,ename,sal,m from emp where sal1500 or m is not null)。u 限定查詢 or 的使用n 查詢工資大于1500和可以領(lǐng)取獎(jiǎng)金的雇員select empno,ename,sal,m from emp where sal1500 or m is not null。n 查詢誰沒有獎(jiǎng)金select empno,ename from emp where m is null。u 比較運(yùn)算符 大于: 小于: 等于:= 大于等于:= 小于等于:u 限定查詢 is null 和 is not null 的使用 n 查詢每月可以得到獎(jiǎng)金的雇員select empno,ename,m from emp where m is not null。distinct: 有區(qū)別的(去除重復(fù)行)u 查詢工資大于1500的雇員信息,列出編號,用戶名,工資 select empno,ename,sal from emp where sal1500。u 查詢所有職位 select job from emp。;(將學(xué)生200215的年齡改為22歲)select distinct job from emp;去除重復(fù)行(Data Control Language,DCL):mit