11月23日——培训第3天

系统真是烂死了,烦人!本来能重装一下就完事了,可总是不能如愿,老师总是说要等一个礼拜!怎么等啊……

netmeeting呼了一个上午都没有呼明白,算是没什么搞头了,只好直接讲了……

由于系统和netmeeting的问题,没有办法,只好看别人的机器暂时将就了,和方老师说好,晚上重装整个系统,其他还有我们这两排的机器也一并重装……现在整理的笔记是今天上午的:

-----------------------------------------------------------

oracle有两个服务很重要,一个是listener,另一个是orcl(初始装数据库时的sid名)服务,这两个服务是必须启动的,否则无法使用oracle。

注意oracle有两种端口:(5560,7778,4443等端口都可以作为oracle端口。)

1.oracle的http服务端口,默认端口号是80,如果这个端口被占用的话,那么将会自动使用7778端口,这个端口可以修改的,修改方法是进入具体目标路径的文件夹:D:/oracle/ora92/Apache/Apache/conf/httpd.conf,然后修改里面的"Listen 80"语句即可,将80改为别的端口号即可。如果在Listen 80语句上面加上一句Listen 4678的话,重新启动服务的话,两个端口都可以访问,也就是说http://localhost和
http://localhost:4678都是可以访问的。

2.oracle的xml数据库端口,默认端口号是8080,这个端口号要想修改比较容易,只需要进入OEM界面,在xml数据库中的"配置选项"即可更改

【注意端口被设置好后需要重新启动服务才可以完成更改。】


PL_SQL:过程化sql语言,支持触发器和存储过程。

数据库操纵语言(DML)中的Merge是oracle中对sql语言的一种扩充。merge其实相当于update和insert的结合,比如如果要处理一条记录,若这条记录已经在数据表中存在,那么就更新这条记录,如果不存在,则插入记录,其实说白了插入和更新都属于对数据表的更新操作,merge只不过将两者合而为一了。 注意Merge最好不要轻易使用,因为一旦换了其他的数据库,由于其他数据库不支持merge,所以会出现错误……

数据定义语言(DDL)中的truncate用于在保留数据表的基础上删除表中的所有记录,drop则是删除整个数据表。

数据控制语言(DCL)中,grant是授予用户权限,revoke则是收回刚刚赋予的权限。


假如你只安装了oracle的客户端,那么可以连接其他安装了oracle服务器的机器来进入oracle。那么需要在开始菜单中的orahome中的configuration Assistant中设置一下,也就是配置里面的"本地net服务器"。里面设置的主机名应该是远程服务器的ip值。注意测试连接时必须更改用户名和密码为scott和tiger,如果用sys的话会测试不通过,安装oracle服务器后会默认的安装一个监听程序来监听客户端的连接,而且会安排好一个全局数据库以及这个数据库对应的sid,一般都命名为orcl。

测试通过后你要为这个服务命名,假如你命名为test,那么以后就可以通过connect sys/sys @test as sysdba来连接远程服务器。

 

sid名称可以在命令行中临时更改(关闭命令行窗口后失效):set oracle_sid = "新的sid名称".

默认情况下,有些用户是被锁定的,具体可以查看oem界面,比如hr,要想用这个用户进入oracle数据库并查看这个用户能够查看的数据库,需要先解锁:

alter user hr account unlock;

alter user hr identified by hero;

第一行是将hr这个用户解锁,第二行是为hr这个用户设定一个叫做hero的密码。

然后先退出sqlplus然后重新进入,这样就可以使用connect hr/hr来进入数据库了

------------------------------------------------------------

中午1点和金毅、献斌、晓军去取钱,我和金毅都是去工行一次性取的9300元钱(一次交清的话可以便宜300元,当时itcast王老师是这么告诉我们的),献斌和晓军是分期付的。可是交钱时还有那么一点小小的风波,方老师并不知道一次交清便宜300元这种事情,这着实吓了我一跳,因为就算他不认,我们也是没有办法的,毕竟交钱优惠300的事情我们都是听王老师说的,并没有听方老师亲口说出,好在后来方老师问了张孝祥老师后确认了这一点,这也算是有惊无险吧,本来我还以为优惠这事黄了呢……不过结果看来还不错。

说到优惠,有一件事情我昨天忘了说了,那就是张孝祥老师的“javaweb核心基础”那本书我虽然已经买了,但是张老师却决定把这本书赠送给我们全部二期班的学生,人手一本,白送,我已经买了,我这个人一向就是喜欢提前准备好东西,这下子是亏了,亏了40多元……汗啊

------------------------------------------------------------
交完钱后,正好2点,由于其他学员也要陆续处理交款事宜,所以还得再等一等他们。2点半左右开始上课,但是……

netmeeting的问题实在是太严重了,总是有相当的一部分人连接不上,最终方老师决定所有台式机全部重装系统,现在暂时先使用投影仪。早就应该这样了,以前有些一期学员将机器弄的千疮百孔的,什么垃圾软件都往里面装,真是没办法继续使用了,我这个系统就慢的贼死,连命令行窗口中书写命令都累死累活的……shit,现在希望千万别出什么岔子,千万要重装啊,不管那么多了,别人的不管,自己这台破烂货说什么也要重装,netmeeting什么的相对来说倒是次要的事情。

现在投影仪好像也有点小问题,而且张老师那边的一期班也出现了netmeeting无法正常使用的问题,让他很是感慨:“本来以前课上的好好的,怎么这两天出了这么多问题呢??”


现在已经3点多了,现在要把一期班和我们之间的交换机断掉,然后再试验netmeeting,……


投影仪已经弄好了……可以开始了。
-----------------------------------------------------------

http://localhost/是通过服务器端来访问数据库,url后面如果加上isqlplus就可以进入sqlplus页面了。如果输入http://localhost:8080/的话,会提示输入用户名和密码,输入sys以及密码就可以,这是用来配置xml数据库的,如果要更改这个端口的话进入oem窗口,进入orcl主数据库中的xml数据库,点击配置就可以看到端口修改了。

命令行进入sqlplus后,help index可以看到所有可用的sqlplus命令。sqlplus会缓存上一条命令,"run"或"r"都可以让上一条命令重新运行。

注意:在sqlplus中,connect 任意用户名/任意密码 as sysdba可以登陆本地数据库,但是不能这么登陆远程的数据库。

新建一个数据库后在注册表中的local_mashine>>software>>oracle>>home0中会多一个oracleSID(当有两个或以上的数据库存在时这个键值将会出现),值为新建的数据库sid名称,这时如果再用connect sys/sys as sysdba就进入的是新建立的数据库了;如果想进入主数据库的话,用set oracle_sid = "新的sid名称".来更改sid名称或者connect sys/sys @orcl as sysdba 也行。或者干脆改正上面注册表中的那个键值,改为orcl。


上午内容:【端口、进入sqlplus,进入oem,远程连接另一台服务器,新创建一个服务器,删除一个服务器】。

-------------------------------------------------------------

select查询:投影(projection)(选列)、选取(selection)(选行记录)和连接(join)(外键选取)

select * from departments :从departments表中把所有记录全选出来,不是投影。

describe departemts: 描述departments表的结构。也可以写为desc departments。

select column1, column2,……from departments: 投影操作。

关键字不可以换行,不可以缩写,describe不是关键字,可以缩写为desc。

空值null不是一个空的字符串,也不是0,它和任何值进行运算结果都是空值。

select nvl(commision_pct,0) from employees 可以做到如果选择出的参数是空的话,显示括号里面的第二个参数“0”,否则就是显示第一个参数,这样做到了能把值为null的数用替代值显示出来。

select nvl2(commision_pct,1,0) from employees : 如果是为空的记录,则显示“0”,如果是不为空的记录,则显示“1”。

select first_name||' '||last_name as "show" from employees : "||"用于将两个列连接起来,其中间隔一个空格,列名就是show。

单引号用于字符串的连接等运算,双引号则是用于转义等效果,比如上面的show如果不加双引号那么列名就是SHOW,而不是show了。

concat函数:select concat(concat(first_name,last_name),last_name) as "merge" from employee:
其作用也是连接,但是一次只能连接两个,要想连接多个只能嵌套了。


select distinct department_id from employees: 去掉列中的重复记录;

不等于可以用"!="或者"<>"表示

select first_name from employees where salary between 6000 and 7000; 

select first_name, department_id from employees where department_id in (90,100,110);

select first_name from employees where first_name like '_o%'; 下划线是代表一个任意的字符,%是0或多个任意字符,查出来的是第二个字符是o的结果。下划线是用来占位的,说明只能且必须有一个字符,%则代表0个或多个字符

如果要插入的符号中有%或者是_的话,需要用/来转义。也就是/_和/%就可以了。

select nvl(to_char(commision_pct),'isnull') from employees where commision_pct is null;
用to_char函数来将commision_pct转换为字符,因为必须和后面的'isnull'类型一致才可以,nvl函数中的两个参数必须类型一致才可以。


 

你可能感兴趣的:(四个月的编程培训经历,数据库,oracle,服务器,merge,语言,远程连接)