以下內容以scott使用者下oracle自帶例項orcl庫中四張表進行查詢,此部分為簡單查詢,作為練習筆記進行記錄
--1).查詢乙個使用者下所有的表
select * from tab;
--2).查詢一張表的結構(命令列):desc 表名稱
desc dept;
--簡單查詢語法結構:select [distinct] * | 列名稱 [別名],列名稱 [別名],... from 表名稱 [別名];
--3).查詢emp表中的全部記錄
select * from emp;
--4).查詢每個雇員的編號、姓名、職位、工資
select empno,ename,job,sal from emp;
--5).查詢所有的職位資訊,使用distinct消去重複
select distinct job from emp;
--6).查詢每個雇員的編號、姓名、職位、基本年薪(月薪*12),使用別名
select empno,ename,job,sal*12 income from emp;
--7).查詢每個雇員的編號、姓名、基本年薪(每年15薪,每月200元飯補、100元車補、100元話費,5個月的其他補貼200)
select empno,ename,(sal*15+(200+100+100)*12+200*5) income from emp;
--8).常量+連線,查詢顯示結構:雇員***的基本工資是***
select '雇員' || ename || '的基本工資是' || sal info from emp;
--限定查詢語法結構:select [distinct] * | 列名稱 [別名],列名稱 [別名],... from 表名稱 [別名] [where 過濾條件(s)];
--關係運算子
--9).查詢出所有基本工資高於2000的雇員資訊
select * from emp where sal > 2000;
--10).查詢smith的完整資訊
select * from emp where ename = 'smith';
--11.查詢工資為5000的員工資訊
select * from emp where sal = 5000;
--12.查詢不是銷售人員的編號、姓名、職位
select empno,ename,job from emp where job != 'salesman';
select empno,ename,job from emp where job <> 'salesman';
--邏輯運算子
--13.查詢出工資範圍在1500~3000之間的雇員資訊
select * from emp where sal >= 1500 and sal <= 3000;
--14.查詢工資大於2000或者職位是辦事員的雇員資訊
select * from emp where sal > 2000 or job = 'clerk';
--15.查詢工資小於2000的雇員資訊
select * from emp where sal < 2000;
select * from emp where not sal >= 2000;
--範圍查詢
--16.查詢出工資範圍在1500~2000之間的雇員資訊(包含1500,2000)
select * from emp where sal >= 1500 and sal <= 2000;
select * from emp where sal between 1500 and 2000;
--17.查詢所有在2023年僱傭的雇員資訊
select * from emp where hiredate between '01-1月 -1981' and '31-12月 -1981';
--空判斷 注意空和0
--18.查詢所有領取佣金的雇員資訊(佣金不為null)
select * from emp where not comm is null;
select * from emp where comm is not null;
--in操作符
--19.要求查詢雇員編號為7369、7566、7788、9999的雇員資訊
select * from emp where empno in (7369,7566,7788,9999);
--模糊查詢
--20.查詢姓名是以a開頭的雇員資訊
select * from emp where ename like 'a%';
--21.查詢姓名的第二字字母是a的雇員資訊
select * from emp where ename like '_a%'
--22.查詢姓名中包含字母是a的雇員資訊
select * from emp where ename like '%a%'
--查詢排序
--23.查詢所有雇員資訊,要求按照工資由高到低排序(降序)
select * from emp order by sal desc;
--24.查詢所有銷售人員的資訊,要求按照入職年限由早到晚排序(公升序)
select * from emp where job='salesman' order by hiredate asc;
--25.要求按照工資由高到低排序,若工資相同,則按入職時間由早到晚排序
select * from emp order by sal desc, hiredate asc;
--26.查詢每個雇員的編號,姓名,年薪,按照年薪公升序
select empno,ename,sal*12 income from emp order by income;
--基礎查詢練習
--1.查詢部門30中的所有員工資訊
select * from emp where deptno=30;
--2.列出所有辦事員(clerk)的編號、姓名和部門編號
select empno,ename,deptno from emp where job='clerk';
--3.找出佣金高於薪金60%的員工
select * from emp where comm > sal*0.6;
--4.找出部門10中所有經理(manager)和部門20中所有辦事員(clerk)的全部資訊
select * from emp where (deptno=10 and job='manager') or (deptno=20 and job='clerk');
--5.找出部門10中所有經理(manager),部門20中所有辦事員(clerk),既不是經理又不是辦事員但其薪金大於等於2000的雇員資訊
select *
from emp
where (deptno = 10 and job = 'manager')
or (deptno = 20 and job = 'clerk')
or (job not in ('manager', 'clerk') and sal >= 2000);
--6.找出收取佣金的員工的工作
select distinct job from emp where comm is not null;
--7.找出不收取佣金或者收取佣金小於100的員工
select * from emp where comm is null or comm<100;
--8.顯示姓名中不帶有『r』的員工資訊
select * from emp where ename not like '%r%';
--9.顯示姓名中任何位置包含字母『a'的員工資訊,顯示的結果按照基本工資由高到低排序,
-- 若工資相同,則按照僱傭年限由早到晚排序,若年限相同,則按職位排序
select * from emp where ename like '%a%' order by sal desc,hiredate,job;
學習筆記與練習 SQL入門(一)
練習1 4 資料庫是將大量資料儲存起來,通過計算機加工而成的可以進行高效訪問的資料集合。該資料集合稱為資料庫 database,db 用來管理資料庫的計算機系統稱為資料庫管理系統 database management system,dbms 我們學習的主要是關聯式資料庫管理即rdbms r指rat...
oracle入門sql語句
1 顯示當前連線使用者 sql show user 2 檢視系統擁有哪些使用者 sql select from all users 3 新建使用者並授權 sql create user a identified by a 預設建在system表空間下 sql grant connect,resour...
sql練習總結(一)
最近在學sql,遇到了這麼一道題 寫出一條sql 語句 取出表a中第 31到第 40記錄 sqlserver,以自動增長的 id作為主鍵 注意 id可能不是連續的。把所能想到的實現方法都做了一遍 1.用集合查詢 select top40 from t test except select top30...