零星笔记

1.常见的关系数据库有:

微软的sql server,access.

ORACLE

美国SYBASE的sybase.

瑞典AB公司的mysql(现在也归ORACLE,因为ORACLE已经把SUN收购了,而SUN收购了MYSQL).

IBM的DB2(主要用于处理海量数据),INFOMIX(基于UNIX的数据库).

2.oracle的认证:

oca(oracle certified associate),ocp(professional),ocm(master)

3.windows下面安装数据库时推荐的是windows server,但是我们练习用常常采用XP。没什么区别。

4.常用的截图软件faststone capture

5.HA:

6.常见的sqlplus命令

   conn,disc[onnect],exit,show user,&,edit,spool,passw[ord],其中password的作用跟使用alter user xxx identified by xxx 一样。

7.schemal(方案、模式)的概念:可以类别JAVA中包的概念,ORACLE数据库在创建一个用户的同时会创建一个和用户名同名的schemal(方案、模式)。该用户创建的所有数据对象都存在于自己的模式或者叫方案中。

8.常见权限角色:权限分为系统权限和对象权限,角色分为预定义角色和自定义角色。系统权限跟数据的管理有关,对象权限跟数据库对象的操作有关。常见的角色有connect,resource

8.help|? xxx用于获取帮助

9.常见的授权语句:grant select|insert|delete|update|all on table to sb with grant option

                           revoke  select|insert|delete|update|all on table from sb

测试一下,传递的权限是否也被收回了。

10.表空间是个逻辑的概念,其本质对应了物理上的一个数据文件。

11.save的用法,spool的用法,edit的用法,start等于@。注意理解save,edit的用图,他们是针对缓冲区中的SQL脚本来进行保存和编辑的,如果当前缓冲区中没有SQL脚本,那么当用save,edit命令时会提示sp2-0102无需保存的提示。

spool则不会。get xx.sql是把脚本加载到当前缓冲区当中。@xx.sql是执行sql。注意理解加载和执行的区别。

12.本地只要安装了客户端,就可以连接到远程的数据库,即使是本地没有再TNS里面配置。这时的连接语句应该如下形式:sqlplus name/password@ip:1521/sid。这句话等同于本地配置了TNS后写的sqlplus name/password@sid

13:在sqlplus中要区分SQL命令或者是sqlplus命令。因为有时候命令对逗号有限制,在一些命令后面是不允许有分号或者逗号的,例如imp ,sqlplus xxx/xxx@sid。

14.如果想利用基于IE的数据库管理工具ISQLPLUS,那么必须启动OracleDBConsoleXXX服务

15.通过CMD启动数据库和监听有如下的命令:lsnrctl start,oradim -startup -sid  xxx,net start oracleservicexxx

16.查看sqlplus的环境变量可以用show all。即使数据库没有启动,只要能够登录到sqlplus环境即可。例如:sqlplus /nolog. show all.

17.查看sqlplus的命令:前提是必须启动数据库。使用help或者? xxx命令。help|? xxx,例如help|? list就是查看list命令的用法。如果忘记了命令的名字,就要查看sqlplus 的所有命令,那么要使用help|? index.

18.查看用户所有的表和视图:select * from tab;

19.@@xx.sql是运行相对路径下的脚本,一般是在大脚本调用小脚本的时候使用。

20.oracle10g以前在使用distinct去重复的时候,内核的算法是要先排序在去重,效率较低,10g后重写了内核,使用了hash算法去重,提升了效率。但是输出时的结果没有顺序的,而10G以前的因为要排序,所以输出的结果都是有序的。

21.索引对NULL值无效。

22.使用instr函数时,如果找不到相应的字符,那么结果值为0,而不是JAVA当中的-1.

23.ORACLE当中的trim函数不仅仅是用来去空格,能用来删除任何字符。trim(leading|trailing|both,'x','xxx').

24.length函数有多种变形,按字节lengthb,按unicode编码lengthc。默认按字符串length.

25.理解oracle中的数据类型number可以存储所有数字,包括整数和小数,但是一旦加上了括号限制,例如:number(10),number(10,2).那么就只能存储整数或者小数了。

26.clear screen不会清除掉缓冲区中的SQL语句。

27.oracle默认的排序时2进制排序,如果要想按照中文拼音、部首、笔画、法语的什么排序,需要修改排序的环境变量

关于国家语言的支持问题需要参考DBA体系结构中的描述。默认的排序都是升序ASC

28.常见的数字函数有round,trunc,ceil,floor,abc,mod

29.验证客户端修改日期显示参数后数据库中会不会生效?

30.根据profile文件来管理用户的口令密码,一般来讲我们都是用默认的profile。通过DBA可以创建新的profile文件,让用户修改口令密码或者定期修改口令密码

31.传递系统权限为with admin option,回收系统权限后不会级联回收.传递对象权限为with grant option,回收对象权限后会级联回收。

32.查看操作系统的信息用systeminfo命令。

33.删除字符串中的某些字符时用replace函数

34.登陆认证方式:1.操作系统认证(对于SYSDBA)2.数据库验证(密码文件验证)

如果登录时使用了as sysdba那么ORACLE就会采用默认的操作系统认证,检查当前系统用户是否为ORA_DBA组的成员,如果是,那么就不用数据库认证,直接切换为SYS用户登录,即等同于sqlpus sys/xx 登录。如果是普通用户登录的话,就采用数据库认证。这种认证方式是ORACLE自身设计的,只有它的道理,我们明白即可。我们也可以手工修改这种操作系统的认证模式,通过修改\NETWORK\ADMIN\sqlnet.ora文件就可以修改SYSDBA的登录认证方式为数据库认证,这样即使当前操作系统用户存在于ORA_DBA组里面,也一样要输入用户名和密码进行数据库认证才能登录。另外我们通过把ORA_DB组里面的用户清空,这样SYSDBA登录的时候也一样必须输入用户名和密码。

35.忘记管理员sys密码后如何恢复:orapwd命令

36.dump函数的用法:用来查看字段在数据库中式如何存储的,详细的查看字段的存储大小情况。

37.number是变长的,为什么会这样讲,这是从存储的角度来讲的,你存储一个小整数它占用的空间就小,如果你存储一个大整数它占用的存储空间就大,就是说它占用的空间不是固定的。所以说是变长的。

38.crud:create/read,retrieve/update/delete

39.rownum伪列的使用和理解,where条件语句中它只能使用<=,不能使用>因为rownum是在结果集确定之后才产生的逻辑行号,如果在where条件语句中使用rownum,那么就会从编好号的结果集中第一条开始一条条的查找,如果不满足那么就会过滤掉改条记录,然后结果集重新编号,把下一条的rownum置为1,这样永远也找不到>大于某个数字的结果集,所以只能用小于等于,明白了用rownum作为过滤条件比较特殊就可以,它也仅仅是一种特殊的用法,没什么特别的,逻辑上如果用它就是这样执行的。rowid是物理存在的,常用来删除或查询重复的行,因为即使多行数据完全一样,他们的rowid也不会相同。

40.使用create table * as select 创建表时不会把主键约束和非空约束等给带过来。

41.drop table xx后可以通过flashback恢复,但是删除其他数据对象如sequnce等或是通过delete删除数据时则不能通过flashback恢复,删除table之后,通过select * from user_tables是查看不到XX表了,但是通过select * from tab  是可以查看到的,只不过是用另外一个形式出现,所以说本质上还是没有删除掉,否则也没办法恢复了。只不过是通过查看表时看不到了而已,数据库换了一种形式把它存放起来了,而且恢复的时候是把表和表里面的数据都进行了恢复。

42.对于PL/SQL当中的FOR循环当中的变量,它是自动创建的,如果和外部定义的变量重名,那么它会应用自身的变量,也就是说外界定义的变量对它来讲是透明的,在循环里面修改的变量值不影响外部变量的值。可以把它理解为一个局部变量,外界定义的变量为全局变量、成员变量。

43.

你可能感兴趣的:(笔记)