=======oracle=======
1.主流市场份额:oracle %48 db2 %18 sqlserver mysql开源免费 其他属RDBMS关系型数据库管理系统,管理数据db.一堆文件而已--文件系统(unix/linux)
程序界面(I/O)----程序(代码 处理数据)---保存到文件中(数据的持久化)
2.保险是软件开发的一个方向。
3.数据的检测和操作,使用文件非常的慢,所以数据库为此而生。
4.关系型数据库:表----二维表来表达关系。行,记录\列 字段 表头
5.数据库中的一个表的结构,
oracle ---------sqlplus 工具,输入基本的命令返回结果
sqlserver-------sql2005 工具等
6。在sql环境下,sqlplus 使用!clear 清屏 ,使用 desc 表名 查看一张表的结构和数据
使用!来使用shell命令哦。 orlace每个语句结束后要以;结尾。
7。sql语句的分类:
select 数据检索
数据操作(dml) insert delete update
数据定义语言 (ddl) create drop alter
事物控制 commit rollback savepoint
数据授权语句 与dba相关 grant revoke
7.1: (******************************************************)
1.让编译器按照原样输出显示:加上""双引号即可。例如:表别名
2。oralce独有的字符串连接 ||,用单引号来表示字符:
sql中的字符串 用''引起来
3。使用/,可以执行上一次命令。
4。oralce中的转义是用',来表示转义
(******************************************************)
5.NULL值,表示空值处理。与0不一样。未知值,
6.desc 表 ,查看这个表的结构。查看字段名
空值和任何值作数学运算都是空。
NULL与NULL不相等,也不不相等。 par1=par2 false par1!=par2 false
par1 > par2 false par1 < par2 false 就是不能比,比不了。
par1 is null true
par2 is null true
par1 is par2 error //is 后边就能跟具体的NULL,
注意:NULL的判断应该用 is 来判断。
oracle 提供了 nvl()函数来处理NULL值,以解决NULL的问题。
nvl(par1,par2);
par1要处理的字段或者值
par2是一个具体值
当par1为NULL返回par2,如果不为空,则返回par1的值。(很好用的函数哦。)
nvl处理的准测:空值要尽早处理。别等运算完了才去处理。
7。排重显示(重复的不显是):distinct 字段1,字段2:表示2个字段都不同的情况下才显示
8。 and or between and in (zi ju or 1,2,4)
in 于 or 的不同点:in 效率更高一点,第一个符合之后就不会再次判断了。or 则慢。
like 通配符 % _ []
user_tables 用户数据表。系统表
9。记住:判断一个字段是否为null是用is null来判断。
10。'%\_%' escape '\' :说明使用\来转义。
select * from abc where a like '%\_%' escape '\';
注意:数据字典中,默认处理数据的方式是:大写方式存储。除非你用""来表示原样存储。
只要一遇到数据字典中的东西,即系统数据表、库,就要想到其默认处理方式是大写!!查不出数据哦。
= != <> ^= 不等于 > <= < >= or and in not in(注意NULL值):即空值在里面的时候就不起作用了。 like not like is null is not null
注意:NULL在排序中认为是无穷大,最大。
oracle是从1开始编号的,不是0;
sql语句的关键字大小写不敏感,但是对字符串的值敏感的,区分大小写的哦。
处理函数出现在where后,要慎用;大大降低查询效率,可能破坏索引。在前面用就好了。
1.简单的select:选择记录,筛选某几列(投影操作),join操作:关系。数据分布在不同的表中
select [可选操作] {必选操作,至少选一个} from table ;
2.where子句 :条件
oralce中,字符串的筛选区分大小写的阿。
3。排序order by
升序:自然顺序,字典顺序,默认顺序 asc
降序 desc //同时也是查询表结构的一种东西
第二排序字段,第3排序字段。。。。用逗号隔开
select salary,last_name from s_emp where order by salary,last_name desc
4.单行函数
作用:在sql中作计算,修改一些一些非法数据nvl(),改变数据显示格式,分组,改变列的数据类型。
单行函数:对每一行数据都要作处理。每一行得到一个结果。upper()lower()
initcap():把每个英文单词的首字母大写。select initcap('one world one cw') from dual;
concat substr :select substr('hello',-2,2) from dual;//负数就是倒着数罢了。
length();
数字:round四舍五入 turnc截取45.923 ->2 45.92
to_char(字段,'格式'):select to_char(salary,'fml999,999.99') from dual ;
多行/组函数:对一组数据进行处理,得到一个结果。count() sum()
oracle为单行函数的测试引入了一张测试表dual (单行,单列表)
5。多表查询
6。组函数和分组
7。子查询