第一天,疲惫

3月16日,是我第一次来到MLDN学习的日子,班里的同学都比较友善,简单的自我介绍后,大家也比较熟悉,我虽然是个女孩,但是我以前搞过C++,也教过C++,所以我想学起来也应该不会太难。

9点,李老师准时开始讲课,一身正装,讲课就感觉是激情四射,感觉是一种震撼,比起我以前讲课,我想真是有太多需要学习的了。

  介绍完之后,就开始说要求,不管对老师自己还是对学生,老师都有严格的要求,而且这一个月的学习来,老师确实也是这么做的。

第一天学习了,Oracle的下面的知识:

今天所讲的知识点(如果表格不够,可在备注中继续填写)
A Oracle安装
B 与Oracle相关的服务
C Oracle的启动和操作方式
D 常用的SQLPLUSW的命令操作
E 查看数据库中的所有表
F 查看一张的表的结构
G 4张系统预定义的表(结构)
H SELECT的简单语法
I 限定查询(WHERE子句)
J 对结果进行排序(Order by)
K 单行函数




我对知识点的分析

A 安装之前需要禁用防火墙;在安装过程中需要注意系统设置(口令管理),Oracle中的主要几个用户:
• 超级管理员:sys/change_on_install(保持默认没有√,只需要重新设置新口令为change_on_install,否则默认采用oracleadmin)
• 普通管理员:system/manager(保持默认没有√,只需要重新设置新口令为manager,否则默认采用oracleadmin)
• 普通用户:scott/tiger(scott要解锁即把√去掉)
B 为了保证系统的启动够快,最好将这些服务修改为手动启动
要使用Oracle必须启动的服务是:
• 监听服务:OracleOraDb10g_home1TNSListener
• 数据库服务:OracleServiceMLDN
• 如果需要采用IE模式下编译执行,需要启动OracleOraDb10g_home1iSQL*Plus服务
C 3种:
• 命令行的方式:sqlplus启动
• winform方式:sqlplusw启动(为例)
• IE登陆方式:http://localhost:5560/isqlplus/
D 常用的SQLPLUSW的命令操作:
• conn  用户/口令(如果是sys用户,还需要指定as sysdba)
• set linesize
• set pagesize
• ed和@(ed和/编写和执行当前最后一条语句)
• show user
E 查看数据库中的所有表:SELECT * FROM tab ;
F 查看一张的表的结构:DESC 表名称;
G 4张系统预定义的表(结构)(EMP,DEPT,SALGRADE,BONUS)
H SELECT的简单语法:
SELECT * | [列1 别名1,列2 别名2,...]
FROM 表名称 ;
注意:(1)如果要访问其他用户的表,需要在表名称前面加上(用户名.)
      (2)可以通过“||”连接其他字符串
I 限定查询(WHERE子句):
SELECT [DISTINCT] * | [列1 别名1,列2 别名2,...]
FROM 表名称
WHERE 条件(s) ;
条件:
<、<=、>、>=、<>、!=、=、LIKE‘_和%’、IN(值域)、NOT IN、IS NULL、IS NOT NULL、BETWEEN…AND、AND、OR、NOT、
J 对结果进行排序(Order by):
SELECT [DISTINC] * | [列1 别名1,列2 别名2,...]
FROM 表名称
WHERE 条件(s)
ORDER BY 排序的字段1 [ASC|DESC] , 排序的字段2 [ASC|DESC];   ASC表示的是升序排列,DESC是降序
一定写在查询语句的最后;
K 单行函数:
1、 字符函数:
• UPPER(‘字符串’或字段名):转大写
• LOWER(‘字符串’或字段名):转小写
• INITCAP(‘字符串’或字段名):首字母大写
• CONCAT(‘字符串1’ 或字段名, ‘字符串2’ 或字段名):将字符串连接在一起
• SUBSTR(列的名称,截取的开始点,截取的长度):提取字符串的某一特定部分
• LENGTH(‘字符串’或字段名):返回字符串的长度
• INSTR:在字符串中查找某个子穿的位置
• LPAD:以左对齐的方式填充字符型数据
• RPAD:以右对齐的方式填充字符型数据
• TRIM(‘字符串’或字段名):去除字符串头部或尾部的空白
• REPLACE(列或表达式,原始内容,要替换的内容) :替换
2、 数值函数:
• 四舍五入:ROUND(数据,[保留几位小数,不写表示不保留小数,正数为保留小数点后几位,负数表示保留小数点左起几位])
• 舍弃小数:TRUNC(数据)
• 取模(余数):MOD(被除数,除数)
3、 日期函数:
• MONTHS_BETWEEN():求出两个日期间的月数
• ADD_MONTHS():一个日期上加上指定月数之后的日期
• NEXT_DAY():表示下一个的今天的具体日期,第二个参数为星期,如果是英文版本,则采用’monday’等
• LAST_DAY():求出给定日期所在月的最后一天
注意:
• 日期 – 数字 = 日期
• 日期 + 数字 = 日期
• 日期 – 日期 = 数字(天数)
获得系统当前日期用sysdate
4、 转换函数:
• TO_CHAR():将内容变为字符串
• TO_NUMBER():将内容变为数字
注意:(1)要把日期转换成字符串,可以指定要取出的日期的数字:
  |- 年:yyyy
  |- 月:mm
  |- 日:dd
      (2)去掉前导0加fm
      (3)指定金额格式用’货币符号999,999,999’, 货币符号用L表示提取当前字符集所在国家货币符号
5、 通用函数:NVL或DECODE函数
• NVL()函数,将null变为0
• DECODE()函数
DECODE(列 | 表达式,匹配条件1,显示结果1,匹配条件2,显示结果2,…) ;类似于IF..ELSE语句


今天我遇到的问题


B 安装oracle时没有进行进行口令管理的设置
解决方法:
alter user scott account unlock ;进行解锁
sys和system用户采用口令oracleadmin,而不使用
如何设置scott的新口令为tiger ??
问题描述:

C SELECT EMPNO,ENAME,HIREDATE FROM EMP WHERE HIREDATE LIKE '%1981%';
查找不到
解决方法:
SELECT EMPNO,ENAME,HIREDATE FROM EMP WHERE HIREDATE LIKE '%81%';
问题描述:

D SELECT *FROM BONUS;
显示未选定行   ?
解决方法:

问题描述:

E select concat('员工编号',empno,'姓名',ename)from emp;
解决方法:
select concat('员工编号',empno) from emp;
问题描述:

F SELECT MONTHS_BETWEEN('18-2月-2009',sysdate) from dual;
预期得到1,结果是-.96178129,得到的不是整数,而且发现结果采用参数1-参数2
解决方法:

问题描述:

G select ename,to_number(hiredate) from emp;
显示无效数字
解决方法:
日期型不可以转换成数字
问题描述:

H select to_date('01-01-2009','yyyy-mm-dd') from dual;
select to_date('01-1-2009','yyyy-mm-dd') from dual;
第 1 行出现错误:
ORA-01830: 日期格式图片在转换整个输入字符串之前结束
解决方法:
select to_date('2009-1-1','yyyy-mm-dd') from dual;
列出今天收获
A 掌握了Oracle在windows操作系统下的安装和简单配置
B 掌握了常用的SQL基本查询语句
C 掌握的常用的单行函数
D 掌握了一种教学方法,快速的把自己讲解的东西用随讲笔记给学生(需要快速的打字速度及熟练的知识讲解能力)


       2009年3月16日,我参加mldn培训的第一天,从一开始害怕紧张到后来的基本适应,我觉得自己整个神经都绷得很紧。

       第一次接触如此高效率的学习,感觉很新鲜也很有压力,毕竟一天接收到的信息量非常的大,能不能吸收还是要看自己的努力,我相信自己一定可以做到,也有决心坚持下去。

       李老师的讲课风格让我很有感触,声音洪亮,认真负责。而且从老师身上我又学习了一种新的讲课方式,或许对于我以后再次走上讲台会有很大的帮助。

       总之,第一天,我觉得很充实,也基本能跟上,希望以后能坚持!↖(^ω^)↗

你可能感兴趣的:(数据结构,oracle,配置管理,IE,WinForm)