Oracle練習詳解

来源:https://www.cnblogs.com/zhouchengzhi/archive/2018/04/06/8727915.html
-Advertisement-
Play Games

--1.查詢emp表,顯示薪水大於2000,且工作類別是MANAGER的雇員信息 select * from emp where sal > 2000and job = 'MANAGER'; --2.查詢emp表,顯示年薪大於30000,工作類別不是MANAGER的雇員信息 select * fro ...


--1.查詢emp表,顯示薪水大於2000,且工作類別是MANAGER的雇員信息

select * from emp
where sal > 2000
and job = 'MANAGER';


--2.查詢emp表,顯示年薪大於30000,工作類別不是MANAGER的雇員信息

select * from emp
where (sal+nvl(comm , 0 ))*12 > 30000
and job != 'MANAGER';


--3.查詢emp表, 顯示薪水在1500到3000之間,工作類別以“M”開頭的雇員信息

select * from emp
where sal between 1500 and 3000
and job like 'M%';

 

--4.查詢emp表,顯示佣金為空並且部門號為20或30的雇員信息

select * from emp
where comm is null
and deptno in ( 20 , 30 );

 

--5.查詢emp表,顯示佣金不為空或者部門號為20的雇員信息,要求按照薪水降序排列

select * from emp
where comm is not null
or deptno = 20
order by sal desc ;

 

 

--6.查詢emp表,顯示年薪大於30000工作類別不是MANAGER,且部門號不是10或40的雇員信息,要求按照雇員姓名進行排列

select * from emp
where (sal+nvl(comm , 0 ))*12 > 30000
and job != 'MANAGER'
and deptno
not in ( 10 , 40 )
order by ename ;

 

--7.查詢EMP、DEPT表,輸出的列包含員工姓名、工資、部門編號、部門名稱、部門地址.
select e.ename , e.sal , e.deptno , d.dname , d.loc
from emp e , dept d
where e.deptno = d.deptno ;

 

--8.使用自連接查詢EMP表,輸出的列包含員工姓名、主管姓名.
select e.ename employeename,m.ename managername
from emp e,emp m
where e.mgr = m.empno;

 

--9.在上一題的基礎上,思考下為什麼輸出結果沒有KING的信息? 如果要輸出KING的信息,如何修改?
select e.ename employeename,m.ename managername
from emp e,emp m
where e.mgr = m.empno(+); 

 

--10.使用左連接查詢員工部門,包括沒有員工的部門信息,輸出列:部門編號、部門名稱、位置。 --(左表為dept表,emp為右表)
select e.deptno , d.dname , d.loc
from dept d left join emp e
on e.deptno = d.deptno ;


--11.查詢EMP表,輸出每個部門的平均工資,並按部門編號降序排列.
select deptno , avg(sal)
from emp
group by deptno
order by deptno desc ;

 

--12.查詢EMP表,輸出每個職位的平均工資,按平均工資升序排列.
select job , avg(sal)
from emp
group by job
order by avg(sal) ;

 

--13.查詢EMP表,輸出每個部門的各個職位的平均工資,並按部門編號升序、平均工資降序排序。
select deptno , job , avg(sal)
from emp
group by deptno , job
order by deptno ,avg(sal) desc ;

 

--14.使用子查詢,找出哪個部門下沒有員工
select deptno
from dept
where deptno != all
(select deptno
from emp );


--15.使用子查詢,找出那些工資低於所有部門的平均工資的員工
select ename , sal
from emp
where sal < all
(select avg(sal) de_sal
from emp
group by deptno) ;

 

--16.使用子查詢,找出那些工資低於任意部門的平均工資的員工,比較一下與上一題輸出的結果是否相同?
select ename , sal
from emp
where sal < any
(select avg(sal) de_sal
from emp
group by deptno) ;

 

--17.在EMP表中,增加一名員工,員工信息參照現有員工構造.
insert into emp
values (1111 , 'aa' , upper('salesman') , 7698 , sysdate , 8000 , 1000 , 40);

 

 

--18.員工SMITH部門調動到SALES部門,請編寫SQL語句更新員工信息.
update emp
set deptno = '30'
where ename = 'SMITH';


--19.員工JAMES已經離職,請編寫SQL語句更新資料庫.
delete from emp
where ename = 'JAMES';

 

--20.用戶執行delete from emp;語句刪除了EMP表的記錄,但沒有提交,請問有辦法恢復EMP原來的數據嗎?
rollback

 

--21.得到平均工資大於2000的工作職種

select job , avg(sal)
from emp
group by job
having avg(sal)>2000;

 

--22.分部門得到工資大於2000的所有員工的平均工資,並且平均工資還要大於2500

方法一:

create or replace view emp_sal
as select ename , sal ,deptno
from emp
where sal>2000;
select deptno,avg(sal) dept_sal
from emp_sal
group by deptno
having avg(sal)>2500;

方法二:

select deptno , avg(sal) deptno
from emp
where sal >2000
group by deptno
having avg(sal)>2500;


--23.得到每個月工資總數最少的那個部門的部門編號,部門名稱,部門位置 
select *
from
(
select d.deptno , d.dname , d.loc ,sum(sal)
from dept d , emp e
where e.deptno = d.deptno
group by d.deptno , d.dname , d.loc
order by sum(sal)
)
where rownum = 1 ;

 

--24.分部門得到平均工資等級為2級(等級表)的部門編號 

select * from salgrade;

select deptno , avg(sal) dsal
from emp
group by deptno
having avg(sal) between 1201 and 1400;

 

--25.查找出部門10和部門20中,工資最高第3名到工資第5名的員工的員工名字,部門名字,部門位置
select *
from
(select ename , dname , loc ,sal , rownum rn
from(
select e.ename , d.dname , d.loc ,e.sal
from emp e , dept d
where e.deptno!=(30) and e.deptno = d.deptno
order by sal desc))
where rn between 3 and 5


--26.查找出收入(工資加上獎金),下級比自己上級還高的員工編號,員工名字,員工收入*/

select empno , ename , shouru
from
(
select a.ename , a.empno , a.sal+nvl(a.comm,0) shouru , b.sal+nvl(b.comm,0) shouru_2
from emp a , emp b
where b.empno = a.mgr
)
where shouru >shouru_2

 

--27.查找出職位和'MARTIN' 或者'SMITH'一樣的員工的平均工資 */

select avg(sal)
from emp
where job = (select job from emp where ename = upper('smith'))
or
job = (select job from emp where ename = upper('martin'));

 

--28.查找出不屬於任何部門的員工

select ename
from emp
where deptno is null;

 

--29.按部門統計員工數,查出員工數最多的部門的第二名到第五名(列出部門名字,部門位置)

select dname ,loc
from (select *
from (select rownum rn , deptno
from(select deptno , count(*)
from emp
group by deptno
order by count(*) desc))
where rn between 2 and 5) a ,dept b
where a.deptno = b.deptno

 

--30.查詢出king所在部門的部門號\部門名稱\部門人數

select denum , a.deptno ,dname
from
(select count(deptno) denum ,deptno
from emp
where deptno =
(select deptno
from emp
where ename = 'KING')
group by deptno) a ,dept b
where a.deptno = b.deptno ;

 

--31.查詢出king所在部門的工作年限最大的員工名字

select ename
from(
select *
from emp
where deptno = (
select deptno
from emp
where ename = 'KING')
order by hiredate )
where rownum = 1

 

--32.查詢出工資成本最高的部門的部門號和部門名稱 

select a.deptno ,b.dname
from
(select sum(sal),deptno
from emp
group by deptno
order by sum(sal) desc) a , dept b
where a.deptno = b.deptno
and rownum = 1 ;

 

--33.顯示所有員工的姓名、工作和薪金,按工作的降序排序,若工作相同則按薪金排序. 

select ename , job , sal
from emp
order by job desc , sal desc;

 

--34.顯示所有員工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同則將最早年份的員工排在最前面. 

select ename , to_char( hiredate , 'YYYY MM' )
from emp
order by to_char( hiredate , 'MM' ) ,to_char (hiredate , 'dd');

 

--35.顯示在一個月為30天的情況所有員工的日薪金,忽略餘數

select ename , trunc(sal/30)
from emp ;

 

--36.找出在(任何年份的)2月受聘的所有員工。

select ename
from emp
where to_char ( hiredate , 'mm' ) = 2 ;

 

--37.對於每個員工,顯示其加入公司的天數. 

select ename , ceil(to_number (to_char(sysdate - hiredate))) hireday
from emp ;

 

--38.顯示姓名欄位的任何位置包含"A"的所有員工的姓名.

select ename
from emp
where ename like '%A%';

 

--39.以年月日的方式顯示所有員工的服務年限. 

--年
select ename , round(to_number (to_char(sysdate - hiredate))/365 ) year
from emp ;

--月
select ename , round(to_number (to_char(sysdate - hiredate))/30 ) month
from emp ;

--日
select ename , ceil(to_number (to_char(sysdate - hiredate)) ) month
from emp ;

 

--40.顯示員工的姓名和受雇日期,根據其服務年限,將最老的員工排在最前面. 

select ename , hiredate
from emp
order by hiredate

 

--41.

假設order_status2 表結構如下:
Name Type Nullable Default Comments
------------------------------- ------------------------- ------------ ------------ --------
ID INTEGER
STATUS CHAR(10) Y
LAST_MODIFIED DATE Y SYSDATE
MODIFIED_BY INTEGER Y
INITIALLY_CREATED DATE sysdate
TEST VARCHAR2(15) Y
TESTB VARCHAR2(10) Y 'testb'

--按表結構信息在數據中創建order_status2表

create table order_status3
(
ID INTEGER not null,
STATUS CHAR(10) ,
LAST_MODIFIED DATE default SYSDATE ,
MODIFIED_BY INTEGER ,
INITIALLY_CREATED DATE default sysdate not null ,
TEST VARCHAR2(15),
TESTB VARCHAR2(10) default 'testb');

 

--修改欄位test, 使其不允許為空且給它賦予一個預設的值testing;

alter table order_status2 modify(test default 'testing' not null);

 

--給order_status2表添加註釋, 併為其每一個欄位添加相應的註釋.

comment on table order_status2 is '1';

comment on column order_status2.id is '1';
comment on column order_status2.status is '1';
comment on column order_status2.last_modified is '1';
comment on column order_status2.initially_created is '1';
comment on column order_status2.test is '1';
comment on column order_status2.testb is '1';
comment on column order_status2.MODIFIED_BY is '1';

 

--42.在41題創建的order_status2表的基礎上完成以下練習:
--給order_status2表的status列添加一個check約束, 使其只允許輸入Male和Female;

alter table order_status
add constraint order_status_check
check (status in ('male' , 'female'));

 

--為這個表的id列添加一個外鍵約束, 外鍵約束的表為employees, 對應的列為employee_id;

alter table order_status
add constraint order_status_f_id
foreign key (id) references employees(employee_id);

 

--43.對emp表中sal、comm進行加計算,並使用別名命令為員工的月總收入,同時展示出員工部門編號、員工姓名信息。

select ename , empno , sal+nvl(comm , 0) "月總收入"
from emp;

 

--44.使用連接符查詢emp表中員工的姓名和工資,並以如下格式列出且欄位名展示為 TOTAL INCOME:
--SMITH total income is XXXXX

select ename||' total income is'||sal as "TOTAL INCOME"
from emp ;


--45.使用distinct排重查詢emp中的job類型

select distinct job from emp;

 

--46.從emp表中找出獎金高於 薪水60%的員工

select ename
from emp
where nvl(comm , 0 ) >nvl(comm , 0 )*0.6 ;


--47.找出部門10中所有經理(MANAGER)和部門20中所有辦事員(CLERK)的詳細資料。

select *
from emp
where deptno = 10 and job ='MANAGER' or deptno = 20 and job = 'CLERK';

 

--48.從emp和dept中聯合查詢,並將員工編號、姓名、職位、地址信息列出。

select e.empno , ename ,job , loc
from emp e , dept d
where e.deptno = d.deptno;

 

--49.統計各部門的薪水總和。

select sum(sal) ,deptno
from emp
group by deptno;

 

--50.找出部門10中所有理(MANAGER),部門20中所有辦事員(CLERK)以及既不是經理又不是辦事員但其薪水大於或等2000的所有員工的詳細資料。

select *
from emp
where deptno = 10 and job ='MANAGER'
or deptno = 20 and job = 'CLERK'
or job <> all('MANAGER' , 'CLERK') and sal >= 2000;

 

 

--51.列出各種工作的最低工資。

select job , min(sal)
from emp
group by job;

 

--52.列出各個部門的MANAGER(經理)的最低薪水。

select min(sal)
from
(select *
from
(select sal, job , deptno
from emp)
where job = 'MANAGER')
group by deptno


--53.列出有獎金的員工的不同工作。
select ename , job , comm
from
(select *
from emp
where comm is not null);

 

--54.找出無獎金或獎金低於300的員工。

select * from emp where comm is null or nvl(comm , 0)<300;


--55.顯示所有員工的姓名,並使姓名首字母大寫。

select initcap(ename) from emp;

 

--56.顯示正好為5個字元的員工的姓名。

select ename from emp where length(ename) = 5;

 

--57.顯示不帶有“R”的員工姓名。

select ename from emp where ename not like '%R%';

 

--58.列出薪水高於在部門30工作的所有員工的薪水的員工姓名和薪水。

select ename ,sal
from emp
where sal >all (select sal from emp where deptno = 30 ) ;

 

 

--59.列出在每個部門工作的員工數量、平均工資和平均服務期限。

select count(*) "員工人數" , avg(sal) "平均工資" ,avg (trunc(sysdate - hiredate)) "平均服務年限"
from emp
group by deptno ;

 

--60.列出從事同一種工作但屬於不同部門的員工的一種組合。

select a.ename , b.ename
from emp a , emp b
where a.job = b. job and a.deptno <> b.deptno ;

 

--61.列出薪水比“SMITH”多的所有員工。
select ename
from emp
where sal > (select sal from emp where ename = 'SMITH');

 

--62.列出至少有一個員工的所有部門。

select distinct deptno
from emp
where deptno in (select deptno from emp );

 

--63.對於每個員工,顯示其加入公司的天數、月數、年數。

select ename , trunc(sysdate - hiredate) "天數" ,
trunc(sysdate - hiredate)/30 "月數" , trunc(sysdate - hiredate)/365 "年"
from emp;

 

--64.對21中的天數、月數、年數取整顯示。

select ename , trunc(sysdate - hiredate) "天數" ,
round(trunc(sysdate - hiredate)/30) "月數" , round(trunc(sysdate - hiredate)/365) "年"
from emp;

 

--65.找出在每年5月受聘的所有員工。

select ename
from emp
where to_char(hiredate,'mm') = 5 ;

 

--66.顯示在一個月為30天的情況下所有員工的日薪水,取整。

select ename , round(sal/30) daysal
from emp;

 

--67.顯示所有員工的姓名和加入公司的年份和月份,並將員工入職年月從低到高排序。

select ename , to_char(hiredate,'yyyy mm')
from emp
order by hiredate ;

 

--68.請查SMITH領導的薪水
select sal
from emp
where empno = (select mgr
from emp
where ename = 'SMITH');

 

--69.請查SMITH領導的薪水和所在的部門地址

select sal ,loc
from emp e , dept d
where empno = (select mgr
from emp
where ename = 'SMITH')
and e.deptno = d.deptno;

 

--70.請查SMITH領導的薪水和所在的部門地址 以及領導的薪水等級

select a.* , grade
from
(
select sal , loc
from emp ,dept
where empno=(select mgr
from emp
where ename = 'SMITH') and dept.deptno=
(select deptno
from emp
where ename = 'SMITH')) a ,salgrade
where a.sal
between losal and hisal
;
--或
select a.* , grade ,loc
from
(select b.sal
from emp a,emp b
where a.mgr=b.empno and a.ename ='SMITH') a ,
salgrade ,dept
where a.sal between losal and hisal
and deptno=(select b.deptno
from emp a,emp b
where a.mgr=b.empno and a.ename ='SMITH');

 

--71.查出SMITH的薪水等級

select grade
from salgrade ,emp
where ename ='SMITH'
and sal between losal and hisal;


--72.請查出SIMIH的薪水等級和他所在部門所在地

select grade , loc
from dept d, salgrade ,emp e
where ename ='SMITH' and e.deptno = d.deptno
and sal between losal and hisal;

 

 

--73.按照職位分組,求出每個職位的最大薪水

select max(sal)
from emp
group by job;

 

--74.
--I)求出每個部門中的每個職位的最大薪水

select max(sal),deptno , job
from emp
group by deptno ,job ;

 

 

--II)在薪水大於1000,並且職位不是MANAGER的員工中,求職哪個職位的平均薪水大於2000
select job
from emp
where sal>1000 and job <> 'MANAGER'
group by job
having avg(sal)>2000;


--75.列出SMITH的薪水和職位

select sal , job
from emp
where ename = 'SMITH';

 

--76.列出SMITH的部門地址和補貼和薪水等級(等級表salgrade)

select ename , loc , comm , grade
from emp e , dept d ,salgrade
where ename = 'SMITH' and e.deptno = d.deptno
and e.sal between losal and hisal

 

--77.列出薪金比"SMITH"多的所有員工
select ename
from emp
where sal>(
select sal
from emp
where ename = 'SMITH');

 

--78.列出所有員工的姓名及其直接上級的姓名

方法一:

select a.ename "直接上級", b.ename "員工姓名"
from emp a , emp b
where a.mgr = b.empno(+);

方法二:

select a.ename "直接上級", b.ename "員工姓名"
from emp a left outer join emp b
on a.mgr = b.empno(+);

 

--79.列出部門不是10,職位不是C開頭的,薪資比公司平均薪資都高的員工名字

select ename
from emp
where deptno != 10 and job not like 'C%'
and sal>(select avg(sal) from emp );

 

--80.哪個部門下麵沒有員工

select deptno
from dept
where deptno <>all
(select deptno
from emp);

 

--81.誰的薪水比SMITH多,同時部門又是和SCOTT的部門相同

select ename
from emp
where sal > (select sal from emp where ename = 'SMITH')
and deptno = (select deptno from emp where ename ='SCOTT');

 

--82.列出薪資比每個部門每個職位的平均薪資還要高的員工

select ename
from emp
where sal >all(select avg(sal) from emp
group by deptno, job );

 

--83.列出至少有一個員工的所有部門

select distinct deptno
from emp;

 

--84.新員工入職,請新增一個用戶

insert into emp(empno , ename , hiredate)
values(1111 , 'aaaa' , sysdate);

 

--85.SMITH的職位變更為SCOTT的職位

update emp
set job = (select job from emp where ename = 'SCOTT')
where ename = 'SMITH';

 

--86.SMITH離職,請刪除該用戶

delete from emp
where ename = 'SMITH';

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 簡介 使用消息隊列可以在任務之間傳遞多條消息。消息隊列由三個部分組成:事件控制塊、消息隊列和消息。 當把事件控制塊成員 OSEventType 的值置為 OS_EVENT_TYPE_Q 時,該事件控制塊描述的就是一個消息隊列。 消息隊列相當於一個共用一個任務等待列表的消息郵箱數組,事件控制塊成員 O ...
  • 1 學習Linux的註意事項 1. 嚴格區分 大小寫 (命令, 文件, 選項) 2. Linux中所有內容以 文件形式 保存, 包括硬體 硬碟文件是/dev/sd[a p] 光碟文件是/dev/sr0等 3. Linux不靠 擴展名 區分文件類型, 靠的是 文件許可權 , 這個和windows不同. ...
  • linux作為一種老牌的開源系統,在幾十年間發展擴散出了三百餘種版本,很多都是我們耳熟能詳的,本篇主要介紹了linux的一些基礎發展由來歷史,市面上常見的幾種流行的linux版本,以及linux啟動的流程。 ...
  • 本文目錄: 1.1 文件描述符(file description,fd) 1.2 文件描述符的複製 1.3 重定向順序很重要:">file 2>&1"和"2>&1 >file" 1.4 改變當前shell環境的重定向目標 1.5 關閉文件描述符 1.6 打開文件 1.7 文件描述符的移動 1.8 經 ...
  • 在分析/逆向 程式時,如果事先知道這類程式的一些特征,那將會是事半功倍的; 分析/逆向 程式,和寫程式不同,比喻的話:寫程式像在作案,分析/逆向 程式就像是在破案,對破案來講,重在假想和推理; 特征1:VC鏈接器版本 4.20 特征2:OEP a0) VB5: 【VB5】的OEP平衡堆棧是 sub ...
  • 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的性能-CoreMark ...
  • 事務的隔離級別 為什麼 引入了 事務隔離級別?? 在資料庫操作中,為了有效保證併發讀取數據的正確性,提出的事務隔離級別。 更新丟失兩個事務都同時更新一行數據,一個事務對數據的更新把另一個事務對數據的更新覆蓋了。這是因為系統沒有執行任何的鎖操作,因此併發事務並沒有被隔離開來。臟讀一個事務讀取到了另一個 ...
  • 本文內容: 什麼是資料庫 什麼是關係資料庫 什麼是非關係型資料庫 PS:雖然這些東西都是一些比較基礎常識的東西,但為了記錄自己的學習之路,也為了為以後的一些突發奇想留下“坑”,所以寫下了這篇博文。 首發日期:2018-04-07 什麼是資料庫? 資料庫是數據的倉庫。 與普通的“數據倉庫”不同的是,數 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...