首頁 資料庫 mysql教程 Oracle常用语练习

Oracle常用语练习

Jun 07, 2016 pm 04:59 PM
資料庫

首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba 然后,解除对scott用户的锁 alter user scot

首先,以超级管理员的身份登录Oracle  
    sqlplus sys/bjsxt as sysdba  
 
然后,解除对scott用户的锁  
    alter user scott account unlock;  
那么这个用户名就能使用了。  
(默认全局数据库名orcl)  
 
1、select ename, sal * 12 from emp; //计算年薪  
2、select 2*3 from dual;  //计算一个比较纯的数据用dual表  
3、select sysdate from dual;  //查看当前的系统时间  
4、select ename, sal*12 anuual_sal from emp; //给搜索字段更改名称(双引号 keepFormat 别名有特殊字符,要加双引号)。  
5、任何含有空值的数学表达式,最后的计算结果都是空值。  
6、select ename||sal from emp;  //(将sal的查询结果转化为字符串,与ename连接到一起,,相当于Java中的字符串连接)  
7、select ename||'afasjkj' from emp;   //字符串的连接  
8、select distinct deptno from emp;   //消除deptno字段重复的值  
9、select distinct deptno , job from emp; //将与这两个字段都重复的值去掉  
10、select * from emp where deptno=10;   //(条件过滤查询)  
11、select * from emp where empno > 10;  //大于 过滤判断  
12、select * from emp where empno 10  //不等于  过滤判断  
13、select * from emp where ename > 'cba';  //字符串比较,实际上比较的是每个字符的AscII值,与在Java中字符串的比较是一样的  
14、select ename, sal from emp where sal between 800 and 1500;  //(between and过滤,包含800 1500)  
15、select ename, sal, comm from emp where comm is null;  //(选择comm字段为null的数据)  
16、select ename, sal, comm from emp where comm is not null;  //(选择comm字段不为null的数据)  
17、select ename, sal, comm from emp where sal in (800, 1500,2000);  //(in 表范围)  
18、select ename, sal, hiredate from emp where hiredate > '02-2月-1981'; //(只能按照规定的格式写)  
19、select ename, sal from emp where deptno =10 or sal >1000;  
20、select ename, sal from emp where deptno =10 and sal >1000;  
21、select ename, sal, comm from emp where sal not in (800, 1500,2000);  //(可以对in指定的条件进行取反)  
22、select ename from emp where ename like '%ALL%';   //(模糊查询)  
23、select ename from emp where ename like '_A%';    //(取第二个字母是A的所有字段)  
24、select ename from emp where ename like '%/%%';   //(用转义字符/查询字段中本身就带%字段的)  
25、select ename from emp where ename like '%$%%' escape '$';   //(用转义字符/查询字段中本身就带%字段的)  
26、select * from dept order by deptno desc; (使用order by  desc字段 对数据进行降序排列 默认为升序asc);  
27、select * from dept where deptno 10 order by deptno asc;   //(我们可以将过滤以后的数据再进行排序)    
28、select ename, sal, deptno from emp order by deptno asc, ename desc;   //(按照多个字段排序 首先按照deptno升序排列,当detpno相同时,内部再按照ename的降序排列)  
29、select lower(ename) from emp;  //(函数lower() 将ename搜索出来后全部转化为小写);  
30、select ename from emp where lower(ename) like '_a%';  //(首先将所搜索字段转化为小写,然后判断第二个字母是不是a)  
31、select substr(ename, 2, 3) from emp;    //(使用函数substr() 将搜素出来的ename字段从第二个字母开始截,一共截3个字符)  
32、select chr(65) from dual;  //(函数chr() 将数字转化为AscII中相对应的字符)   
33、select ascii('A') from dual;  //(函数ascii()与32中的chr()函数是相反的 将相应的字符转化为相应的Ascii编码)                                                                                                                                                                                                                                                                                                                                             )  
34、select round(23.232) from dual;  //(函数round() 进行四舍五入操作)  
35、select round(23.232, 2) from dual;  //(四舍五入后保留的小数位数 0 个位 -1 十位)  
36、select to_char(sal, '$99,999.9999')from emp;  //(加$符号加入千位分隔符,保留四位小数,没有的补零)  
37、select to_char(sal, 'L99,999.9999')from emp;  //(L 将货币转化为本地币种此处将显示¥人民币)  
38、select to_char(sal, 'L00,000.0000')from emp;  //(补零位数不一样,可到数据库执行查看)  
39、select to_char(hiredate, 'yyyy-MM-DD HH:MI:SS') from emp;  //(改变日期默认的显示格式)  
40、select to_char(sysdate, 'yyyy-MM-DD HH:MI:SS') from dual;  //(用12小时制显示当前的系统时间)  
41、select to_char(sysdate, 'yyyy-MM-DD HH24:MI:SS') from dual;  //(用24小时制显示当前的系统时间)  
42、select ename, hiredate from emp where hiredate > to_date('1981-2-20 12:24:45','YYYY-MM-DD HH24:MI:SS');   //(函数to-date 查询公司在所给时间以后入职的人员)  
43、select sal from emp where sal > to_number('$1,250.00', '$9,999.99');   //(函数to_number()求出这种薪水里带有特殊符号的)  
44、select ename, sal*12 +  nvl(comm,0) from emp;   //(函数nvl() 求出员工的"年薪 + 提成(或奖金)问题")  
45、select max(sal) from emp;  // (函数max() 求出emp表中sal字段的最大值)  
46、select min(sal) from emp;  // (函数max() 求出emp表中sal字段的最小值)  
47、select avg(sal) from emp;  //(avg()求平均薪水);  
48、select to_char(avg(sal), '999999.99') from emp;   //(将求出来的平均薪水只保留2位小数)  
49、select round(avg(sal), 2) from emp;  //(将平均薪水四舍五入到小数点后2位)  
50、select sum(sal) from emp;  //(求出每个月要支付的总薪水)  
 
/////////////////////////组函数(共5个):将多个条件组合到一起最后只产生一个数据//////min() max() avg() sum() count()/////////////////////////////  
51、select count(*) from emp;  //求出表中一共有多少条记录  
52、select count(*) from emp where deptno=10;  //再要求一共有多少条记录的时候,还可以在后面跟上限定条件  
53、select count(distinct deptno) from emp;   //统计部门编号前提是去掉重复的值  
////////////////////////聚组函数group by() //////////////////////////////////////  
54、select deptno, avg(sal) from emp group by deptno;  //按照deptno分组,查看每个部门的平均工资  
55、select max(sal) from emp group by deptno, job; //分组的时候,还可以按照多个字段进行分组,两个字段不相同的为一组  
56、select ename from emp where sal = (select max(sal) from emp); //求出  
57、select deptno, max(sal) from emp group by deptno; //搜素这个部门中薪水最高的的值  
//////////////////////////////////////////////////having函数对于group by函数的过滤 不能用where//////////////////////////////////////  
58、select deptno, avg(sal) from emp group by deptno having avg(sal) >2000; (order by )//求出每个部门的平均值,并且要 > 2000  
59、select avg(sal) from emp where sal >1200 group by deptno having avg(sal) >1500 order by avg(sal) desc;//求出sal>1200的平均值按照deptno分组,平均值要>1500最后按照sal的倒序排列  
60、select ename,sal from emp where sal > (select avg(sal) from emp);  //求那些人的薪水是在平均薪水之上的。  
61、select ename, sal from emp join (select max(sal) max_sal ,deptno from emp group by deptno) t on (emp.sal = t.max_sal and emp.deptno=t.deptno);  //查询每个部门中工资最高的那个人  
///////////////////////////////等值连接//////////////////////////////////////  
62、select e1.ename, e2.ename from emp e1, emp e2 where e1.mgr = e2.empno;  //自连接,把一张表当成两张表来用  
63、select ename, dname from emp, dept;  //92年语法 两张表的连接 笛卡尔积。  
64、select ename, dname from emp cross join dept; //99年语法 两张表的连接用cross join  
65、select ename, dname from emp, dept where emp.deptno = dept.deptno; // 92年语法 表连接 + 条件连接  
66、select ename, dname from emp join dept on(emp.deptno = dept.deptno); // 新语法  
67、select ename,dname from emp join dept using(deptno); //与66题的写法是一样的,但是不推荐使用using : 假设条件太多  
///////////////////////////////////////非等值连接///////////////////////////////////////////  
68、select ename,grade from emp e join salgrade s on(e.sal between s.losal and s.hisal); //两张表的连接 此种写法比用where更清晰  
69、select ename, dname, grade from emp e  
    join dept d on(e.deptno = d.deptno)  
    join salgrade s on (e.sal between s.losal and s.hisal)  
    where ename not like '_A%';  //三张表的连接  
70、select e1.ename, e2.ename from emp e1 join emp e2 on(e1.mgr = e2.empno); //自连接第二种写法,同62  
71、select e1.ename, e2.ename from emp e1 left join emp e2 on(e1.mgr = e2.empno); //左外连接 把左边没有满足条件的数据也取出来  
72、select ename, dname from emp e right join dept d on(e.deptno = d.deptno); //右外连接  
73、select deptno, avg_sal, grade from (select deptno, avg(sal) avg_sal from emp group by deptno) t join salgrade s  on    (t.avg_sal between s.losal and s.hisal);//求每个部门平均薪水的等级  
74、select ename from emp where empno in (select mgr from emp); // 在表中搜索那些人是经理  
75、select sal from emp where sal not in(select distinct e1.sal from emp e1 join emp e2 on(e1.sal 76、select deptno, max_sal from  
    (select avg(sal) max_sal,deptno from emp group by deptno)  
        where max_sal =  
        (select max(max_sal) from  
         (select avg(sal) max_sal,deptno from emp group by deptno)  
    );//求平均薪水最高的部门名称和编号。  
77、select t1.deptno, grade, avg_sal from  
      (select deptno, grade, avg_sal from  
    (select deptno, avg(sal) avg_sal from emp group by deptno) t  
        join salgrade s on(t.avg_sal between s.losal and s.hisal)  
      ) t1  
    join dept on (t1.deptno = dept.deptno)  
    where t1.grade =   
      (  
        select min(grade) from  
          (select deptno, grade, avg_sal from  
    (select deptno, avg(sal) avg_sal from emp group by deptno) t  
    join salgrade s on(t.avg_sal between s.losal and s.hisal)  
     )  
   )//求平均薪水等级最低的部门的名称 哈哈 确实比较麻烦  
78、create view v$_dept_avg_sal_info as  
    select deptno, grade, avg_sal from  
       (select deptno, avg(sal) avg_sal from emp group by deptno) t  
    join salgrade s on(t.avg_sal between s.losal and s.hisal);  
    //视图的创建,一般以v$开头,但不是固定的   

linux

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1249
24
iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 Jul 18, 2024 am 05:48 AM

蘋果公司最新發布的iOS18、iPadOS18以及macOSSequoia系統為Photos應用程式增添了一項重要功能,旨在幫助用戶輕鬆恢復因各種原因遺失或損壞的照片和影片。這項新功能在Photos應用的"工具"部分引入了一個名為"已恢復"的相冊,當用戶設備中存在未納入其照片庫的圖片或影片時,該相冊將自動顯示。 "已恢復"相簿的出現為因資料庫損壞、相機應用未正確保存至照片庫或第三方應用管理照片庫時照片和視頻丟失提供了解決方案。使用者只需簡單幾步

Hibernate 如何實作多型映射? Hibernate 如何實作多型映射? Apr 17, 2024 pm 12:09 PM

Hibernate多態映射可映射繼承類別到資料庫,提供以下映射類型:joined-subclass:為子類別建立單獨表,包含父類別所有欄位。 table-per-class:為子類別建立單獨資料表,僅包含子類別特有列。 union-subclass:類似joined-subclass,但父類別表聯合所有子類別列。

如何在PHP中處理資料庫連線錯誤 如何在PHP中處理資料庫連線錯誤 Jun 05, 2024 pm 02:16 PM

PHP處理資料庫連線報錯,可以使用下列步驟:使用mysqli_connect_errno()取得錯誤代碼。使用mysqli_connect_error()取得錯誤訊息。透過擷取並記錄這些錯誤訊息,可以輕鬆識別並解決資料庫連接問題,確保應用程式的順暢運作。

在PHP中使用MySQLi建立資料庫連線的詳盡教學 在PHP中使用MySQLi建立資料庫連線的詳盡教學 Jun 04, 2024 pm 01:42 PM

如何在PHP中使用MySQLi建立資料庫連線:包含MySQLi擴充(require_once)建立連線函數(functionconnect_to_db)呼叫連線函數($conn=connect_to_db())執行查詢($result=$conn->query())關閉連線( $conn->close())

如何在 Golang 中使用資料庫回呼函數? 如何在 Golang 中使用資料庫回呼函數? Jun 03, 2024 pm 02:20 PM

在Golang中使用資料庫回呼函數可以實現:在指定資料庫操作完成後執行自訂程式碼。透過單獨的函數新增自訂行為,無需編寫額外程式碼。回調函數可用於插入、更新、刪除和查詢操作。必須使用sql.Exec、sql.QueryRow或sql.Query函數才能使用回呼函數。

如何在 Golang 中將 JSON 資料保存到資料庫中? 如何在 Golang 中將 JSON 資料保存到資料庫中? Jun 06, 2024 am 11:24 AM

可以透過使用gjson函式庫或json.Unmarshal函數將JSON資料儲存到MySQL資料庫中。 gjson函式庫提供了方便的方法來解析JSON字段,而json.Unmarshal函數需要一個目標類型指標來解組JSON資料。這兩種方法都需要準備SQL語句和執行插入操作來將資料持久化到資料庫中。

PHP與不同資料庫的連接:MySQL、PostgreSQL、Oracle和更多 PHP與不同資料庫的連接:MySQL、PostgreSQL、Oracle和更多 Jun 01, 2024 pm 03:02 PM

PHP連接資料庫指南:MySQL:安裝MySQLi擴展,建立連線(servername、username、password、dbname)。 PostgreSQL:安裝PgSQL擴展,建立連線(host、dbname、user、password)。 Oracle:安裝OracleOCI8擴展,建立連線(servername、username、password)。實戰案例:取得MySQL資料、PostgreSQL查詢、OracleOCI8更新記錄。

如何使用C++處理資料庫連線和操作? 如何使用C++處理資料庫連線和操作? Jun 01, 2024 pm 07:24 PM

在C++中使用DataAccessObjects(DAO)函式庫連接和操作資料庫,包括建立資料庫連線、執行SQL查詢、插入新記錄和更新現有記錄。具體步驟為:1.包含必要的函式庫語句;2.開啟資料庫檔案;3.建立Recordset物件執行SQL查詢或操作資料;4.遍歷結果或依照特定需求更新記錄。

See all articles