java中级知识总结.docx

上传人:b****8 文档编号:9682001 上传时间:2023-02-05 格式:DOCX 页数:110 大小:581.83KB
下载 相关 举报
java中级知识总结.docx_第1页
第1页 / 共110页
java中级知识总结.docx_第2页
第2页 / 共110页
java中级知识总结.docx_第3页
第3页 / 共110页
java中级知识总结.docx_第4页
第4页 / 共110页
java中级知识总结.docx_第5页
第5页 / 共110页
点击查看更多>>
下载资源
资源描述

java中级知识总结.docx

《java中级知识总结.docx》由会员分享,可在线阅读,更多相关《java中级知识总结.docx(110页珍藏版)》请在冰豆网上搜索。

java中级知识总结.docx

java中级知识总结

JAVA中级知识总结

一、oracle数据库以及sql语句

1.Oracle的安装:

在安装过程中需要自己设置三个用户的密码,分别是SYS(超级管理员)、system(管理员)和scott(程序给用户提供的一个普通用户)。

2.在安装完成oracle后在系统中会有五个服务,一般只需使用到数据库实例服务(OracleServiceOrcl)即可;

a)OracleService+服务名:

该服务是数据库启动的基础,只有该服务启动了,数据库服务才能正常启动,这是必须启动的服务;

b)OracleOraDb10g_home1TNSListener:

该服务是服务器端为客服端提供的监听服务,只有该服务正常启动,客服端才能正常连接服务器。

c)OracleOraDb10g_home1iSQL*Plus:

该服务提供了浏览器对数据库数据操作的方式。

3.SQL语言分类:

a)DML:

数据操作语言,用于增删改查:

insert、delete、update、select。

b)DDL:

数据定义语言,定义数据结构,用于表格的创建、修改和删除:

create、alter、drop。

c)DCL:

数据控制语言,定义数据库用户权限:

grant、revoke、set(设置)、commit(提交)、rollback(回滚)、savepoint(保存点)。

4.Oracle数据库的基本操作:

1 数据库层面的操作:

a)登录数据库:

i.SQLPlus登录:

输入用户名和口令,注意:

数据库实例(主机字符串)可输入也可不输入,输入则输orcl。

ii.cmd登录:

先输入sqlplus-->用户名-->密码。

注意:

在输入口令时口令是不可见的,并不是用户没输入数据。

iii.sqlplusw登录:

在运行输入sqlplus,后续同i。

b)退出数据库:

使用SQLPlus登录时退出的是整个操作界面;使用cmd登录时则是退出数据库登录,并没有退出dos命令窗口。

2 用户层面的操作:

a)创建用户:

createuser用户名identifiedby密码;注意:

创建用户只能以管理员的权限才能进行,普通用户是没有权限创建普通用户的;如果以管理员身份给予普通用户创建用户的权限,那么普通用户在创建用户上相当于管理员,这时的普通用户就拥有创建用户的权限。

b)进入用户数据库:

conn[ect]用户名/密码;注意:

普通用户第一次连接进入数据库必须要有管理员授权,不然新创建的普通用户是没有权限进入数据库的。

c)显示当前用户:

showuser;

d)断开用户与数据库之间的连接:

disc;

e)用户的锁定与解锁:

i.锁定用户:

alteruser用户名lock;

ii.解锁用户:

alteruser用户名account;

f)修改当前用户密码:

i.用户本身修改密码:

password直接修改;

ii.管理员修改密码:

alteruser用户名identifiedby密码;

g)显示当前用户下的所有表格:

i.select*fromtab;或

ii.selecttable_namefromuser_tables;

h)删除用户:

同样的,普通用户不具备删除用户的权限,删除用户一般在管理员身份下完成;如果管理员授权普通用户拥有删除其他普通的用户的权限,那么在删除用户功能上该普通用户相当于管理员。

注意:

不能删除自身,删除的用户如果有数据需在最后加上cascade。

3 数据库表格层面的操作:

a)创建表格:

createtable表名(字段名字段类型(字段长度),……);注意:

不能创建没有字段的表格。

b)描述表格属性(字段):

desc表名;

c)设置页面显示行数:

setpagesize数值;查看使用showpagesize;

d)设置行宽:

setlinesize数值;同上。

e)复制表格:

createtable表1asselect*from表2;使用关键字:

as。

f)重命名表格:

rename表名to新表名;

g)清空表格的两种方式及异同:

i.直接删除表中数据:

deletefrom表名;

ii.截断表中数据:

truncatetable表名;

iii.delete属于DML语言,删除数据后可以回滚,可以有条件的删除数据;truncate属于DDL语言,一旦删除无法恢复数据,默认删除表中所有内容;一般情况下,truncate删除速度比delete快。

h)删除表格:

droptable表名;

4 权限操作:

a)授权:

管理员身份下:

grant权限to用户;

i.connect:

进入用户数据库的权限;

ii.resource:

创建表格的权限;

iii.create|dropuser:

创建|删除用户的权限;

iv.createview:

创建视图的权限;

b)用户权限的传递:

使用关键字option。

c)对象权限的传递:

以表所属用户的身份授权:

i.赋权:

grantallon表名to用户;

ii.撤权:

revokeallfrom表名from用户;

d)撤权:

revoke权限from用户名;同样的在管理员下执行操作。

5 运行脚本文件:

在外部创建一个sql文件(以.sql后缀结尾的文件),在其中书写SQL语句,将文件导入并执行其中的SQL语句:

两种方式:

a)@sql文件的url;

b)Startsql文件的url;

6 导出脚本文件:

在要导出的脚本文件前添加:

spool导出的目标路径;在结束导出处添加:

spooloff;作用:

一般用于导出重要的演示过程文件。

7 打开上一条SQL语句:

ed[it]:

用于对上一条SQL语句进行修改,保存后关闭编辑框,系统自动将修改后的内容导入,与’/’搭配表示执行上一条语句。

8 终止正在执行的SQL语句:

Ctrl+C。

5.数据库数据的操作:

1 增加数据:

insertinto表名[(字段,……)]values(对应字段值);

2 删除数据:

a)删除指定数据:

deletefrom表名where字段名=值;

b)删除全部数据:

deletefrom表名;

3 修改数据:

update表名set字段名=对应值,…where字段名=值;

4 导入另一个表中数据:

insertinto表1select*from表名2;

5 查询数据:

a)查询所有数据:

select*from表名;

b)查询指定数据:

select字段名,…from表名where字段名=值;

6.Oracle中的基本数据类型:

a)Char:

字符类型,长度固定,传入数据长度不够时空白补全;

b)Varchar2:

可变长度的字符类型;

c)Number:

可变长度的数值类型;注意:

当number(num1,nm2)定义数值时:

num1表示数据的有效位数,num2表示小数的有效位数;

d)Date:

日期类型,其中sysdate表示当前系统时间;

e)Clob:

超大字符类型,一般表示纯文本,长度最大为4G;

f)Blob:

超大二进制数据类型,一般用于表示图片、音频、视频等;

g)Long:

数字类型,长度最大为2G。

7.数据表中字段的操作:

字段也就是表中的列。

1 添加字段:

altertable表名add(字段名字段类型(字段长度));使用关键字:

add。

2 修改字段:

altertable表名modify(字段名字段类型(字段长度));使用关键字:

modify。

3 重命名字段:

altertable表名renamecolumn字段名to新字段名;使用关键字:

renamecolumn。

4 删除字段:

altertable表名dropcolumn字段名;使用关键字:

dropcolumn。

5 设置别名:

使用关键字:

as。

便于计算,用双引号。

6 设置某列的宽度:

在dos命令行中使用,在SqlPlus中不能使用。

a)设置格式:

col[umn]列名for[mat]格式

b)格式:

不同类型的数据有不同的格式:

i.字符串:

以字母a开头,后面跟一个数字表示长度,例a20,表示该列宽度(也就是字段长度)是20个字符。

ii.数字:

用数字9表示一个字符,有几个9就表示几个字符。

8.事务控制命令:

a)设置保存点:

在完成某个SQL语句操作后在此设置一个保存点以便后用。

格式:

savepoint保存点名;

b)回滚:

执行完SQL语句后想要回到前面的某个SQL语句执行前的状态,这时就用到前面设置的保存点,然后回滚到保存点,那么保存点之后的操作全部无效。

格式:

rollbackto保存点;

c)提交:

执行完成SQL语句操作改变的数据都是保存在缓冲区中,提交则是将缓冲区的数据全部提交到数据库表格中,提交完成后不能再回滚。

9.表格的约束:

一般在创建表和修改表时执行,放在字段类型后,空格隔开。

1 约束的类型:

a)非空约束:

notnull:

表示表中该字段不能为空;

b)唯一约束:

unique:

表示表中该字段每个值唯一;

c)主键约束:

primarykey:

等效于uniquenotnull;

d)检查约束:

check:

check(条件表达式),对该字段进行限制。

e)默认值约束:

default:

default默认值。

2 设置字段约束的两种方式:

a)创建表格时设置约束:

i.在每个字段类型后添加对应的约束;

ii.在字段最后统一设置,格式:

约束‘字段’,约束‘字段’…

b)修改字段时设置约束:

i.altertable表名addconstraint别名约束(字段名);注:

这种方式适用于:

unique、primarykey。

ii.altertable表名modify(字段名类型(字段长度)别名约束);注:

这种方式适用于:

check、notnull、default。

3 删除约束:

a)非空:

altertable表名modify(字段名类型(字段长度));

b)唯一:

altertable表名dropunique(字段名);

c)主键:

altertable表名dropprimarykey;

d)检查:

altertable表名dropconstraint约束别名;

e)默认值:

altertable表名modify(字段名类型(字段长度));

4 临时禁用约束:

altertable表名disableconstraint约束别名;

5 添加约束条件的时候,不同的数据库有不同的要求:

a)Oracle中添加表格约束必须先将表中数据清空;

b)Mysql中可以不将表中数据清空而添加约束。

6 check约束只能在oracle中使用,MySQL中不能使用。

10.添加外键:

添加外键的作用就是使得有关联的多个表联系起来,因此一个外键就必须对应着一个主键,主外键的选取根据两个表格的一对多关系,具有唯一的所属表定义主键,对应多个数据所属的表定义外键;如果两个表之间的唯一标示是多对多关系;如一个学生对应多个老师,一个老师也对应多个学生,那么这种情况就只能定义一个中间表将这两个表联系起来。

a)创建表格时添加外键:

createtable表名(字段名字段属性(字段长度),……,constraint别名foreignkey(字段)references主表名(字段));

b)创建表格后添加外键:

altertable表名addconstraint别名foreignkey(表名)references主表名(字段名);

c)主外键注意事项:

一个表中只能存在一个主键,但是可以存在多个外键。

11.SQL语句的条件查询:

关键字:

where。

a)查找某个字段的某个范围内的数据:

字段betweenAandB

b)查找某些字段满足某些特定的值的数据:

in(值1,值2,…)

c)模糊查找:

关键字like,两种形式:

i.下划线“_”:

一个下划线代表一个字符,例:

where字段名like‘_a%’:

查找满足第二个字符是a的所有数据。

ii.百分号“%”:

代表多个字符,例如上。

iii.注意:

当查询本身包含下划线或者百分号时,使用转义字符表示下划线和百分号:

’\_’,’\%’。

iv.回避特殊符号:

关键字escape,一般连同转义字符使用,用于解决iii中的问题:

格式:

selectjob_idfromjobswherejob_idlike‘IT\_%‘escape‘\‘;

12.特殊查询:

1 isnull:

空值查询,where字段名isnull;

2 orderby:

将查询结果按照某种方式排序,asc(降序,默认),desc(升序)。

使用排序时的一些注意事项:

i.在进行排序时,可以用数字表示第几列:

select*fromemporderby1[desc];

ii.Orderby后面的字段中有null,那么空值表示很大的数据,因此若是升序排列,那么所有的空值都在最下面;降序时都在最上面。

iii.空值的解决:

希望不论升序还是降序空值都在最下面,两种方式;

1.放在最后select*from表名orderby字段名descnullslast;

2.滤空函数select*fromemporderbynvl(column,0)desc;

3 groupby:

根据字段值对行进行分组,应用时将与聚合函数联合;也可以在已分组的查询中完成条件检索。

相关注意事项:

a)所有出现在查询列表而没有出现在组函数中的字段都必须出现在groupby中,但是包含在groupby字句中的列不一定包含在组函数中;

b)不能在where中使用组函数;但是在having中可以使用组函数

c)按一个列分组,该列的重复元素在结果中只出现一次;

d)按多个列分组,参与分组的列中有一个参数不同就是不同的组;

e)分组结果过滤(having):

分完组再进行过滤,只显示符合条件的结果。

f)在groupby后不能使用别名,在having后也不能使用别名。

4 distinct:

去除多余(重复)数据,selectdistinct(字段名)from表名;

13.空值(null)以及对空值的处理:

a)特点:

i.空值是未知的,无效的,未指定的或不可预知的值;

ii.空值不是空格或者0;

iii.包含空值的数学表达式的值都是空值。

b)组(聚合)函数忽略空值。

14.创建表格的视图:

创建视图之前必须对该用户授权(创建视图的权限),

a)创建单表视图:

createview视图名asselect*from表名;

b)创建多表视图:

createview字段...from表名...where键约束;

15.聚合函数:

max、min、sum、avg、count。

格式:

selectmax(salary)fromemployee;

注意:

在MySQL中集合函数要使用as命名别名,oracle中不必要。

16.逻辑运算:

and、not、or。

17.having字句的使用:

having一般与groupby一起使用,不使用groupby,having语句的作用与where相同。

格式:

selectcolumn_name,group_function(column_name)

fromtable_name

[wherecondition]

[groupbygroup_by_expression]

[havinggroup_condition]

[orderbycolumn_name]

18.Having和where的区别:

条件判断时,建议使用where而不用having:

a)Having是分完组后再进行过滤,效率较低,其子句中可以使用组函数;

b)Where是过滤后再进行分组,效率较高,禁止where子句中使用组函数。

19.多表查询:

select*from表名1,表名2where表1.字段1=表2.字段2;多表查询的核心思想是将有关联的多个表通过关联字段联合成一个表,变相的等同在查询一个表中的数据。

但是多个表中的数据并不是一一对应的,这时就出现了问题:

到底是以哪个表中的数据为主查询数据,所以出现了内外连接、左右连接。

注意:

MySQL是没有(+)这种方式的。

a)自连接查询:

对同一个表进行连接操作;即利用表单别名,将同一张表视为多张表,如查询员工上级的名字:

selecte.ename||’的上级是’||m.ename

fromempe,empm

wheree.empno=m.empno;

b)内连接查询:

分为自然连接、等值连接和不等值连接三种:

i.等值连接:

表之间通过“=”连接起来,产生一个临时表;对临时表进行处理后生成最终结果;其查询结果中列出被连接表中所有列,包括其中的重复列。

ii.不等值连接:

与等值连接相对,例:

Selecte.empno,e.ename,e.sal,g.grade

fromempe,salgradeg

wheree.salbetweeng..losalandg.hisal

orderbyg.grade,e.sal;

iii.自然连接:

在等值连接中消除重复列就是自然连接。

c)外连接查询:

分为左外连接、右外链接和全外链接:

join或(+)

i.左外连接:

以左表为主,右表没有匹配数据则为null;

ii.右外链接:

以右表为主,左表没有匹配数据则为null;

iii.全外连接:

将两个表的所有数据查询出来。

d)交叉连接:

不带where子句,返回被连接的两个表的所有数据行的笛卡尔积,返回表中的数据行数等于两个表的行数之积。

20.数据库都能使用的一种标准连接,join关键字的使用:

inner和outer对所有join类型是可选的,inner是缺省;left、right、full都隐含外连接。

a)innerjoin:

内连接,select*frombanjiinnerJOINstudentONSTUDENT.STU_ADS=BANJI.ADDRESS;

b)left[outer]join:

左外连接。

c)right[outer]join:

右外链接;

d)full[outer]join:

全外连接。

21.子查询:

当执行一次查询不能得到结果时,就要用到子查询,

a)子查询有对应的操作符:

i.单行子查询:

ii.多行子查询:

any、all、in。

1.any:

表示查找满足条件的任意数据;

2.in:

表示查找满足条件的任意一个数据;

3.all:

表示查找满足所有条件的所有数据。

b)子查询可以放在select、from、where、和having子句中;但是在groupby子句中不能放子查询;

c)Select子句中放子查询时,只能放单行子查询。

22.子查询注意事项:

a)使用where..in(...);如果括号内的结果有null,对查询没有影响;

例:

查询所有是经理的员工:

select*fromempwhereempnoin(selectmgrfromemp);

b)使用where..notin(...);如果含有null;不会返回任何结果。

例:

查询所有不是经理的员工:

select*fromempwhereempnonotin(selectmgrfromempwheremgrisnotnull);

c)当子查询中返回的结果不止一行数据时,不能使用单行运算符。

错例:

SELECTemployee_id,last_name

FROMemployees

WHEREsalary=

(SELECTMIN(salary)

FROMemployees

GROUPBYdepartment_id);

d)当子查询结果是空值时,即子查询不返回任何结果,比较不能进行,

错例:

SELECTlast_name,job_id

FROMemployees

WHEREjob_id=

(SELECTjob_id

FROMemployees

WHERElast_name='Haas');

23.连接符“||”的使用:

将列与列、列与字符连接在一起,合并成一列。

格式:

selectlast_name||'isa'||job_idas"EmployeeDetails"fromemployees;

24.笛卡尔集:

出现在多表查询中,产生数据条数=各表行数之积。

a)产生条件:

i.省略连接条件时;

ii.连接条件无效时;

iii.表中所有行互相连接时。

b)解决:

重新分析并确立有效的连接条件,实际中应避免笛卡尔集。

25.叉集:

使用crossjoin连接的表产生叉集,与笛卡尔集相同。

例:

selectlast_name,department_namefromcrossjoindepartment;

26.自然连接:

naturaljoin子句,会以两个表中具有相同名字的列为条件创建等值连接,在表中查询满足等值条件的数据;若只是列名相同而类型不同,则会产生错误。

例:

selectdep_id,dep_name,loc_id,cityfromdepnaturaljoinlocations;

27.清空显示屏的内容:

在dos命令行中使用,在SqlPlus中不能使用。

a)Window系统:

hostcls

b)Linux系统:

hostclear

28.一些常见的注意事项:

a)利用SQL语句执行计算,由于只查询一个表达式的值,没有用到任何表格的结构,但是SQL语句规定又必须满足基本的查询语句from表名;这时系统提供了一个虚表dual,dual本身是存在的,可以直接使用。

例:

select3+2fromdual;selectconcat(‘hello’,’world’)fromdual;

b)由于SQL语句是不区分大小写的,但是字符串是区分大小写的,所以:

i.在使用字符串的时候需要加上引号;

ii.当创建别名的时候,引号可以加也可以不加,建议加上;

iii.当含有空格、特殊字符时,一定要加上引号,如果不加引号,那么所有字符都显示大写,加上引号按照输入的的格式显示。

iv.在使用字符串时,要使用单引号;

v.在书写别名的时候,要使用双引号。

29.常见函数的使用:

a)滤

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

当前位置:首页 > 考试认证 > 公务员考试

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

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