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

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

Oracle打開SQL文件,外鍵個(gè)人理解,nvl,decode函數(shù),創(chuàng)建自定義數(shù)據(jù)庫(kù)等【詩(shī)書畫唱】

2021-03-04 17:41 作者:詩(shī)書畫唱  | 我要投稿

內(nèi)容概括:


Oracle創(chuàng)建自己命名的數(shù)據(jù)庫(kù)的方法?

decode

目前一般使用可以不同用戶登錄,一起管理的系統(tǒng)自帶的ORCL數(shù)據(jù)庫(kù)

例子

講義

dual:廢表,不存在的表

自連接:一個(gè)表查兩次

作業(yè)

1、創(chuàng)建一個(gè)學(xué)生信息表stuinfo,包含學(xué)號(hào),姓名,生日(日期)。請(qǐng)通過(guò)一個(gè)sql語(yǔ)句顯示【姓名】的學(xué)號(hào)是【學(xué)號(hào)】,生日是【轉(zhuǎn)換成字符串的生日字段】。

2、創(chuàng)建一個(gè)商品表,包含編號(hào),商品名稱,商品價(jià)格,商品類型(食品,書籍和電器)。通過(guò)一個(gè)sql語(yǔ)句給商品類型是書籍的商品打1折,給商品類型是食品的商品打2.5折,給商品類型是電器的商品便宜500元。

3、創(chuàng)建一個(gè)成績(jī)表scoreinfo,包含編號(hào),科目,成績(jī)(成績(jī)可以為空)。顯示這個(gè)表中的所有成績(jī),當(dāng)成績(jī)?yōu)榭諘r(shí),顯示-1。


關(guān)于空值處理函數(shù)nvl的介紹


關(guān)于外鍵的添加和自己的理解


個(gè)人對(duì)為什么Oracle要授權(quán)才可以操作的情況的理解


Oracle中打開自己寫好并且保存好的SQL代碼的文件的方法(gif圖演示)

各種函數(shù)的運(yùn)用舉例(運(yùn)用舉例是我認(rèn)為很好的學(xué)習(xí)理解記憶等的方法)

目前一般使用可以不同用戶登錄,一起管理的系統(tǒng)自帶的ORCL數(shù)據(jù)庫(kù)






作業(yè) START




1、創(chuàng)建一個(gè)學(xué)生信息表stuinfo,包含學(xué)號(hào),姓名,生日(日期)。

請(qǐng)通過(guò)一個(gè)sql語(yǔ)句顯示【姓名】的學(xué)號(hào)是【學(xué)號(hào)】,

生日是【轉(zhuǎn)換成字符串的生日字段】。




? ? ? ? ? ? ? ? ? ? ? ?

create table stuinfo(

? ? id number primary key,

? ? name varchar2(30) not null,

? ? brithday date

);


insert into? stuinfo values(1,'詩(shī)書畫唱',to_date('2020-06-06','yyyy-mm-dd'));

insert into? stuinfo values(2,'三連',to_date('2020-07-07','yyyy-mm-dd'));

insert into? stuinfo values(3,'關(guān)注',to_date('2020-09-09','yyyy-mm-dd'));

select * from stuinfo

答:

select concat(concat(concat(name,'的學(xué)號(hào)是'),concat(id,',生日是'))?

,to_char(brithday,'yyyy-mm-dd'))txt from stuinfo;

2、創(chuàng)建一個(gè)商品表,包含編號(hào),商品名稱,商品價(jià)格,

商品類型(食品,書籍和電器)。

通過(guò)一個(gè)sql語(yǔ)句給商品類型是書籍的商品打1折,

給商品類型是食品的商品打2.5折,給商品類型是電器的商品便宜500元。


? ? ? ? ? ? ? ? ? ? ? ?

create table sp(

? ? id number primary key,

? ? name varchar2(30) not null,

? ? price number(10,2),

? ? type varchar2(30) check(type='食品' or type='書籍' or type='電器')

);


select * from sp

insert into? sp values(1,'辣條',0.50,'食品');

insert into? sp values(2,'《殺死一只知更鳥》',18.5,'書籍');

insert into? sp values(3,'冰箱',1000.00,'電器');


答:

select name,type,price,decode(type,'書籍',price*0.1,'食品',price*0.25,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '電器',price -500,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? price) from sp;








3、創(chuàng)建一個(gè)成績(jī)表scoreinfo,包含編號(hào),科目,

成績(jī)(成績(jī)可以為空)。顯示這個(gè)表中的所有成績(jī),當(dāng)成績(jī)?yōu)榭諘r(shí),顯示-1。

? ? ? ? ? ? ? ? ? ? ?

create table scoreinfo(

? ? id number primary key,

? ? km varchar2(30) not null,

? ? cj number(4,1)

? ?

);


insert into scoreinfo values(1,'Java',null);

insert into scoreinfo values(2,'python',100.0);


drop table scoreinfo

答:

select id,km,cj,nvl(cj,-1)? as result from scoreinfo;





--Decode函數(shù)使用示例:


create table emp(

? ? id number primary key,

? ? ename varchar2(30) not null,

? ? job varchar2(30),

? ? salary number(10,2)

);

insert into emp values(1,'John','項(xiàng)目經(jīng)理',15000);

insert into emp values(2,'Tom','開發(fā)人員',18000);

insert into emp values(3,'Kite','開發(fā)人員',18000);

insert into emp values(4,'巴菲特','CEO',40000);

insert into emp values(5,'Mop','后勤',6000);

--如果是CEO,保持原來(lái)的工資,如果是開發(fā)人員,加薪10%

--如果是項(xiàng)目經(jīng)理,加薪5%,如果是后勤,加薪500

select ename,job,salary, decode(job,'CEO',salary,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '開發(fā)人員',salary*1.1,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '項(xiàng)目經(jīng)理',salary*1.05,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '后勤',salary+500,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? salary)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? from emp


作業(yè) END

關(guān)于空值處理函數(shù)nvl的介紹 START

OraclePL/SQL中的一個(gè)函數(shù)。

格式為:

NVL(string1,replace_with)

功能:如果string1為NULL,則NVL函數(shù)返回replace_with的值,否則返回string1的值,如果兩個(gè)參數(shù)都為NULL,則返回NULL。

注意事項(xiàng):string1和replace_with必須為同一數(shù)據(jù)類型,除非顯式的使用TO_CHAR函數(shù)進(jìn)行類型轉(zhuǎn)換。

例:NVL(TO_CHAR(numeric_column),'somestring')其中numeric_column代指某個(gè)數(shù)字類型的值。

例:nvl(yanlei777,0)>0

NVL(yanlei777,0)的意思是如果yanlei777是NULL,則取0值

通過(guò)查詢獲得某個(gè)字段的合計(jì)值,如果這個(gè)值為null將給出一個(gè)預(yù)設(shè)的默認(rèn)值





關(guān)于空值處理函數(shù)nvl的介紹?END

有if-then-else判斷功能的DECODE函數(shù)的科普 START





有if-then-else判斷功能的DECODE函數(shù)的科普 END



關(guān)于外鍵的添加和自己的理解?START


【外鍵的話,是保存副表的內(nèi)容的完整性的。比如副表(我理解我為補(bǔ)充表)

比如類型表,如果是組合查詢時(shí)的下拉框的話,就是查詢類型表。使用了

外鍵把主表的信息表和類型表聯(lián)系起來(lái)后,就是

主表的typeid的數(shù)值中只會(huì)出現(xiàn)副表中出現(xiàn)的加了主鍵的編號(hào)id列

<int類型,有主鍵>出現(xiàn)的數(shù)值,添加數(shù)據(jù)到信息表的時(shí)候,

有一列typeid<int類型,無(wú)主鍵>,

防止操作員添加了無(wú)type表的id值到typeid列中,那么就是無(wú)效的數(shù)據(jù),

加了外鍵后,這種無(wú)效的數(shù)據(jù)是添加不到信息表里的。)】





【直接創(chuàng)建完整約束的表(寫項(xiàng)目的時(shí)候,一般就是用這種方法建表。

同時(shí)建表的時(shí)候,一般用管理員的身份創(chuàng)建表的時(shí)候,不用授權(quán),但是

普通用戶要。這是為了安全,2個(gè)不同的公司,互相合作時(shí),交互時(shí)授權(quán)后

才能訪問(wèn)更安全)



create table spInformation?


(


id number primary key,


name varchar2(30),


price number(9,2),


typeid int


);


create table spType


(id number primary key,


name varchar2(30));



--刪除表

drop table spInformation;

drop table spType;


--加外鍵

【表創(chuàng)建成功后再添加外鍵約束

添加外檢約束 :alter table 從表表名 add constraint?

外鍵約束名稱 foreign key(列名) references 主表名稱(主鍵列名)】

alter table spInformation add constraint

?FK_spInformation foreign key(typeid) references spType(id);

——————————————————————————————————————————————————————


---建基本的表(一般是不會(huì)去用這種方法建表的):


create table spInformation?


(


id number,


name varchar2(30),


price number(9,2),


type varchar2(30)


);


create table spType


(id number primary key,


name varchar2(30));


--查詢表


select * from spInformation;?


select * from spType;?




--通過(guò)sql語(yǔ)句給商品信息表的id添加主鍵約束

alter table spInformation?

add constraint PK_id primary key(id);

--name添加唯一約束

ALTER TABLE spInformation

ADD CONSTRAINT unique_spInformation

UNIQUE (name)?

--id添加外鍵約束

【表創(chuàng)建成功后再添加外鍵約束

添加外檢約束 :alter table 從表表名 add constraint?

外鍵約束名稱 foreign key(列名) references 主表名稱(主鍵列名)】

alter table spType add constraint

?FK_spInformation foreign key(id) references spInformation(id);

--價(jià)格添加檢查約束(1-99999999元)

Alter table spInformation

Add constraint CK_spInformation check(99999999>price and price>=1)

--在商品信息表和商品類型表中輸入數(shù)據(jù)進(jìn)行測(cè)試。

insert into spInformation values(1,'詩(shī)書畫唱牌商品',999.99,'名牌類');


insert into spType values(1,'名牌類');

--select * from user_tablespaces ;

--select * from user_tablespaces ;










關(guān)于外鍵的添加和自己的理解?END

個(gè)人對(duì)為什么Oracle要授權(quán)才可以操作的情況的理解 START


【直接創(chuàng)建完整約束的表(寫項(xiàng)目的時(shí)候,一般就是用這種方法建表。

同時(shí)建表的時(shí)候,一般用管理員的身份創(chuàng)建表的時(shí)候,不用授權(quán),但是

普通用戶要。這是為了安全,2個(gè)不同的公司,互相合作時(shí),交互時(shí)授權(quán)后

才能訪問(wèn)更安全)



create table spInformation?


(id number primary key,


name varchar2(30),

? ? ??

price number(9,2),


typeid int);

create table spType

(id number primary key,

name varchar2(30));




個(gè)人對(duì)為什么Oracle要授權(quán)才可以操作的情況的理解?END


Oracle中打開自己寫好并且保存好的SQL代碼的文件的方法(gif圖演示) START




Oracle中打開自己寫好并且保存好的SQL代碼的文件的方法(gif圖演示) END



講義 START

dual:廢表,不存在的表

自連接:一個(gè)表查兩次



講義?END

例子 START?

各種函數(shù)的運(yùn)用舉例(運(yùn)用舉例是我認(rèn)為很好的學(xué)習(xí)理解記憶等的方法):

--四舍五入

select round(3.29,1) from dual;

--截尾

select trunc(3.29,1) from dual;

--取余數(shù)

select mod(8,2) from dual;

select mod(3,7) from dual;

--轉(zhuǎn)換大小寫

select lower('Hello,WORLD') from dual;

select upper('Hello,WORLD') from dual;

--連接兩個(gè)字符串

select concat('app','le') from dual;

--將product表中的商品名稱和價(jià)格拼接成一個(gè)字符串

select concat(pname,price) txt from product;

--顯示Product表中的商品名稱和商品價(jià)格,商品價(jià)格保留一位小數(shù)

select pname,round(price,1) from product;

--截取字符串

--第一個(gè)數(shù)字表示需要截取的字母的下標(biāo)(從1開始的)

--第二個(gè)數(shù)字表示截取幾個(gè)字母

select substr('apple',3,2) from dual;

--截取userinfo表中的act的前兩個(gè)字母

select substr(act,1,2) from userinfo;

--獲取字符串的長(zhǎng)度

select length('abc') from dual;

--顯示userinfo表中所有act的長(zhǎng)度

select length(act) from userinfo;

--填充

--第二個(gè)參數(shù)表示填充完以后的字符串的長(zhǎng)度

--如果長(zhǎng)度不夠,就在左邊填充指定的字符

select rpad('hello',7,'@') from dual;

--在product表的price前面加上¥

select concat('¥',price) from product;

select lpad(price,(length(price) + 2),'¥') from product;

--去掉兩端的空格

select trim('? h? ?p? ?') from dual;

--顯示當(dāng)前日期

select sysdate from dual;

--日期和字符串的轉(zhuǎn)換

--將當(dāng)前日期顯示為yyyy-mm-dd

select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual;

--將userinfo表中的生日顯示為yyyy-mm-dd的形式

select to_char(birth,'yyyy-mm-dd') from userinfo

--將字符串轉(zhuǎn)換成日期

--往userinfo表中插入一條數(shù)據(jù)

insert into userinfo?

values(8,'test',888,to_date('1990-12-4','yyyy-mm-dd'));

--空值處理函數(shù)

select nvl(price,0) from product;


create table score(

? ? id number primary key,

? ? sname varchar2(30) not null,

? ? subname varchar2(30),

? ? score number

);

--分支處理函數(shù),相當(dāng)if elseif else

--顯示score表中的所有成績(jī),如果是HTML,就減少5分,

--如果是C語(yǔ)言就加5分,如果spring就加10分

select subname,score,decode(subname,'HTML',score - 5,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 'C',score + 5,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 'spring',score + 10,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? score) from score;

create table emp(

? ? id number primary key,

? ? ename varchar2(30) not null,

? ? job varchar2(30),

? ? salary number(10,2)

);

insert into emp values(1,'John','項(xiàng)目經(jīng)理',15000);

insert into emp values(2,'Tom','開發(fā)人員',18000);

insert into emp values(3,'Kite','開發(fā)人員',18000);

insert into emp values(4,'巴菲特','CEO',40000);

insert into emp values(5,'Mop','后勤',6000);

--如果是CEO,保持原來(lái)的工資,如果是開發(fā)人員,加薪10%

--如果是項(xiàng)目經(jīng)理,加薪5%,如果是后勤,加薪500

select ename,job,salary, decode(job,'CEO',salary,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '開發(fā)人員',salary*1.1,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '項(xiàng)目經(jīng)理',salary*1.05,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? '后勤',salary+500,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? salary)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? from emp

create table stuinfo(

? ? id number primary key,

? ? stuname varchar2(30) not null,

? ? deptname varchar2(30)

);

insert into stuinfo values(1,'小華','計(jì)算機(jī)系');

insert into stuinfo values(2,'小紅','舞蹈系');

insert into stuinfo values(3,'小麗','舞蹈系');

insert into stuinfo values(4,'小明','舞蹈系');

insert into stuinfo values(5,'小黑','計(jì)算機(jī)系');

insert into stuinfo values(6,'KKK','音樂系');

--查詢跟小紅在同一個(gè)系的所有的同學(xué)

--方法一:嵌套查詢

select id,stuname from stuinfo

where deptname=(select deptname from stuinfo

where stuname = '小紅')

--方法二:自查詢

select a.stuname from stuinfo a,stuinfo b

where a.deptname = b.deptname

and b.stuname = '小紅'

--查詢emp表中跟Tom是同一個(gè)JOB的員工的姓名

select b.ename from emp a, emp b where a.job=a.job and?

a.ename='Tom'


例子 END





目前一般使用可以不同用戶登錄,一起管理的系統(tǒng)自帶的ORCL數(shù)據(jù)庫(kù) START

目前一般使用可以不同用戶登錄,一起管理的系統(tǒng)自帶的ORCL數(shù)據(jù)庫(kù) END



Oracle創(chuàng)建自己命名的數(shù)據(jù)庫(kù)的方法 START

推薦:https://blog.csdn.net/yong5241200/article/details/11880383(這篇文章中的方法我沒用,推薦的原因就是讓讀者知道有這么一回事)


oracle database configuration assistant




Oracle創(chuàng)建自己命名的數(shù)據(jù)庫(kù)的方法 END






Oracle打開SQL文件,外鍵個(gè)人理解,nvl,decode函數(shù),創(chuàng)建自定義數(shù)據(jù)庫(kù)等【詩(shī)書畫唱】的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
永年县| 华安县| 乐清市| 盐山县| 闽清县| 巩义市| 嵩明县| 奇台县| 永康市| 荆州市| 天柱县| 阿巴嘎旗| 桐城市| 连城县| 都昌县| 临朐县| 连江县| 东宁县| 安泽县| 根河市| 海淀区| 伊宁县| 门源| 竹北市| 子洲县| 康定县| 南城县| 高淳县| 车险| 湘乡市| 新昌县| 乳源| 治多县| 三门峡市| 潜山县| 吴堡县| 桑日县| 仪征市| 华阴市| 龙泉市| 德格县|