日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle笔记整理2

發布時間:2023/12/3 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle笔记整理2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
--創建員工信息表 create table employee ( empno number(4) not null,--員工編號 ename varchar2(10), --員工姓名 job varchar2(9), --員工工種 mgr number(4), --上級經理編號 hiredate date, --受雇日期 sal number(7,2), --員工薪水 comm number(7,2), --福利 deptno number(2) --部門編號 );select * from employee; --插入數據 insert into employee(empno,ename,job,mgr,hiredate,sal,comm,deptno) values(1,'張一','程序員',1,'2016-02-05',3000,2000,1); insert into employee(empno,ename,job,mgr,hiredate,sal,comm,deptno) values(2,'張二','開發人員',3,'2017-06-05',5000,2000,2);insert into employee(empno,ename,job,mgr,hiredate,sal,comm,deptno) values(3,'張三','測試人員',1,'2014-11-05',8000,5000,2);insert into employee(empno,ename,job,mgr,hiredate,sal,comm,deptno) values(4,'張四','運維人員',2,'2017-02-02',10000,2300,1);insert into employee(empno,ename,job,mgr,hiredate,sal,comm,deptno) values(5,'張五','發布',3,'2016-02-05',6300,36000,3); --將scott里面的emp數據導入此表 insert into employee select * from scott.emp; commit; select * from employee; --創建部門表和上級經理表 create table bumen ( buno number(2),--部門編號 buname varchar2(50) --部門名稱 ); select * from bumen; --往部門表里面插入數據 insert into bumen(buno,buname) values(1,'開發部'); insert into bumen(buno,buname) values(2,'測試部'); insert into bumen(buno,buname) values(3,'設計部'); insert into bumen(buno,buname) values(4,'運維部'); insert into bumen(buno,buname) values(5,'管理部');insert into bumen(buno,buname) values(7902,'財務部'); insert into bumen(buno,buname) values(7968,'福利部'); insert into bumen(buno,buname) values(7698,'獎金部'); insert into bumen(buno,buname) values(7839,'娛樂部'); insert into bumen(buno,buname) values(7566,'搬磚部');insert into bumen(buno,buname) values(7788,'前臺部'); insert into bumen(buno,buname) values(7566,'看看部'); insert into bumen(buno,buname) values(7782,'2222部'); insert into bumen(buno,buname) values(7902,'1111部'); insert into bumen(buno,buname) values(7839,'物流部'); insert into bumen(buno,buname) values(7788,'廢物部');commit;select * from bumen;--創建上級經理表 create table jinli ( jno number(4),--經理編號 jname varchar2(50) --經理名稱 ); commit; select * from employee; --給經理表里面插入數據 insert into jinli(jno,jname)values(1,'穆雄雄'); insert into jinli(jno,jname)values(2,'成志龍'); insert into jinli(jno,jname)values(3,'杜永杰'); insert into jinli(jno,jname)values(4,'王帥帥'); insert into jinli(jno,jname)values(5,'張思淼');insert into jinli(jno,jname)values(7839,'李白'); insert into jinli(jno,jname)values(7499,'杜甫'); insert into jinli(jno,jname)values(7521,'王偉'); insert into jinli(jno,jname)values(7566,'王安石'); insert into jinli(jno,jname)values(7654,'馮鞏');insert into jinli(jno,jname)values(7698,'曾鞏'); insert into jinli(jno,jname)values(7782,'歐陽修'); insert into jinli(jno,jname)values(7788,'王杰'); insert into jinli(jno,jname)values(7844,'馬強'); insert into jinli(jno,jname)values(7876,'劉三單');insert into jinli(jno,jname)values(7876,'李安'); insert into jinli(jno,jname)values(7900,'曹春喜'); insert into jinli(jno,jname)values(7902,'付婷婷'); insert into jinli(jno,jname)values(7934,'孫中天'); insert into jinli(jno,jname)values(7369,'李昂');insert into jinli(jno,jname)values(7499,'金鐘管'); insert into jinli(jno,jname)values(7521,'張瑞前'); insert into jinli(jno,jname)values(7566,'五保前'); insert into jinli(jno,jname)values(7654,'張何婷'); insert into jinli(jno,jname)values(7369,'孫浩'); select * from jinli; delete from jinli where jno>5--刪除編號重復的,保留一個 delete from employee where rowid not in ( select max(rowid) from employee group by empno having (count(empno)>1) --查詢編號重復的 union select max(rowid) from employee group by empno having (count(empno)=1) --查詢編號不重復的 );--刪除編號大于5的員工信息 delete from employee where empno >5; select * from employee; --添加約束 select * from bumen;--先設置主鍵(員工表) alter table employee add constraint pk_empno primary key (empno); --給部門表添加主鍵 alter table bumen add constraint pk_buno primary key (buno); --給經理表添加主鍵 alter table jinli add constraint pk_jno primary key (jno);--員工編號作為主鍵,部門編號作為外鍵與部門表相關聯 alter table employee add constraint fk_deptno foreign key(deptno) references bumen(buno);--給員工信息表里面添加兩列(電話,地址) alter table employee add(empTel_no varchar2(12), empAdress varchar2(20) );--刪除電話和地址列 alter table employee drop(empTel_no,empAdress);--按照薪水從高到低顯示數據 select * from employee order by sal desc;--上級3(分頁查詢) --查詢員工薪水從高到低的排序為3-5的記錄SELECT * FROM (SELECT e.*,rownum rn FROM (SELECT * FROM employee ORDER BY sal DESC) e) WHERE rn>=3 AND rn<=5;--網上找的分頁查詢 --分頁查詢1 select * from ( select a.*,rownum rn from ( select * from scott.emp ) a ) where rn between 3 and 5;--分頁查詢2 select * from ( select a.*,rownum rn from ( select * from scott.emp )a where rownum <=5 ) where rn >=3;--自己寫的分頁查詢 select * from (select a.*,rownum rn from (select * from employee order by sal desc) a) where rn>=2 and rn<=5--使用分析函數對員工表進行查詢 --DENSE_RANK必須大寫 select * from ( select employee.*,DENSE_RANK( ) over (partition by deptno order by sal desc) "DENSE_RANK" from employee )e where DENSE_RANK=2;--上機5 --round函數(四舍五入) /*如何使用 Oracle Round 函數 (四舍五入) 描述 : 傳回一個數值,該數值是按照指定的小數位元數進行四舍五入運算的結果。SELECT ROUND(number, [ decimal_places ] ) FROM DUAL 參數: number : 欲處理之數值 decimal_places : 四舍五入 , 小數取幾位 ( 預設為 0 ) Sample : select round(123.456, 0) from dual;????????? 回傳 123 select round(123.456, 1) from dual;????????? 回傳 123.5 select round(123.456, 2) from dual;????????? 回傳 123.46 select round(123.456, 3) from dual;????????? 回傳 123.456 select round(-123.456, 2) from dual;??????? 回傳 -123.46 */ ---日期四舍五入 select ename "姓名",to_char(round (hiredate,'yyyy'),'YYYY')||'年度' 入職年度 from employee;--列出至少有一個雇員的所有部門 --distinct(查找重復的列) select distinct deptno from employee; --列出薪金比張三多的員工 select * from employee where sal >(select sal from employee where ename='張三'); --列出所有職位為程序員的姓名及其部門的名稱 select ename,job,bumen.buname from employee,bumen where employee.deptno=bumen.buno and job='程序員'; --列出各種工作類別的最低薪金,顯示最低薪金大于15000的記錄 select job, min(sal) from employee group by job having min(sal)>1500; --找出個月最后一天受雇的所有雇員 select * from employee where hiredate=last_day(hiredate);/* oracle的日期函數last_day 意思是得到每月的最后一天,用這個函數,我們可以得到各種不同的日期. 1:得到當前月第一天與最后一天 */ select to_char(trunc(sysdate,'MONTH'),'yyyymmdd')firstday , to_char(last_day(trunc(sysdate,'MONTH')),'yyyymmdd') lastdayfrom dual;--2:得到上月第一天與上月最后一天 SELECT to_char( last_day(add_months(SYSDATE, -2)) + 1 ,'yyyymmdd') firstday ,to_char(last_day(add_months(SYSDATE, -1)),'yyyymmdd') lastday FROM dual; --3:得到上上個月第一天與上上個月最后一天 SELECT to_char( last_day(add_months(SYSDATE, -3)) + 1 ,'yyyymmdd') firstday ,to_char(last_day(add_months(SYSDATE, -2)),'yyyymmdd')lastday FROM dual; --4:得到下個月第一天與下個月最后一天 SELECT to_char( last_day(add_months(SYSDATE, 0)) + 1 ,'yyyymmdd') firstday ,to_char(last_day(add_months(SYSDATE, 1)),'yyyymmdd')lastday FROM dual;/* ====================================================== 簡答題p38 ====================================================== */ --1.創建訂單表 create table orders ( order_id number(12) primary key,?????????? --訂單編號 order_date date not null,????????????????? --訂貨日期 order_mode varchar2(8) not null,?????????? --訂貨模式 customer_id number(6) not null,??????????? --客戶編號 order_status number(2),??????????????????? --訂單狀態 order_total number(8,2),?????????????????? --總定價 sales_rep_id number(6),??????????????????? --銷售代表id promotion_id number(6)???????????????????? --推廣員id )--創建客戶表 create table customers ( customer_id number(6) not null,??????????? --客戶編號 cust_fiest_name varchar2(20) not null,???? --名 cust_last_name varchar2(20) not null,????? --姓氏 nls_languages varchar2(3),???????????????? --語言 nls_territory varchar2(30),??????????????? --地域 credit_limit number(9,2),????????????????? --信貸限額 cust_email varchar2(30),?????????????????? --郵箱 account_mgr_id number(6),????????????????? --客戶經理 marital_status varchar2(30),?????????????? --婚煙狀態 gender char(1)???????????????????????????? --性別 )--修改字段 alter table customers modify (gender char(2)); alter table customers modify (nls_languages varchar2(10));select * from customers insert into customers (customer_id,cust_fiest_name,cust_last_name,nls_languages,nls_territory,credit_limit,cust_email,account_mgr_id,marital_status,gender)values('1','虎虎','王','漢語','山西呂梁','3000','wanghuhu@163.com',1,'未婚','男');insert into customers (customer_id,cust_fiest_name,cust_last_name,nls_languages,nls_territory,credit_limit,cust_email,account_mgr_id,marital_status,gender)values('2','雄雄','穆','英語','山西呂梁','8000','muxiongxiong@163.com',2,'未婚','男'); insert into customers (customer_id,cust_fiest_name,cust_last_name,nls_languages,nls_territory,credit_limit,cust_email,account_mgr_id,marital_status,gender)values('3','永杰','杜','俄語','中國北京','1568','duyongjie@163.com',1,'未婚','男'); insert into customers (customer_id,cust_fiest_name,cust_last_name,nls_languages,nls_territory,credit_limit,cust_email,account_mgr_id,marital_status,gender)values('4','嬌嬌','宋','法語','山西太原','6000','songjiaojiao@163.com',3,'已婚','女'); insert into customers (customer_id,cust_fiest_name,cust_last_name,nls_languages,nls_territory,credit_limit,cust_email,account_mgr_id,marital_status,gender)values('5','思淼','張','漢語','山東濟南','6320','zahngsimiao@163.com',3,'未婚','男'); insert into customers (customer_id,cust_fiest_name,cust_last_name,nls_languages,nls_territory,credit_limit,cust_email,account_mgr_id,marital_status,gender)values('6','春熙','曹','法語','山東濟南','3600','caochunxi@163.com',2,'已婚','男'); insert into customers (customer_id,cust_fiest_name,cust_last_name,nls_languages,nls_territory,credit_limit,cust_email,account_mgr_id,marital_status,gender)values('6','兒子','王','法語','AMERICA','56000','america@163.com',3,'已婚','男');insert into customers (customer_id,cust_fiest_name,cust_last_name,nls_languages,nls_territory,credit_limit,cust_email,account_mgr_id,marital_status,gender)values('8','孫子','Fssdfs','韓語','中國北京','6320','Fssdfs@163.com',4,'未婚','女'); select * from customers--往訂單里面添加數據 select * from orders; insert into orders(order_id,order_date,order_mode,customer_id,order_status,order_total,sales_rep_id,promotion_id) values(1,'2017-02-09','網上下單',2,1,323.23,1,2); insert into orders(order_id,order_date,order_mode,customer_id,order_status,order_total,sales_rep_id,promotion_id) values(2,'2016-11-09','上門購買',1,2,56.00,2,1); insert into orders(order_id,order_date,order_mode,customer_id,order_status,order_total,sales_rep_id,promotion_id) values(3,'2017-12-20','熟人推薦',3,1,6000,1,2); insert into orders(order_id,order_date,order_mode,customer_id,order_status,order_total,sales_rep_id,promotion_id) values(4,'2015-12-02','網上下單',5,2,365,2,2); insert into orders(order_id,order_date,order_mode,customer_id,order_status,order_total,sales_rep_id,promotion_id) values(5,'2017-12-09','上門購買',3,1,3210,1,2); insert into orders(order_id,order_date,order_mode,customer_id,order_status,order_total,sales_rep_id,promotion_id) values(6,'2014-11-11','網上下單',3,1,630,2,2); insert into orders(order_id,order_date,order_mode,customer_id,order_status,order_total,sales_rep_id,promotion_id) values(7,'2017-01-01','上門購買',2,1,6300,1,2); commit;select * from orders;--1.查詢客戶表中所有不重復的分地域(distinct) select distinct nls_territory from customers;--2.在訂單表中找出總定價在1000-6000之間的訂單號 select order_id 訂單編號,b.cust_fiest_name 顧客姓氏,c.ename 經理名字 from orders a join customers b on a.customer_id=b.customer_id join employee c on b.account_mgr_id=c.empnowhere order_id in ( select order_id from orders where order_total>=1000 and order_total<=6000 );--3.在顧客表(Customers)中找出所在地域為AMERICA的客戶經理名稱(Employee表的ename列)和薪水(employee表的sal列)。 select c.ename,c.sal from customers a join employee c on a.account_mgr_id=c.empno where nls_territory='AMERICA'--4.在顧客表(Customers)中找出所在地域為AMERICA、山東濟南、山西呂梁和中國北京的客戶編號及語言。 select customer_id,nls_languages from Customers where nls_territory='AMERICA' or? nls_territory='山東濟南' or nls_territory='中國北京';--5.在顧客表(Customers)中找出姓氏首字母為”F”的客戶編號和郵箱。 select customer_id 客戶編號,cust_email 郵箱 from customers where cust_last_name like 'F%';--6.查出所有客戶姓名和所下的訂單編號 select cust_last_name,cust_fiest_name,b.order_id from customers a join orders b on a.customer_id =b.customer_id where a.customer_id in ( select customer_id from orders );/* 2. 根據員工表(Employee表)編寫一個語句,只有當最低工資少于 5000 而且最高工資超過7000時,才顯示部門 ID 以及該部門支付的最低工資和最高工資。 */select deptno 部門編號,max(sal) 最高工資,min(sal) 最低工資 from employee group by deptno having min(sal)<5000 and max(sal)>7000;/* 3. 根據員工表(Employee表)編寫一個語句,顯示各部門的每個工作類別中支付的最高工資 */ select deptno,job,max(sal) from employee group by deptno,job order by deptno,job;select to_char(sysdate,'YYYY"年"fmMM"月"fmDD"日" HH24:MI:SS') from dual; select to_char(sysdate,'YYYY"年"MM"月"DD"日" HH24:MI:SS') from dual; select * from dual; select SYS_CONTEXT('USERENV','TERMINAL') from dual;--獲得主機名 select TO_DATE ('2013-1-1','yyyy-mm-dd') from dual;--將字符串轉換成日期類型 select to_date('21210213','yyyy-mm-dd') from dual; --將字符串轉換成日期類型--刪除重復的記錄,保留一條 select max(rowid) from student group by sage,sname having (count(sage||sname)>1); union select max(rowid) from student group by sname,sage having (count(sage||sname)=1);/* 創建自增長 */ --新建一個表 create table grade ( id number(2) not null primary key, name varchar2(12) )--創建一個序列 create sequence grade_add start with 1?? --從1開始 increment by 1? --每次加1 nocycle --一直累加--創建一個觸發器執行 create or replace trigger grade_c before insert on grade for each row when (new.id is null) begin select grade_add.nextval into:new.id from dual; end;insert into grade(name) values('12班'); insert into grade (name) values('13班'); insert into grade (name) values('14班'); insert into grade(name) values('15班'); insert into grade (name) values('16班'); insert into grade (name) values('17班');select * from grade;



?????? nice,有的人可能之前沒學過數據庫,比如說my sql ,sql server 等等,直接上來就是oracle,所以,推薦一部視頻,即使你沒有學過sql server什么的,或者學過沒深入理解的,那么,請點擊這里,?密碼: 3ydr,一共46節課,足足夠你學會oracle了,拿走不謝!!!

總結

以上是生活随笔為你收集整理的oracle笔记整理2的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。