oracle数据库(9i)

据说很牛的数据库,最近在看教程,看了之后领会了什么写在这里,就不在百度上放了,据说这里的左邻右舍都是读过书有学问有见识的人,得到人家一句批评那是很荣幸的事情,百度那里太冷清了。废话打住!

打不住!

scott是oracle数据库当中一个常用的测试用户,来历是什么呢?原来,scott是个人名,他是oracle公司的第一个员工,当然是出了他的两位老板之外,也就是那两位大名鼎鼎的创始人,不好意思,我现在也不知道他们到底叫什么,只知道其中一个很嚣张,也很有才,哈佛退学生,比盖茨钱少点儿,有回给哈佛即将毕业的学生演讲还被保安带下来了,哈哈。

oracle数据库与数据库实例

每一个数据库通常都对应一个数据库库实例。实例就是SID。但有时会出现一个数据库对应多个数据库实例。8i开始连接服务名,而不是实例名或数据库。

触发器是在服务器段约定好的代码,只要发生了约定的事件就会执行代码,相当于java中的事件处理程序代码。

sql语句:

创建表:create table student (name varchar2(20),age number(3));

插入记录:insert into student values('tom',18);

查看表结构:desc student;

删除表:drop table student;

提交,在数据库中永久生效:commit;

sqlplus worksheet中,用两个减号(--)作为注释,这样的指令将不会得到执行:--drop table student;

字符串类型的值要用单引号包括,如果字符串中出现单引号,要用两个单引号来表示,也就是前面的单引号充当了转义符。但又不是这样的,就是用两个单引号代表一个单引号。number类型不需要。

oracle的sql语句中,连接两个字段名称或常量或其他表达式,用双竖线(||),起到生成新的字符串的作用,举例:select empno || 'is a ' || job from emp;

别名,用来重命名查询结果中的字段,甚至整个查询结果,可以用双引号引起来,也可以不引,但只要引就要用双引号,不能用单引号;别名前面可以用as,也可以不用。别名中如果有空格,就一定要将别名用双引号引起来,否则会被解析为两个字符串,非法。别名大小写敏感时也需要用双引号引起来,否则也是得不到尊重的。

select 语句如果选择不止一个字段,相邻两个字段之间要用逗号隔开,否则,只用一个空格的话,sql会把后一个字段当作别名来对待了。因为如果只用空格,正好符合别名的规则,当然是不用as的情况。

更新表中的数据:update student set age=18 where name='nancy';

算术表达式中如果有空值参与运算,那么整个表达式的值为空值,尽管别的操作数的值可能不为空,这就是空值的传染。

字符串中连接空值,相当于连接一个长度为0的字符串。

去除查询结果中的重复行,关键字distinct,distinct的作用范围是后面所有的字段的组合。举例:select distinct age from student ;

排序:order by,是对查询结果排序,使用asc和desc表明排序方式,升序还是降序,其中asc(升序)是默认的方式,别名也是可以排序的。多字段排序,order by一个字段,逗号隔开下个字段,如果都要进行排序方式设定的话,分别来,前一个字段的排序方式不关后一个的事,后一个也与前一个无关。比如select * from student order by age desc,name desc;

排序,空值最高,无论是字符串类型还是数字类型都是这样。在数字类型里,空值当然是大于0的,不要以为两者相等。

表中数据的默认排序是按照数据加入的顺序来排序的,这个排序是不可靠的。

oracle中字符串的内容是大小写敏感的,但是字段名、关键字都不是大小写敏感的。在emp表中,这个语句的查询结果为空:select * from emp where name='scott';为什么呢?因为表中没有名字为小写的scott的员工,有一个大写的,但是两者不是一回事。

oracle中的时间日期字段也是可以比较大小的,日子越往后就越大,日子越往前就越小,似乎也是自然规律呵。表示一个具体的日期,举例一个:'3-3月-88'。

查询目前的系统的时间日期格式:select sysdate from dual;

比较运算符,除了几个常用的,还有几个直接用英文写出来的。常用的符号有:=,  >,  <,  >=,  <=,  <>。用英文标识的有四个,分别是:between…and…,in(set),like,is null。其中,between…and…是包含边界的,而且要把小值放在前,大值放在后。

like用于模糊查询,模糊查询就会涉及通配符的问题,在oracle中,用%代表零道多个字符,下划线代表一个字符,特殊字符用escape查找。举一例:select * from student where name like '_s_%' escape 's';这个语句表示要查询student表中第二个字符是下划线的人的信息。但是这样就把s废掉了。

 

sysdate永远代表目前的系统日期。

oracle之中不区分字符还是字符串,一律都是字符型,或者叫文本型。

char型是定长的字符类型,在定义时如果指定了长度,但存数据的时候没有用足的话,系统会在尾部以空格补足,读取时永远是事先声明的长度,这个长度以字节为单位,你声明多长,就代表占用多少字节,而不是多少字符。这样,将来在程序中使用的时候,还有一个过滤空格的问题。这个类型不好。

nchar也是同样的问题,只不过nchar来自标准sql语言,支持国家语言标准,而且nchar支持的是字符,char支持的是字节,也就是声明nchar是多大,将来就占用多少个字符长度,尾部也是以空格补足。

oracle的函数分为单行函数和多行函数两大类,单行函数是指对查询结果中的每一行都返回一个结果,多行函数是指对查询结果的多行结果返回一个结果。

oracle的字符串下标从1开始。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值