sql相关的文件文档格式.docx

上传人:b****4 文档编号:17857314 上传时间:2022-12-11 格式:DOCX 页数:49 大小:32.08KB
下载 相关 举报
sql相关的文件文档格式.docx_第1页
第1页 / 共49页
sql相关的文件文档格式.docx_第2页
第2页 / 共49页
sql相关的文件文档格式.docx_第3页
第3页 / 共49页
sql相关的文件文档格式.docx_第4页
第4页 / 共49页
sql相关的文件文档格式.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

sql相关的文件文档格式.docx

《sql相关的文件文档格式.docx》由会员分享,可在线阅读,更多相关《sql相关的文件文档格式.docx(49页珍藏版)》请在冰豆网上搜索。

sql相关的文件文档格式.docx

createdatabase(创建数据库)

startup(open打开状态)

---------SD(softwaredeveloper)

--->

登录数据库(建立数据库连接)

SQL语句

console

telnet192.168.0.26

telnet192.168.0.23

osopenlab/open123%$shell提示符

sqlplus

dbopenlab/open123SQL>

echo$ORACLE_SID(环境变量)

oracledbserver(oracle数据库服务器)的名字open状态

sqlplus

setenvORACLE_SIDhiloo

ERROR:

ORA-01034:

ORACLEnotavailable

没有hiloo这个oracle数据库服务.

cmd(windows)shell(unix)都是命令解释器

C/Sclient/server(客户端/服务器)

客户端程序和服务器端程序在同一台机器上sqlplus

客户端程序和服务器端程序在不同的机器上jdbc(tcp/ip)

客户端程序和服务器端程序在同一台机器上

D:

\>

setORACLE_SID=hiloo

setORACLE_SID

ORACLE_SID=hiloo

%setenvORACLE_SIDhiloo

%echo$ORACLE_SID

ORA-00955:

nameisalreadyusedbyanexisting(存在)object

createtabletest(c1number)

tablecreated

desctest(describetest显示表结构)

insert

1rowinserted

源表from后面的表名结果集select语句的查询结果

select语句select子句from子句

投影操作(select子句)选择操作连接操作

select子句列名,表达式,函数

算术表达式字符表达式(字符串拼接)

select*fromdept_hiloo

empno员工编号

mgr该名员工领导的员工编号

语法检查,语义检查,生成执行计划,执行该计划,产生结果集.

select表达式列别名fromtabname

字符串用'

'

列别名用"

"

空格或者大小写敏感

insert包含null,没值,算术表达式中包含null值,结果一定为null.null可以按无穷大理解.

nvl(p1,p2)返回值nvl(bonus,0)空值转换函数p1,p2的数据类型一致

pl/sql程序函数

ifp1isnullthen

returnp2;

else

returnp1;

endif;

distinct不同区别去重

distinctdeptno,jobfromemp_hiloodistinct之后,from之前的所有列联合去重

selectfromwhere

where子句实现选择操作where条件表达式列名比较运算符值

wheresalary>

5000

where子句执行在select子句之前,所以列别名不能用于where子句

表达式比较运算符值(尽量不用)

betweenand闭区间范围>

=and<

=

in(集合)<

=>

=any(跟集合里的任意一个值相等)<

=or=

ORA-01797:

thisoperator(运算符)mustbefollowed(跟)byANYorALL

c1between10and20

c1in(10,20)

like像字符

通配符%0或多个字符_任意一个字符

S'

like'

S%'

S_'

_%有两个含义一个代表通配符,另一个代表它本省

isnull

否定形式

isnullisnotnull

=<

>

!

betweenandnotbetweenand比小的小比大的大

likenotlike

innotin

notin<

<

all(跟集合里的所有值都不相等)<

and<

建连接

DDLDMLTCL

selectdistinctfromwhere

fromwhereselectdistinct

where数据类型比较运算符(betweenandinlikeisnull)null

课堂练习

1列出员工名称以及工资

selectename,salaryfromemp_hiloo

2列出员工名称以及年薪

selectename,salary*12fromemp_hiloo

3列出员工名称以及一年的总收入

selectename,(salary+nvl(bonus,0))*12tot_salfromemp_hiloo

4公司里有哪些不同的职位

selectdistinctjobfromemp_hiloo

5公司里每个部门有哪些不同的职位

selectdistinctdistinctdeptno,jobfromemp_hiloo

6工资大于5000的员工的名称和工资

selectename,salaryfromemp_hiloowheresalary>

7工资大于5000的员工的名称和年薪

selectename,salary*12fromemp_hiloowheresalary>

8年薪大于60000的员工的名称和年薪

9哪些员工的职位是clerk

selectename,jobfromemp_hiloowherejob='

clerk'

10哪些员工的职位是Manager

Manager'

11哪些员工的职位是clerk,不知道clerk的大小写

selectename,jobfromemp_hiloowherelower(job)='

12找出工资在5000到10000之间的员工的名称和年薪

wheresalarybetween5000and10000

13哪些员工的职位是clerk或Manager或salesman

selectename,jobfromemp_hiloo

wherejobin('

'

salesman'

14哪些员工的名字的第二个字符是a.

selectename,jobfromemp_hiloo

whereenamelike'

_a%'

15哪些员工的职位的前两位字符是j_(j_salesman符合条件)

转义

wherejoblike'

j\_%'

escape'

\'

16哪些员工没有奖金

selectename,bonusfromemp_hiloo

wherebonusisnull

17哪些员工有奖金

wherebonusisnotnull

关于null的讨论

distinctbonus,bonus包含多个null值,结果集包含一个null值.

判断一个列的取值是否为空,用isnull

null=null不成立1<

null不成立null<

null不成立

对于in来说,集合里面是否包含null值,对结果集没影响

对于notin来说,集合里面包含null值,结果集一定是norowsselected.(没有任何记录)

函数function

单行函数upper(p1)

p1是参数,按参数的数据类型分类

字符函数upperlower

数值函数roundtrunc

日期函数sysdateadd_months

一般函数nvl(bonus,0)nvl(ename,'

A'

),nvl(hiredate,sysdate)

转换函数to_date,to_char,to_number

多行函数(组函数)

round(p1,p2)四舍五入

round(1.235,2)-->

1.24

round(1.235,0)=round(1.235)-->

1

round(15.5,-1)20

trunc(p1,p2)截取

trunc(1.235,2)-->

1.23

trunc((15.5,-1)10

日期类型

session会话通过connection创建session

alter(修改)sessionset(设置)

SQL>

altersession

2setnls_date_format='

yyyymmddhh24:

mi:

ss'

;

date世纪年月日时分秒7个字节(固定)

缺省日期格式DD-MON-RR

ORA-01861:

literal(文字值)doesnotmatch(匹配)formatstring(格式串)

to_dateto_char说明date类型是格式敏感的.

2008080808:

08:

08

ORACLE_SID

sqlplususername/passwd

sql>

connectopenlab/open123

转换函数

system(系统级)session(会话级)statment(语句级)

insertintotestvalues

(to_date('

08'

'

);

selectto_char(c1,'

)fromtest;

产生一个日期值to_date

处理一个日期值to_char

隐式转换系统转换

显式转换用户调用转换函数

03'

=3缺省方式:

字符型-->

数值型

to_number('

)=3char_to_number

ab'

)invalid(无效)number

to_char(salary)number_to_char

to_char(sysdate)date_to_char

日期运算

日期+(-)数值日期-日期

日期函数

add_months(sysdate,1)add_months(sysdate,-6)

months_between(sysdate,hiredate)相差了多少月

last_day(sysdate)某月的最后一天

一般函数

nvl,coalesce()

ORA-00932:

inconsistent(不一致)datatypes(数据类型):

expected(期待)NUMBERgotCHAR

1selectename,empno,

2coalesce(to_char(mgr),'

Boss'

3*fromemp_hiloo

ORA-01722:

invalid(无效)number

1selectename,empno,

2nvl(to_char(mgr),'

1请找出3月份入职的员工.

selectename,hiredate

2fromemp_hiloo

3whereto_char(hiredate,'

mm'

)='

=3

l

1selectename,hiredate

3*whereto_char(hiredate,'

fmmm'

3'

fm去掉前导0或者两端的空格

2十分钟之后

selectsysdate,sysdate+1/144

2fromdual;

3列出ename,empno,mgr,其中zhangsanfeng的mgr显示Boss

函数function

sysdate无参数的函数

upper(ename)

ename值参数函数有返回值,返回值指定数据类型

产生一个日期值函数的返回值是日期类型to_date

处理一个日期值,处理的参数是日期类型to_char(hiredate,'

排序

orderby是最后一个子句,orderby在select之后执行

orderby列名asc(升序,缺省)desc(降序)

orderby后面跟列名,列别名,表达式(函数),位置

字符,数值,日期都可以排序

avg()平均值数值

sum()求和数值

count()计数数值字符日期

min()最小值数值字符日期

max()最大值数值字符日期

avg(all)avg(distinct)

组函数处理的是所有的非空值,count(*)返回记录数,空值不影响

groupby

ORA-00937:

notasingle-groupgroupfunction不是组函数

在没有groupby的情况下,select后面只要有一个组函数,其他的必须是组函数

在有groupby的情况下,sele

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 远程网络教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1