最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Oracle學(xué)習(xí)筆記 實(shí)現(xiàn)查詢(xún)From子句,where子句,order by子句

2023-03-10 13:56 作者:阿彥絕地反擊  | 我要投稿

day01.目標(biāo)

1. 安裝Oracle,配置環(huán)境

2. 實(shí)現(xiàn)查詢(xún)From子句

3. 實(shí)現(xiàn)查詢(xún)where子句

4. 實(shí)現(xiàn)查詢(xún)order by子句



一、環(huán)境安裝

1. 登錄:以管理員身份登錄

sqlplus 登錄名/密碼

管理員身份登錄:sqlplus system/123456

2. 登錄后,導(dǎo)入案例。下載scott.sql文件,執(zhí)行下面一行的命令

SQL>@"E:\文檔\oracle\java 19\day01\script\scott.sql";

此時(shí)我們擁有非管理員的用戶(hù):scott

3. 激活scott的賬號(hào),激活用scott可登錄

alter user scott identified by tiger;

alter user 登錄 identified by 登錄密碼;

? ?此時(shí)如果成功:

SQL> show user

顯示:USER 為 "SCOTT"

4. 退出system管理登錄,重新以scott/tiger登錄

C:\..\sqlplus scott/tiger

登錄成功

SQL> desc dept;

如成功


名稱(chēng)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 是否為空? 類(lèi)型

? ----------------------------------------- -------- ------------------


? DEPTNO? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NOT NULL NUMBER(2)

? DNAME? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? VARCHAR2(14)

? LOC? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? VARCHAR2(13)

---------------------------------------------------------------------------------------------

二、sql命令

0. 在Oracle環(huán)境下清空屏幕

SQL> host cls;

1. 查看表結(jié)構(gòu)

SQL> desc 表名;

例如: desc dept; 查看dept部門(mén)表的表結(jié)構(gòu)

desc emp; 查看emp員工表的表結(jié)構(gòu)

2.專(zhuān)業(yè)詞匯

數(shù)據(jù)庫(kù):存儲(chǔ)數(shù)據(jù)的倉(cāng)庫(kù)。

數(shù)據(jù)存儲(chǔ)經(jīng)歷的階段

人工階段 -- 很久很久以前...有一個(gè)屋子放置一臺(tái)(巨大個(gè)的)計(jì)算機(jī),用于實(shí)現(xiàn)科學(xué)計(jì)算。

文件階段 -- 用文件實(shí)現(xiàn)【永久存儲(chǔ)】

數(shù)據(jù)庫(kù)階段--用數(shù)據(jù)庫(kù)實(shí)現(xiàn)存儲(chǔ)

常見(jiàn)關(guān)系型數(shù)據(jù)庫(kù)

DB2 -- IBM

Oracle -- Oracle公司(甲骨文)

Sql Server -- 微軟

MySQL -- Oracle公司


java程序猿必備關(guān)系數(shù)據(jù)庫(kù):Oracle\MySql

數(shù)據(jù)庫(kù)分類(lèi)

非關(guān)系型數(shù)據(jù)庫(kù): 后續(xù)課程有說(shuō)

關(guān)系型: 層次結(jié)構(gòu)、網(wǎng)狀結(jié)構(gòu)、關(guān)系型數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)系統(tǒng)

DB -- 數(shù)據(jù)庫(kù)

RDB -- 關(guān)系型數(shù)據(jù)庫(kù)

RDBMS -- 關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)

數(shù)據(jù)庫(kù)存儲(chǔ)的基本單位

表(實(shí)體描述) -- class Student{... ...}

字段(列) -- 屬性

值(行) -- 實(shí)體對(duì)象值

dept表 列

行 DEPTNO DNAME? ? ? ? ? ? ? ? ? ? ? ? LOC

------- ---------------------------- --------------------------

? ? 10 ACCOUNTING? ? ? ? ? ? ? ? ? ?NEW YORK

? ? ? 20 RESEARCH? ? ? ? ? ? ? ? ? ? ?DALLAS

? ? ? 30 SALES? ? ? ? ? ? ? ? ? ? ? ? CHICAGO

? ? ? 40 OPERATIONS? ? ? ? ? ? ? ? ? ?BOSTON

Oracle常見(jiàn)數(shù)據(jù)類(lèi)型:

數(shù)值型 number(有效長(zhǎng)度,小數(shù)點(diǎn)保留位數(shù)); 舉栗:number(10,2) 12345678.12?

字符

可變長(zhǎng)度字符 varchar2(有效長(zhǎng)度) 舉栗:varchar2(5) 'ab' 實(shí)際存 'ab'

? ? ? varchar2(5) 'abcde' 最多存5個(gè)

不可變長(zhǎng)度字符 char(有效長(zhǎng)度) 舉栗:char(5) 'ab' 實(shí)際存 'ab? ?'

? ? ? char(5) 'abcde' 最多存5個(gè)

char當(dāng)實(shí)際存儲(chǔ)字符不足時(shí)補(bǔ)空格,varchar2按實(shí)際字符長(zhǎng)度存儲(chǔ)不補(bǔ)空格

日期 date ... 月/日/年 小時(shí):分鐘:秒 ...


3.查詢(xún)一個(gè)表的內(nèi)容:from子句

前導(dǎo)條件:登錄名scott 密碼tiger

3.1 查詢(xún)dept部門(mén)表的所有字段信息

select * from dept;

*表示所有的列字段: deptNo,dName,loc


3.2 查詢(xún)顯示emp員工表中:?jiǎn)T工編號(hào)、員工姓名、工資、獎(jiǎng)金、部門(mén)編號(hào)

語(yǔ)法:select 列名1,列名2,...,列名N from 表名;

練習(xí):select empNo,eName,sal,comm,deptNo from emp;

3.3 查詢(xún)顯示dept部門(mén)的:部門(mén)編號(hào),部門(mén)名稱(chēng),所在地區(qū)

select deptNo,dName,loc from dept;


--【總結(jié)】from子句-------------------------------------------------------------------------------------

查詢(xún)一個(gè)表的所有字段:字段名可用* 代替。


select 列名1,列名2,... ... ,列名N from 表名;

select? * from 表名;


4. from 子句進(jìn)階

4.1 別稱(chēng),給當(dāng)前字段或這個(gè)表起外號(hào):顯示部門(mén)時(shí)統(tǒng)一部門(mén)字段標(biāo)題dXxx的格式。

語(yǔ)法:select 列名1? 別稱(chēng)1,列名2? 別稱(chēng)2,... ,列名N 別稱(chēng)N from 表名;

默認(rèn):select deptNo,dName,loc from dept;?

練習(xí):select deptNo dNo,dName,loc dLoc from dept;

思考:

員工表emp里有字段:empNo,eName...deptNo(部門(mén)編號(hào))

部門(mén)表dept里有字段:deptNo(部門(mén)編號(hào)),dName,loc?

列字段同名了,此時(shí)必須用別稱(chēng)來(lái)區(qū)分


4.2 數(shù)學(xué)運(yùn)算:+ - * / 求當(dāng)前員工的年薪(忽略獎(jiǎng)金) = 月薪*12. 顯示員工姓名、月薪、年薪

select eName,sal, sal*12 from emp; 顯示標(biāo)題eName,sal,sal*12


select eName,sal, sal*12 yearSal from emp; 顯示標(biāo)題eName,sal,yearSal?


思考:?jiǎn)T工當(dāng)月實(shí)發(fā)工資=工資sal+提成comm ,顯示員工姓名和實(shí)發(fā)工資

select eName,sal,comm,sal+comm from emp; 此時(shí)沒(méi)獎(jiǎng)金的人沒(méi)有實(shí)發(fā)工資,

oracle中 運(yùn)算數(shù)1+運(yùn)算數(shù)2 任何1個(gè)是null結(jié)果是null

當(dāng)某個(gè)員工沒(méi)有績(jī)效獎(jiǎng)金comm是,工資sal+獎(jiǎng)金comm顯示結(jié)果是null

沒(méi)有控制處理時(shí):select eName,sal,comm,sal+comm money from emp;

ENAME? ? ? ? ? ? ? ? ? ? ? ?SAL? ? ? ?COMM? ? ? MONEY

-------------------- ---------- ---------- ----------

SMITH ? ? 800

... ...

4.3 null值的處理,查詢(xún)獎(jiǎng)金是null時(shí)依然計(jì)算實(shí)發(fā)工資?

語(yǔ)法:nvl(字段,新值) 功能:將字段里時(shí)null的內(nèi)容替換成新值

s

練習(xí):將獎(jiǎng)金是null的顯示0

select eName,nvl(comm,0) from emp;

練習(xí):當(dāng)獎(jiǎng)金是Null時(shí)依然計(jì)算實(shí)發(fā)工資(sal+comm)

select eName,sal,nvl(comm,0) cm, sal+nvl(comm,0) money from emp;

顯示結(jié)果:

ENAME? ? ? ? ? ? ? ? ? ? ? ?SAL? ? ? ? ?CM? ? ? MONEY

-------------------- ---------- ---------- ----------

SMITH? ? ? ? ? ? ? ? ? ? ? ?800? ? ? ? ? 0? ? ? ? 800

... ...

練習(xí):查詢(xún)所有員工年薪和年度提成(顯示員工姓名、年薪y(tǒng)earSal、年度提成yearComm)

ename sal*12 nvl(comm,0)*12==對(duì)


select eName, sal*12 , nvl(comm,0)*12? from emp;

? ? ? 完美要求可加入別稱(chēng)

select eName, sal*12 yearSal, nvl(comm,0)*12 yearComm? from emp;


4.4 字符鏈接。 當(dāng)需要有顯示前綴、后綴、中間鏈接賦的時(shí)候可用

練習(xí):顯示 部門(mén)名_所在地區(qū)

java的字符鏈接:? "abc"+"123" 結(jié)果是 "abc123"

oracle的字符鏈接:'abc'||'123' 結(jié)果是 'abc123' select 'abc'||'123' from dual;

答:select dName||'_'||loc from dept;

練習(xí):要求姓名以 Mr.開(kāi)頭


答:select 'Mr.'||eName,sal from emp;

思考:顯示 abc 成 'abc' 即顯示結(jié)果中有'號(hào),特殊符號(hào)的處理

思考答1:select '''abc'''? from dual;

思考答2:select ''''||'abc'||'''' from dual;


5、where子句 :有條件查詢(xún) ,表達(dá)滿(mǎn)足什么條件顯示數(shù)據(jù)。結(jié)合from使用


5.1 查工資大于1000的員工

select * from emp where sal>=1000; --顯示當(dāng)前工資在1000及以上員工的所有字段

select eName,sal from emp where sal>=1000; --查詢(xún)工資大于1000及以上員工的姓名和工資

5.2 姓名是WARD的員工

select * from emp where eName = 'WARD';

select * from emp where eName = 'Ward'; 還能出來(lái)結(jié)果嗎?答不出,'值'區(qū)分大小寫(xiě)


5.3 查詢(xún)部門(mén)所在地區(qū)紐約的部門(mén)信息是什么?

select * from dept where loc='NEW YORK';



5.4 查沒(méi)獎(jiǎng)金的員工信息。

你們認(rèn)為:select eName,comm from emp where comm = null;

答案1:select eName,comm from emp where nvl(comm,0) = 0 ;



6、order by 子句:排序,按指定規(guī)則排序

6.1 按部門(mén)編號(hào)從大到寫(xiě)顯示部門(mén)信息

思路:排序依據(jù)是部門(mén)編號(hào),排序規(guī)則是從大到小

答:select * from dept order by deptNo desc;? --desc降序從大到小的排序規(guī)則。asc升序

6.2 按部門(mén)名稱(chēng)升序排列顯示

答: select * from dept order by dname asc;



--【day01總結(jié)】---------------------------------------------------------------------------

?查部門(mén)表的所有內(nèi)容:

select * from dept;

select deptNo,dname,loc from dept;

?查部門(mén)編號(hào)是20的部門(mén)

select * from dept where deptNo=20;

?查部門(mén)所在區(qū)域是紐約的部門(mén)

select * from dept where loc='NEW YORK';

?查部門(mén)信息按部門(mén)編號(hào)的降序顯示

select * from dept order by deptNo desc;


Oracle學(xué)習(xí)筆記 實(shí)現(xiàn)查詢(xún)From子句,where子句,order by子句的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
苏尼特左旗| 大洼县| 仙游县| 苍梧县| 共和县| 凤冈县| 图们市| 金华市| 孝感市| 屯留县| 集贤县| 崇州市| 修武县| 保定市| 七台河市| 永州市| 阿图什市| 开远市| 阿拉善右旗| 泰宁县| 陵水| 宝坻区| 新邵县| 儋州市| 南安市| 织金县| 绥江县| 游戏| 灵丘县| 望城县| 阳春市| 浪卡子县| 塔河县| 太原市| 上饶县| 莱芜市| 筠连县| 日土县| 六安市| 甘泉县| 淮安市|