《sql語句練習1》

Oracle系列《一》:簡單SQL與單行函數??

?

使用scott/tiger用戶下的emp表和dept表完成下列練習,表的結構說明如下?

emp員工表(empno員工號/ename員工姓名/job工作/mgr上級編號/hiredate受雇日期/sal薪金/comm傭金/deptno部門編號)?

dept部門表(deptno部門編號/dname部門名稱/loc地點)?

工資?=?薪金?+?傭金

登錄Oracle數據庫

1sqlplus?scott/tiger

2sqlplus?/nolog

SQL>conn?scott/tiger
若是使用SYS的賬號進行登錄的話,則使用以下語句

SQL>conn?/?as?sysdba

?

?

1EMP表內容查詢

SQL>?SELECT?*?FROM?emp;?

出錯,原因是沒有找到該表,因為該表時SCOTT用戶的表,所以查詢時應該加上scott.emp就可以了

?

2】顯示當前用戶

SQL>?show?user

?

3】查看當前用戶的所有表

SQL>?SELECT?*?FROM?tab;

?

4】若想重復執行上一條SQL語句,則在sqlplus命令行下輸入"/"即可

?

5】查詢一張表的結構,例如dept

SQL>?desc?dept

?

6】在雇員表中查詢雇員的編號、姓名、工作

SQL>?SELECT?empno,ename,job?FROM?emp;

?

7】可以為列名取別名,在LinuxOracle如果英文別名不加上雙引號則會變成大寫

SQL>?SELECT?empno?編號,ename?姓名,job?工作?FROM?emp;

?

8】查詢所有的工作

SQL>?SELECT?DISTINCT?job?FROM?emp;?

工作可能會重復,加上DISTINCT關鍵字???去重復值

?

9】若要求按照以下的格式進行結果輸出,如?NO:7469,Name:SMITH,Job:CLERK

SQL>?SELECT?'NO:'||empno||',Name:'||ename||',Job:'||job?FROM?emp;

?

10】要求列出每個雇員的姓名及年薪

SQL>?SELECT?ename,sal*12?income?FROM?emp;

這里年薪最好用別名進行標識,可以一眼就能明白

?

11】查看每月可以得到獎金的雇員信息

SQL>?SELECT?*?FROM?emp?WHERE?comm?is?NOT?NULL;

?

?

12】要求基本工資大于1500,同時可以領取獎金的雇員信息

SQL>?SELECT?*?FROM?emp?WHERE?sal>1500?AND?comm?is?NOT?NULL;

如果是或的是關系,則使用?OR

?

13】查詢基本工資不大于1500,同時不可以領取獎金的雇員信息

SQL>?SELECT?*?FROM?emp?WHERE?NOT(sal>1500?AND?comm?is?NOT?NULL);

?

14】查詢在1981年雇傭的全部雇員信息,BETWEEN?..?AND?包含等于的情況

SQL>?SELECT?*?FROM?emp

WHERE?hiredate?BETWEEN?'01-JAN-81'?AND?'31-DEC-81';

?

15Oracle對大小敏感,所以查詢時名字要區分大小寫

?

16】要求查詢出雇員編號不是?73697499的雇員信息

SQL>?SELECT?*?FROM?emp

WHERE?empno?NOT?IN(7369,7499);

?

17SQLLIKE語句要注意通配符?%?和?_

SQL>?SELECT?*?FROM?emp

WHERE?hiredate?LIKE?'%81%';

?

18】查看雇員編號不是7369的雇員信息,使用<>!=

SQL>?SELECT?*?FROM?emp

WHERE?empno<>7369;

?

19】要求對雇員的工資由低到高進行排序,升序為默認(ASC),降序(DESC)

SQL>?SELECT?*?FROM?emp

GROUP?BY?sal?desc;

?

20】查看出部門號為10的雇員信息,查詢的信息按照工資從高到低,若工資相等則按雇用日期從早到晚排列

SQL>?SELECT?*?FROM?emp

WHERE?deptno=10

ORDER?BY?sal?DESC,hiredate?ASC;

?

數據庫系統中,每個數據庫之間區別最大的就是在函數的支持上,單行函數是最簡單的函數,單行函數分為

1、字符函數:接受字符輸入并且返回字符或數值

2、數值函數:接受數值輸入并返回數值

3、日期函數:對日期型數據進行操作

4、轉換函數:將一種數據類型轉換為另一種數據類型

5、通用函數:NVLDECODE?函數

?

字符函數:

1】大小寫轉換?UPPER?和?LOWER

SQL>?SELECT?UPPER('smith')?FROM?dual;

2】將雇員姓名變為開頭字母大寫,INITCAP

SQL>?SELECT?INITCAP(ename)?FROM?emp;

?

字符函數中有連接函數CONCAT,但不如?||?好用,還有字符串處理的一些函數

字符串截取:substr()

字符串長度:length()

內容替換:replace()

SQL>?SELECT?substr('hello',1,3),length('hello'),replace('hello','l','x')?FROM?dual;

這里注意的是Oracle中字符串截取從0和從1開始都是一樣的,謹防面試提問

?

3】要求顯示所有雇員的姓名及姓名的后3個字符

SQL>?SELECT?ename,SUBSTR(ename,LENGTH(ename)-2)?FROM?emp;

以上操作顯得較為麻煩,substr()函數是可以倒著截取

SQL>?SELECT?ename,SUBSTR(ename,-3,3)?FROM?emp;

?

數值函數:

1、四舍五入:ROUND()

2、截斷小數位:TRUNC()

3、取余(取模)MOD

SQL>?SELECT?ROUND(789.536)?FROM?dual;

1】保留2位小數,(如果是-2則對整數進行四舍五入,變為800)

SQL>?SELECT?ROUND(783.56,2)?FROM?dual;

2】使用MOD()函數進行取余操作

SQL>?SELECT?MOD(10,3)?FROM?dual;

?

日期函數:

1、日期?-?數字?=?日期

2、日期?+?數字?=?日期

3、日期?-?日期?=?數字(天數)

1】求出當前日期

SQL>?SELECT?SYSDATE?FROM?dual;

?

Oracle提供【2】求出從雇用日期到今天所有雇員的雇員編號、姓名和月數

SQL>?SELECT?了以下的日期函數支持:

MONTHS_BETWEEN():求出給定日期范圍的月數

ADD_MONTHS():在指定日期上加上指定的月數,求出之后的日期

NEXT_DAY():下一個的今天的日期

LAST_DAY():求出給定日期的最后一天日期

?

empno,ename,ROUND(MONTHS_BETWEEN(SYSDATE,hiredate))?FROM?emp;

?

3】驗證?ADD_MONTHS()NEXT_DAY()LAST_DAY()

SQL>?SELECT?ADD_MONTHS(SYSDATE,4)?FROM?DUAL;

SQL>?SELECT?NEXT_DAY(SYSDATE,'MON')?FROM?DUAL;

SQL>?SELECT?LAST_DAY(SYSDATE)?FROM?DUAL;

?

轉換函數:

1TO_CHAR():??將日期或數值轉換成字符串

2TO_NUMBER():將字符串轉換成數字

3TO_DATE():??將字符串轉換成日期

?

1】將年月日進行分開,要指定拆分的通配符,yyyy-mm-dd

SQL>?SELECT?empno,ename,TO_CHAR(hiredate,'yyyy')?datetime?FROM?emp;

?

2】將薪水的數字進行格式化,'$99,999'表示美元,'L99,999'表示當地貨幣

SQL>?SELECT?empno,ename,TO_CHAR(sal,'99,999)?salary?FROM?emp;

?

3TO_NUMBER()驗證

SQL>?SELECT?TO_NUMBER('123')+TO_NUMBER('123')?FROM?DUAL;

?

4TO_DATE()驗證,如下例子執行后顯示為?11-JUL-11

SQL>?SELECT?TO_DATE('2011-7-11','yyyy-mm-dd')?FROM?DUAL;

?

通用函數:

1】求出每個雇員的年薪(應算上獎金)

SQL>?SELECT?empno,ename,(sal+comm)*12?FROM?emp;

由于comm中有NULL,NULL值計算后還是NULL,正確如下:

SQL>?SELECT?empno,ename,NVL(comm,0),(sal+NVL(comm,0))*12?income?FROM?emp;

NVL可以理解為將NULL值轉換為具體的內容,這里是0

?

2DECODE()函數,該函數類似于?IF?...?ELSEIF...ELSE

語法如下:

DECODE(col/expression,選擇1,結果1[,選擇2,結果2...,默認])

驗證DECODE()函數

SQL>?SELECT?empno,ename,hiredate,

DECODE(job,'CLERK','業務員','SALESMAN','銷售人員',’MANAGER','經理','ANALYST','分析員','PRESIDENT','總裁')?職位

FROM?emp;

?

SQL簡單語句練習:

?

1】找出傭金高于薪金的60%的員工

SQL>?SELECT?*?FROM?emp?WHERE?comm>sal*0.6

?

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

SQL>?SELECT?*?FROM?emp

WHERE?(deptno=20?AND?job='MANAGER')

OR?(deptno=10?AND?job='CLERK');

?

?

3】找出既不是經理又不是辦事員但其薪金大于或等于2000的所有員工的資料

SQL>?SELECT?*?FROM?emp

WHERE?job?NOT?IN('MANAGER','CLERK')?AND?sal?>=?2000;

?

4】找出有獎金的員工的不同國祚

SQL>?SELECT?DISTINCT?job?FROM?emp

WHERE?comm?IS?NOT?NULL;

?

5】找出各月倒數第3天受雇的所有員工

SQL>?SELECT?*?FROM?emp

WHERE?LAST_DAY(hiredate)-2=hiredate;

?

6】找出早于12年前受雇的員工

SQL>?SELECT?*?FROM?emp

WHERE?MONTHS_BETWEEN(sysdate,hiredate)/12?>?12;

?

7】顯示剛好為5個字符的員工的姓名

SQL>?SELECT?ename?FROM?emp

WHERE?length(ename)=5;

?

8】顯示不帶有"R"的員工的姓名

SQL>?SELECT?ename?FROM?emp

WHERE?ename?NOT?LIKE?'%R%';

?

9】顯示員工的姓名和受雇日期,將最老的員工排在最前

SQL>?SELECT?*?FROM?emp

Order?BY?hiredate;

?

10】顯示所有員工的姓名,加入公司的年份和月份,按受雇日期所在月排序,若月份相同則按年份排序

SQL>?SELECT?ename,TO_CHAR(hiredate,'yyyy')?year,TO_CHAR(hiredate,'mm')?month?FROM?emp

ORDER?BY?month,year;

?

11】找出在2月受聘的員工

SQL>?SELECT?*?FROM?emp

WHERE?TO_CHAR(hiredate,'mm')=2;

?

12】以年月日方式顯示所有員工服務年限

SQL>?SELECT?ename,TRUNC(MONTHS_BETWEEN(sysdate,hiredate)/12)?year,

TRUNC(MOD(MONTHS_BETWEEN(sysdate,hiredate),12))?month,

TRUNC(MOD(sysdate-hiredate,30))?day

FROM?emp;

Oracle系列《二》:多表復雜查詢和事務處理??

多表查詢應該注意去除笛卡爾積,一般多個表時會為表起個別名

?

1】要求查詢雇員的編號、姓名、部門編號、部門名稱及部門位置

SQL>?SELECT?e.empno,e.ename,d.deptno,d.dname,d.loc

FROM?emp?e,dept?d

WHERE?e.deptno?=?d.deptno;

?

2】要求查詢每個雇員的姓名、工作、雇員的直接上級領導的姓名(表自關聯)

SQL>?SELECT?e.ename,e.job,m.ename

FROM?emp?e,emp?m

WHERE?e.mgr?=?m.empno;

?

3】對【2】進行擴充,將雇員所在部門名稱同時列出

SQL>?SELECT?e.ename,e.job,m.ename,d.dname

FROM?emp?e,emp?m,dept?d

WHERE?e.mgr?=?m.empno?AND?e.deptno=d.deptno;

?

4】查詢每個雇員的姓名、工資、部門名稱,工資在公司的等級(salgrade),及其領導的姓名所在公司的等級

<1>先確定工資等級表的內容

SQL>?SELECT?*?FROM?salgrade;

?

<2>查詢每個雇員的姓名、工資、部門名稱和工資在公司的等級

SQL>?SELECT?e.ename,e.sal,d.dname,s.grade

FROM?emp?e,dept?d,salgrade?s

WHERE?e.deptno=d.deptno?AND?e.sal?BETWEEN?s.losal?AND?s.hisal;

?

<3>查詢其領導姓名及工資所在公司的等級

SQL>?SELECT?e.ename,e.sal,d.dname,s.grade,m.ename,m.sal,ms.grade

FROM?emp?e,dept?d,salgrade?s,emp?m,salgrade?ms

WHERE?e.deptno?=?d.deptno?AND?e.sal?BETWEEN?s.losal?AND?s.hisal

AND?e.mgr?=?m.empno?AND?m.sal?BETWEEN?ms.losal?AND?ms.hisal;

?

5】左連接與右連接的概念,"+"在等號左邊表示右連接,反之,左連接

查詢雇員的編號、姓名及其領導的編號、姓名

SQL>?SELECT?e.empno,e.ename,m.empno,m.ename

FROM?emp?e,emp?m

WHERE?e.mgr?=?m.empno(+);

就發現將KING的那條記錄也連過來了

?

SQL1999語法中有如下幾種連接(了解)

1、交叉連接CROSS?JOIN,產生笛卡爾積

SQL>?SELECT?*?FROM?emp?CROSS?JOIN?dept;

2、自然連接NATURAL?JOIN,自動進行關聯字段的匹配

SQL>?SELECT?*?FROM?emp?NATURAL?JOIN?dept;

3、使用USING子句,直接關聯操作列

SQL>?SELECT?*?FROM?emp?JOIN?dept?USING(deptno)

WHERE?deptno=30;

4、使用ON子句,用戶自己編寫的條件

SQL>?SELECT?*?FORM?emp?JOIN?dept?ON(emp.deptno?=?dept.deptno)

WHERE?deptno=30;

5、左連接(左外連接、LEFT?(OUTER)?JOIN)、右連接(右外連接、RIGHT?(OUTER)?JOIN)

?

組函數及分組統計

1COUNT():求出全部記錄數

2MAX():求出一組中最大值

3MIN():求出最小值

4AVG():求出平均值

5SUM():求和

1】求出每個部門的雇員數量

SQL>?SELECT?deptno,count(empno)

FROM?emp

GROUP?BY?deptno;

?

2】按部門分組,并顯示部門的名稱,及每個部門的員工數

SQL>?SELECT?d.dname,COUNT(e.empno)

FROM?emp?e,dept?d

WHERE?e.deptno=d.deptno

GROUP?BY?d.dname;

?

3】要求顯示平均工資大于2000的部門編號和平均工資

SQL>?SELECT?deptno,AVG(sal)

FROM?emp

WHERE?AVG(sal)>2000

GROUP?BY?deptno;

出錯,WHERE子句中不能出現分組函數的條件,要使用HAVING子句

上述語句應該改為如下

SQL>?SELECT?deptno,AVG(sal)

FROM?emp

GROUP?BY?deptno

HAVING?AVG(sal)>2000

?

4】顯示非銷售人員工作名稱以及從事同一工作雇員的月工資總和,并且要求從事同一工作的雇員月工資合計大于$5000,

輸出結果按月工資的合計升序排序

<1>按工作分組,求出非銷售人員的月工資總和

SQL>?SELECT?job,SUM(sal)

FROM?emp

WHERE?job<>'SALESMAN'

GROUP?BY?job;

<2>對分組條件進行限制,然后進行排序,HAVING子句不能使用別名

SQL>?SELECT?job,SUM(sal)?totalSal

FROM?emp

WHERE?job<>'SALESMAN'

GROUP?BY?job

HAVING?SUM(sal)?>?5000

ORDER?BY?totalSal;

?

3】分組函數可以嵌套使用,但是在SELECT列中就不能再出現該分組條件的列名了

SQL>?SELECT?deptno,MAX(AVG(sal))

FROM?emp

GROUP?BY?deptno;

出錯!修改如下

SQL>?SELECT?MAX(AVG(sal))

FROM?emp

GROUP?BY?deptno;

?

4】查詢出比7654工資要高的全部雇員的信息

<1>首先要查詢雇員編號7654的工資

SQL>?SELECT?sal?FROM?emp?WHERE?empno=7654;

<2>以上述條件的結果最后后續查詢的依據

SQL>?SELECT?*?FROM?emp

WHERE?sal>(SELECT?sal?FROM?emp?WHERE?empno=7654);

?

子查詢在操作中分為以下三類:

1、單列子查詢:返回的結果是一列的內容

2、單行子查詢:返回多個列,也可能是一條記錄

3、多行子查詢:返回多個記錄

?

1】要求查詢工資比7654高,同時與7788從事相同工作的全部雇員

SQL>?SELECT?*?FROM?emp

WHERE?sal>(SELECT?sal?FROM?emp?WHERE?empno=7654)

AND?job=(SELECT?job?FROM?emp?WHERE?empno=7788);

?

2】要求查詢?部門名稱、部門員工數、部門平均工資,部門的最低收入雇員的姓名

<1>查詢部門員工數、部門平均工資

SQL>?SELECT?deptno,COUNT(empno),AVG(sal)

FROM?emp

GROUP?BY?deptno;

<2>查詢部門的名稱,及最低收入雇員姓名,要進行表關聯(子查詢)

SQL>?SELECT?d.dname,ed.c,ed.a,e.ename

FROM?dept?d,(

?SELECT?deptno,COUNT(empno)?c,AVG(sal)?a,MIN(sal)?min

?FROM?emp

?GROUP?BY?deptno)?ed,?emp?e

WHERE?d.deptno=ed.deptno?AND?e.sal?=?ed.min;

?

若上述存在兩個最低工資的情況,則會出錯,在子查詢中存在以下3種查詢的操作符號

IN:指定一個查詢范圍,例如查詢每個部門的最低工資(返回值有多個)

SQL>?SELECT?*?FROM?emp

WHERE?sal?IN(SELECT?MIN(sal)?FROM?emp?GROUP?BY?deptno);

?

ANY=ANY(IN操作一樣)>ANY(比最小大)<ANY(比最大小)

SQL>?SELECT?*?FROM?emp

WHERE?sal?<ANY(SELECT?MIN(sal)?FROM?emp?GROUP?BY?deptno);

?

ALL:?>ALL(比最大要大)<ALL(比最小的小),SQL語句類似上面

?

SQL多列子查詢示例如下

SQL>?SELECT?*?FROM?emp

WHERE?(sal,NVL(comm,-1))?IN

?(SELECT?sal,NVL(comm,-1)?FROM?emp?WHERE?deptno=20);

?

?

數據庫更新操作INSERTUPDATEDELETE

?

1】復制一張表,例如復制EMP表為MYEMP

SQL>?CREATE?TABLE?MYTEMP?AS?SELECT?*?FROM?emp;

?

2】將編號為7899的雇員的領導取消

SQL>?UPDATE?myemp?SET?mgr=null?WHERE?empno=7899;

?

3】更新時,一定要注意不能批量更新(加上WHERE子句),多列更新例子如下

SQL>?UPDATE?myemp?SET?mgr=null,comm=null?WHERE?empno?IN(7369,8899);

?

4】刪除掉全部領取獎金的雇員

SQL>?DELECT?FROM?emp?WHERE?comm?is?NOT?NULL;

?

事務處理?ACID

AAtomicity???原子性:事務中的操作或者都完成,或者都取消

CConsistency?一致性:事務中的操作保證數據庫中的數據不會出現邏輯上不一致的情況

IIsolation???隔離性:當前的事務與其他未完成的事務是隔離的

DDurability??持久性:在COMMIT之后,數據永久保存在數據庫中,在此之前,事務的操作都可以回滾

?

驗證事務過程:

<1>創建一張臨時表,只包含部門10

SQL>?CREATE?TABLE?emp10?AS?SELECT?*?FROM?emp?WHERE?empno=10;

<2>刪除emp10中的7782雇員

SQL>?DELETE?FROM?emp10?WHERE?empno=7782;

再打開另一個窗口,發現數據還存在,此時如果可以使用以下的兩種命令進行事務處理

COMMIT?和?ROLLBACK?提交事務和回滾事務

?

SQL查詢練習

1】列出至少一個員工的所有部門

SQL>?SELECT?d.*,ed.cou?FROM?dept?d,(

?SELECT?deptno,COUNT(empno)?cou?FROM?emp

?GROUP?BY?deptno

?HAVING?COUNT(empno)?>?1)?ed

WHERE?d.deptno=ed.deptno;

?

2】列出部門名稱和這些部門的員工信息,同時列出那些沒有員工的部門

SQL>?SELECT?d.deptno,d.dname,e.empno,e.ename

FROM?dept?d,emp?e

WHERE?d.deptno?=?e.deptno(+);

?

3】列出所有"CLERK"(辦事員)的姓名及其部門名稱,部門的人數

<1>關聯dept

SQL>?SELECT?e.ename,d.dname

FROM?emp?e,dept?d

WHERE?e.deptno=d.deptno?and?e.job='CLERK';

<2>使用GROUP?BY?完成部門分組人數

SQL>?SELECT?e.ename,d.dname,ed.cou?FROM?emp?e,dept?d,(

?SELECT?deptno,COUNT(empno)?cou?FROM?emp

?GROUP?BY?deptno)?ed

WHERE?job='CLERK'?AND?e.deptno=d.deptno?AND?ed.deptno=e.deptno;

?

轉載于:https://www.cnblogs.com/hxv-3670/p/7297498.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282845.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282845.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282845.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Asp.net mvc 知多少(一)

本系列主要翻譯自《ASP.NET MVC Interview Questions and Answers 》- By Shailendra Chauhan&#xff0c;想看英文原版的可訪問http://www.dotnettricks.com/free-ebooks自行下載。該書主要分為兩部分&#xff0c;ASP.NET MVC 5、ASP.NET WEB API2。本書最大的特點是以面試問答…

stm32h7能跑linux,STM32H7榨干了Cortex-M7的最后一滴血

原標題&#xff1a;STM32H7榨干了Cortex-M7的最后一滴血有個非常重磅的消息ST給自己的STM32家族又新增了一條新的產品線—— H7H 代表的是High Pefrmance之意 (此為筆者臆測)7 則表示這是基于ARM Cortex-M7架構修改而來熟悉的工程師可能會問&#xff0c;不是已經有基于M7架構的…

通過PowerShell進行網絡分析

好久沒有寫文章&#xff0c;因為確實工作也比較忙。今天周末&#xff0c;稍微有些時間&#xff0c;在解決一個問題時&#xff0c;用到了一點抓取和處理網絡數據的小技巧&#xff0c;摘錄分享如下。問題描述我有一個需求&#xff0c;就是要研究某個網頁加載過程中具體發起了多少…

jvm監控調優常用命令

jvm監控調優常用命令 轉載于:https://www.cnblogs.com/likun10579/p/6403324.html

【BZOJ】1013 球形空間產生器

【解析】代數變形高斯消元 [分析] 依據題目以下的提示。設x[i][j]表示第i個點在第j維的坐標。r[j]為圓心在第j維的坐標 能夠知道&#xff1a; dis根號(∑(x[i][j]-r[j])^2)。 因為平方的非負性。所以能夠推出 dis^2∑(x[i][j]-r[j])^2。 依據平方和公式&#xff0c;(x[i][j]-r[…

c語言不規則窗口,C語言不規則數組和指針

不規則數組是每一行的列數不一樣的二維數組&#xff0c;其原理如下圖所示&#xff0c;圖中的數組有3行&#xff0c;每行有不同的列數。在了解如何創建不規則數組之前&#xff0c;讓我們先看一下用復合字面量創建的二維數組。復合字面量是一種C構造&#xff0c;前面看起來像類型…

php spl_autoload_register() 函數

spl_autoload_register()的用法&#xff1a; 其中$this表示當前類&#xff0c;autoload()是我注冊的自動加載函數&#xff0c;當然這個只是一個函數名&#xff0c;只要不與php的關鍵字重復&#xff0c;符合一般函數名的命名規范即可。 使用自動加載之后&#xff0c;當我們在一個…

C語言中遞歸什么時候能夠省略return引發的思考:通過內聯匯編解讀C語言函數return的本質...

C語言中遞歸什么時候能夠省略return引發的思考&#xff1a;通過內聯匯編解讀C語言函數return的本質 事情的經過是這種&#xff0c;博主在用C寫一個簡單的業務時使用遞歸&#xff0c;因為粗心而忘了寫return。結果發現返回的結果依舊是正確的。經過半小時的反匯編調試。證明了我…

C# 為什么說CM+Fody+HC是WPF開發的最強組合?

01—名詞解析CM&#xff1a;Caliburn.Micro(簡稱CM)一經推出便備受推崇&#xff0c;作為一款MVVM開發模式的經典框架&#xff0c;越來越多的受到wpf開發者的青睞.我們看一下官方的描述&#xff1a;Caliburn是一個為Xaml平臺設計的小型但功能強大的框架。Micro實現了各種UI模式&…

c語言邏輯運算符兩側運算對象,邏輯運算符兩側運算對象的數據類型是什么?...

邏輯運算符兩側運算對象的數據類型&#xff1a;可以是任何合法的類型數據&#xff1b;因為邏輯運算符兩邊的運算對象&#xff0c;最終都被轉換成bool值(邏輯值)操作。0、null轉換為false&#xff0c;而所有非零、非false、非null值轉換為true&#xff1b;然后進行運算。邏輯運算…

python-list:列表-元組-字符串

列表 “列表”是一個值&#xff0c;它包含多個字構成的序列。術語“列表值”指的是列表本身&#xff08;它作為一個值&#xff0c;可以保存在變量中、傳遞給函數&#xff09;--&#xff1a;按下標取值、切片、for循環、用于len()以及in not in等 list [aa,bb,cc,dd]是一個簡單的…

創建相似對象,就交給『工廠模式』吧

源碼&#xff1a; 源代碼C# 系列導航&#xff1a; 目錄 定義&#xff08;Factory Pattern&#xff09;&#xff1a; 用來創建目標對象的類&#xff0c;將相似對象的創建工作統一到一個類來完成。 一、簡單工廠模式&#xff1a; 代碼&#xff1a; /// <summary>/// 產品枚…

《ASP.NET Core 6框架揭秘》實例演示[26]:跟蹤應用接收的每一次請求

很多人可能對ASP.NET Core框架自身記錄的診斷日志并不關心&#xff0c;其實這些日志對糾錯排錯和性能監控提供了很有用的信息。如果需要創建一個APM&#xff08;Application Performance Management&#xff09;系統來監控ASP.NET Core應用處理請求的性能及出現的異常&#xff…

C語言循環為1404的循環,考試,求大神幫忙,C語言,小弟感激不盡

若有定義語句&#xff1a;int a10; double b3.14;&#xff0c;則表達式Aab值的類型是___________。  (1)A).char B)int C) double D)float(2)若有定義語句&#xff1a;int x12,y8,z;&#xff0c;在其后執行語句z0.9x/y;&#xff0c;則z的值為___________。A)1.9 B)1 C)2 D)2.…

js題集19

1.實現斐波那契數列。達到題目中的效果。不知道斐波那契數列是啥的請自行百度。 function fibonacci(){ } var ffibonacci(); for(var i0;i<10;i){ console.log(f()); } //output:按順序輸出斐波那契數列的數字。 eg&#xff1a; 1 2 3 5 8 13 21 34 55 89轉載于:https://ww…

阿里云Maven鏡像配置

2019獨角獸企業重金招聘Python工程師標準>>> <mirror><id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> …

c語言中有12個球,數學老師做不出來的一道邏輯推理題

同志們 那個球不一定輕啊正確的是平分三份 取兩分稱if(平)。。。。。。在未稱過的4球中取兩個放左邊 和標準的球稱(稱過的球一定標準)。。。。。。if(平)。。。。。。。。。。。。在兩次都未稱過的球中取一個 和標準的稱。。。。。。。。。。。。if(平)。。。。。。。。。。。。…

WPF 實現彈幕效果

WPF 實現彈幕效果控件名&#xff1a;BarrageExample作者&#xff1a;WPFDevelopersOrg原文鏈接&#xff1a; https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用大于等于.NET40&#xff1b;Visual Studio 2022;項目使用 MIT 開源許可協議&#xff1b;此篇代碼目的只…

js題集23

1.實現函數--defaultArguments 功能如下&#xff1a; function add(a,b) { return ab;}; var add_ defaultArguments(add,{b:9}); add_(10); // returns 19 add_(10,7); // returns 17 add_(); // returns NaN add_ defaultArguments(add_,{b:3, a:2}); add_(10); // returns…

iteritems()與items()

iteritems&#xff1a;以迭代器對象返回字典鍵值對 item:以列表形式返回字典鍵值對 >>> dic {a:3,c:1,b:2} >>> print dic.iteritems() <dictionary-itemiterator object at 0x7fa381599628> >>> print dic.items() [(a, 3), (c, 1), (b, 2)…