Oracle小记

来源:互联网 发布:苹果4s如何变成4g网络 编辑:程序博客网 时间:2024/06/05 09:08

Oracle学习笔记

SQL语言分类:

DML 语句(数据操作语言)Insert(into)修改、Update插入、 Delete删除、MergeDDL 语句(数据定义语言)Create创建、Alter@?、 Drop删除、TruncateDCL 语句(数据控制语言)Grant、Revoke事务控制语句 Commit提交、Rollback回滚、Savepoint


简单的 Select 语句(理解)

select * from 表名

使用算术表达式 + - / *(理解)


连接运算符 ||(学习)

Oracle中使用||作为连接运算符,+只用于算数运算
select 1||2 from dual;

使用字段别名 as ,with as(不理解)

点击打开链接

空值 is (not) null

(不)为空
where 字段 is (not) null

去除重复行 distinct

select distinct name, id from A
查询多个时,都相同才会去重

查询结果排序 order by asc(desc)

1、ORDER BY 中关于NULL的处理缺省处理,Oracle在Order by 时认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前。可以使用nulls first 或者nulls last 语法来控制NULL的位置。Nulls first和nulls last是Oracle Order by支持的语法如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc)如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (不管是asc 还是 desc)使用语法如下:--将nulls始终放在最前
select * from zl_cbqc order by cb_ld nulls first
--将nulls始终放在最后
select * from zl_cbqc order by cb_ld desc nulls last
2、几种排序的写法
单列升序:select<column_name> from <table_name> order by <column_name>; (默认升序,即使不写ASC)单列降序:select <column_name> from <table_name> order by <column_name> desc; 多列升序:select <column_one>, <column_two> from <table_name> order by <column_one>, <column_two>; 多列降序:select <column_one>, <column_two> from <table_name> order by <column_one> desc, <column_two> desc; 多列混合排序:select <column_one>, <column_two> from <table_name> order by <column_one> desc, <column_two> asc;
3.自定义排序
select * from tb order by decode(blogid,3,1,2), blogid;
blogid 值为3的排第一,(1,2)按顺序往下,排序方式是3第一,(1,2)为一组,按照blogid升序排序,加blogid则为降序排序

比较运算符 > < (!= or <>) between and

>大于
<小于<>不等于  !=不是标准语法,也表示不等于,在oracle中可用
between and 选取介于两个值之间的数据范围(慎用,不同数据库的范围不同)

in 操作 not in

in:确定给定的值是否与子查询或列表中的值相匹配(被包含,含于)not in:表示不被包含,不含于

模糊查询 like

其中关于条件,SQL提供了四种匹配模式:


1,% :表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。

比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'

将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。

另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件
SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'

若使用 SELECT * FROM [user] WHERE u_name LIKE '%三%猫%'
虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。

2,_ : 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:

比如 SELECT * FROM [user] WHERE u_name LIKE '_三_'
只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;

再比如 SELECT * FROM [user] WHERE u_name LIKE '三__';
只找出“三脚猫”这样name为三个字且第一个字是“三”的;


3,[ ] :表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

比如 SELECT * FROM [user] WHERE u_name LIKE '[张李王]三'
将找出“张三”、“李三”、“王三”(而不是“张李王三”);

如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”
SELECT * FROM [user] WHERE u_name LIKE '老[1-9]'
将找出“老1”、“老2”、……、“老9”;

4,[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。

比如 SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三'
将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等;

SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]';
将排除“老1”到“老4”,寻找“老5”、“老6”、……

逻辑运算符 or and not

执行顺序:NOT>AND>OR

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 树莓酮的危害 树莓酮价格 树波萝 菠萝蜜树 菠萝树长什么样 菠萝树的图片 菠萝树益智玩具体验馆 菠萝蜜树价格 孕妇 树菠萝 菠萝蜜是什么 树菠萝的营养价值 木菠萝树 菠萝蜜种植 树菠萝的功效与作用 树萄萄 树葡桃 台湾树葡萄 梦见葡萄树上结满葡萄 葡萄树怎么修剪 葡萄树修剪 葡萄树图片 葡萄树简笔画 梦见葡萄树 门前葡萄树 树葡萄的功效与作用 葡萄树价格 树葡萄苗 葡萄树怎么种植 树葡萄种植方法 树葡萄种植 树葡萄价格 台湾树葡萄一斤多少钱 树葡萄是什么 树上葡萄 葡萄树苗怎么种 葡萄种植技术与管理 葡萄树什么时候种植 葡萄种植技术流程图 葡萄树种植 葡萄苗种植方法 树葡萄种苗