oracle数据库学习笔记心得.docx
- 文档编号:29524405
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:26
- 大小:22KB
oracle数据库学习笔记心得.docx
《oracle数据库学习笔记心得.docx》由会员分享,可在线阅读,更多相关《oracle数据库学习笔记心得.docx(26页珍藏版)》请在冰豆网上搜索。
oracle数据库学习笔记心得
select*|字段表名
from表名
where布尔表达式【条件】
externalcandidate职员相关信息
contractrecruiter猎头公司
查看表里所有字段describe[描述]contractrecruiter
selectcname,nperecentagechargefromcontractrecruiter
不显示原来名字,显示现在名字【用AS】
selectcnameas"RecruiterName",nperecentagechargeas"HireFees"fromcontractrecruiter
不显示原来名字,显示现在名字【可不用AS】
selectcname"RecruiterName",nperecentagecharge"HireFees"fromcontractrecruiter
【双引号是否写】
双引号是为了区分大小写
职位表position
select*fromposition
缺额运算:
[想减]
select
VDESCRIPTION,
nbudgetedstrength,
NBUDGETEDSTRENGTH-NCURRENTSTRENGTH,
NYEAR
fromposition
select
VDESCRIPTION"Potion",
nbudgetedstrength"BudgetedStrength",
NBUDGETEDSTRENGTH-NCURRENTSTRENGTH"Vacancies",
NYEAR"Year"
fromposition
显示非重复运行
查询来源地的人数describeexternalcandidate
查看职员城市名字selectccityfromexternalcandidate
查看职员城市名字【名字不重复,插入一个关键字:
distinct】
selectdistinctccity,cstatefromexternalcandidate
运算符:
两列
selectvfirstname,vlastnamefromexternalcandidate
字段拼接
selectvfirstname||vlastnamefromexternalcandidate
selectvfirstname||''||vlastnamefromexternalcandidate
学校
describecollege
查看所有学校
select*fromcollege
查看只是加利福尼亚的学校
select*fromcollegewherecstate='California'
一个条件
selectvfirstname,vlastname,dbirthdate,ntestscore
fromexternalcandidate
wheredbirthdate>='01-1月-70'
加上第二个条件[符合条件,逻辑与]:
selectvfirstname,vlastname,dbirthdate,ntestscore
fromexternalcandidate
wheredbirthdate>='01-1月-70'andntestscore>=80
求反,在where后面加上个【not】
selectvfirstname,vlastname,dbirthdate,ntestscore
fromexternalcandidate
wherenotdbirthdate>='01-1月-70'andntestscore>=80
describenewspaper
select*fromnewspaper
匹配模式的运算符:
like
通配符:
%代表1~n个字符;_代表一个字符
select*fromnewspaper
wherecnewspapernamelike'%Texas%'
andvcontactpersonlike'Jackson%'
'Jackson%'以Jackson大头的。
'%Jackson'以Jackson结尾的。
selectvfirstname,vlastnamefromexternalcandidate
名字第二个字母是“a”
selectvfirstname,vlastnamefromexternalcandidate
wherevfirstname'_a%'
想查名字的最后一个字母是%的人:
必须利用转义字符【\】
selectvfirstname,vlastnamefromexternalcandidate
wherevfirstname'%\%'[前面%代表通配符,而后面%代表就是%本身!
]
escape'\'[注明那个字符时作为转义字符用的]
即【空值】或者【null值】
面试时间
selectvfirstname,vlastname,dinterviewdate
fromexternalcandidate
wheredinterviewdateisnull//判断字段上是为空的!
selectvfirstname,vlastname,dinterviewdate
fromexternalcandidate
wheredinterviewdateisnotnull//判断字段上是不为空的!
selectvfirstname,vlastname,vemailid,cphone
fromexternalcandidate
wherevemailidisnull
selectvfirstname,vlastname,dbirthdate,ntestscore
fromexternalcandidate
orderbyntestscore[按ntestscore排序,默认是升序;aesc升序desc降序]
selectcname,vaddress
fromcontractrecruiter
orderbycnamedesc
先按照日期降序,然后再按照年龄降序
selectvfirstname,vlastname,dbirthdate,ntestscore
fromexternalcandidate
orderbyntestscoredesc,dbirthdatedesc
作业:
toy数据库
第三章:
1、字符函数
initcap[以大写方式显示字符首字母],lower[转换成小写],upper[转换成大写],ltrim,rtrim
contractrecruiter猎头公司
代码:
select
upper(CNAME)Name,
lower(VADDRESS)Address
fromcontractrecruiter
2、
ABS[绝对值]、
CEIL[返回大于这个数的最小整数]、
FLOOR[截取数值的整数部分]、
POWER[求几次方]、
MOD[返回第一个参数除以第二个参数的余数]、
ROUND[四舍五入]、
TRUNC[]、
SQRT[]
VFIRSTNAME
CPHONE
NTESTSCORE
代码:
SELECT
vfirsTnamevFirstname,
cphonecPhone,
ROUND(ntestscore)Marks
FROMexternalcandidate
wherentestscore>70
3、数据类型转换
varchar2(40)表示可变长度,最长为40
char(40)表示固定长度,固定为40
第四章:
查询多表中数据
1.用等值联接显示两个表中数据
A.【内链接】:
只有满足联接条件的才显示,不联接的不显示
个人表RecruitmentAgencies和公司表ExternalCandidate
Joinon句式格式:
selectvfirstname,cname
fromexternalcandidatejoinrecruitmentagencies
onrecruitmentagencies.cagencycode=externalcandidate.cagencycode
[因为表明太长,所以要给表取一个别名]
selectvfirstname,cname
fromexternalcandidateejoinrecruitmentagenciesr
onr.cagencycode=e.cagencycode
wherentestscore>=80[添加一个where]
Where句式格式:
selectvfirstname,cname
fromexternalcandidatee,recruitmentagenciesr
wheree.cagencycode=r.cagencycode
andntestscore>=80[逻辑与and]
cpositioncode――――表externalcandidate(应聘者
CPOSITIONCODE――――表position(资料VDESCRIPTION)
select
vfirstname,
vlastname
fromexternalcandidateejoinpositionp
one.CPOSITIONCODE=p.CPOSITIONCODE
或者:
select
vfirstname,
vlastname
fromexternalcandidatee,positionp
wheree.CPOSITIONCODE=p.CPOSITIONCODE
2、自然联接【两个表中有且仅有同名的条件】
有且仅有:
select
vfirstname,
vlastname
fromexternalcandidatenaturaljoinposition
非有且仅有:
(不能完成)
select
vfirstname,
cname
fromexternalcandidatenaturaljoinrecruitmentagencies
3、交叉连接
4、外联接{只有joinon句式}
select
co.ccollegecode,
co.ccollegename,
ca.ccampusrecruitmentcode
fromcollegecojoincampusrecruitmentca
onco.ccollegecode=ca.ccollegecode
我们一般都用outerjoinon
left|right|fullouterjoin
select
co.ccollegecode,
co.ccollegename,
ca.ccampusrecruitmentcode
fromcollegecoleftouterjoincampusrecruitmentca
onco.ccollegecode=ca.ccollegecode
这种句式是在Oracle在身上用的。
select
co.ccollegecode,
co.ccollegename,
ca.ccampusrecruitmentcode
fromcollegeco,campusrecruitmentca
whereco.ccollegecode=ca.ccollegecode(+)
作业:
第5课
Externalcandidate表
Monthlysalary表
Newspaper表
Newsad表【投广告】
Recruitmentagencies推荐公司
一、多行函数:
Avg:
返回n个数据的平均值
selectavg(列名)from(表名)where(条件)
select
avg(ntestscore)
fromexternalcandidate
Sun:
返回n个值的总和
selectsun(列名)from(表名)where(条件)
select
sum(NMONTHLYSALARY)
fromMonthlysalary
Max:
返回一列中的最大值
selectmax(列名)from(表名)
select
max(ntestscore)
fromexternalcandidate
Min:
返回这一列的最小值
selectmin(列名)from(表名)
select
min(ntestscore)
fromexternalcandidate
Count:
显示查询的行数---------[包括null值]
selectcount(列名)from(表名)where(条件)
select
count(*)
fromexternalcandidate
Stddev:
返回一组值得标准偏差
selectstddev(列名)from(表名)
Variance:
返回一组值的方差
selectVariance(列名)from(表名)
例题:
select
max(NPERCENTAGECHARGE)"MaximumHiringChanges",
min(NPERCENTAGECHARGE)"MinimumHiringChanges",
avg(NPERCENTAGECHARGE)"AvarageHiringChanges"
fromcontractrecruiter
whereccity='Alexandria'
二、组合函数
Groupby:
Select列1,列2
From表名
Where条件
Groupby杯分组的列名
Having条件
select
fromnewsad
where
例题:
select
cnewspapercode"NewspaperCode",
count(cnewsadno)"No.of.Advts.Placed"
fromnewsad
groupbycnewspapercode
select
r.CAGENCYCODE,
count(e.CCANDIDATECODE)
fromrecruitmentagenciesrleftouterjoinexternalcandidatee
onr.CAGENCYCODE=e.CAGENCYCODE
groupbyr.CAGENCYCODE
Having:
后面的条件是对groupby后的条件
现在需要对至少三个申请者的职位进行分析。
要求报表显示“PositionCode”"No.of.Application"列
select
CPOSITIONCODe"PositionCode",
count(ccandidatecode)"No.of.Application"
fromexternalcandidate
groupbyCPOSITIONCODe
havingcount(ccandidatecode)>=3
select
CCITY,
count(VQUALIFICATION)"MBA"
fromexternalcandidate
whereVQUALIFICATION='MBA'
groupbyccity
第6章:
子查询
1、单行子查询
查询面试者中成绩最高的人的姓名,电话号码等信息!
select
vfirstname,
vlastname,
cphone
fromexternalcandidate
wherentestscore=
(selectmax(ntestscore)
fromexternalcandidate
)
2、多行子查询
select
CNEWSPAPERNAME,
vtypeofnewspaper
fromnewspaper
wherecnewspapercodein
(
select
cnewspapercode
fromnewsad
groupbycnewspapercode
havingcount(cnewsadno)>3
)
第7章DDL
1、
以行列形式存储数据------表
按照逻辑次序表示数据或数据字集------视图
自动生成顺序的数值-----序列【每个值都不是重复的】
增强查询性能------索引
为对象分配备选的名字------同义词
2、表----用户表和数据字典
(1)、查看数据库里面的所有用户表:
select*fromuser_table
(2)、命名规则:
以字母开头
(3)、创建表:
createtable表名
(
字段的定义1名称数据类型【名字+长度】约束定义【】默认值,
字段的定义2名称数据类型【名字+长度】约束定义【】默认值,
………………
)
步骤:
(1)确定表名
(2)确定表的属性
(3)确定每个属性的数据类型
(4)确定每个属性的长度
(5)设计创建表的语句
createtablestudents
(
cstudentcodechar(4)notnull,
vfirstnamevarchar2(20)notnull,
vmiddlenamevarchar2(5),
vlastnamevarchar2(20),
vaddressvarchar2(35),
ccitychar(20),
cstatechar(20),
cphontechar(16)
))
创建好后可以通过describestudents来查看
(4)、更改表结构:
添加列,删除列……
altertable表名
add字段定义【添加字段】
altertablestudents
addddateofbirthdatenotnull
modify修改列
altertablestudents
modifyvmiddlenamevarchar2(10)
dropcolume字段名—删除字段名
altertablestudents
dropcolumnddateofbirth
rename<原表名>to<现在表名>
(5)、撤销表---删除表
droptable语句
droptable<表名>
第8章管理表和实施数据完整性DML
查看表中的约束条件:
Select*fromuser_constraints
Wheretable_name=’’
INSERT()UPDATEDELETE()
1、添加表中行
insertinto<表名>[(字段列表)]//字段列表默认情况下是全部字段
values(值列表1—----新一行每个字段的值),
(值列表2—----新一行每个字段的值),
(值列表3—----新一行每个字段的值);
commit;(commit语句是实现永久生效的,;若不添加commit只能是生成预览效果)
值列表与字段列表必须要个数一样,顺序一样!
例题:
insertintorecruitmentagencies
values('0010','HeadHunters','HillStreet','Clevland','Ohio',
'44167-5943','(440)345-8872','(440)345-8943',7,1000);
commit;
2、更新表中的行-------一次只能更改一个表中的数据,但是可以更改不唯一的字段
update<表名>
set字段1=新值1,字段2=新值2,…………
where布尔表达式{可以不写}
例题:
updateemployee
setcdepartmentcode=’0009’
whereCEMPLOYEECODE=’000015’
例题:
updateexternalcandidate
setNTESTSCORE='79'
whereCCANDIDATECODE='000049';
commit;
3、删除表中的行
delectfrom<表名>where布尔表达
例题:
deletefromrecruitmentagencieswhereCAGENCYCODE=’0010’;
commit;
truncatetable<表名>清除表中记录
如果你不写commit,那么再写一个rollback回滚。
那么数据又恢复到以前状态。
4、数据完整性
实体完整性:
域完整性:
引用完整性:
用户定义完整性:
5、定义约束
【主键约束】:
系统随机给你定义一个主键名
createtablestudents
(
vstudentcodechar(4)primarykey,//主键列
vfirstnamevarchar2(20)notnull,
vlastnamevarchar2(20)notnull
)
或者:
自定义主键名
createtablestudents
(
cstudentcodechar(4),//主键列
vfirstnamevarchar2(20),
vlastnamevarchar2(20),
constraint【约束】约束名【自己取,不能喝数据里面的重复】primarykey(cstudentcode)
//constraintpk_studentsprimarykey(cstudentcode)
)
【外键约束:
】
createtablestudents
(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 数据库 学习 笔记 心得