704 views
oracle

Oracle学习记录1

1.简单查询

--语法select ... from ... order by ;
--解析顺序 from-->select-->order by
--select 字段1 别名1,字段2 as 别名2,表达式 as 别名3,nvl(null,0),字段1||’a‘ as 别名4 from 数据来源(某个表) order by asc/desc nulls first/last;
--------------------------------------------------------------------------------
--去重distinct
select distinct name from wordpress;查询wordpress中name字段中的数据,并且去重
--取别名as
select name 姓名,age 年龄 from wordpress;查询name,age字段,并且给它取中文的别名
select name as 姓名,age as 年龄 from wordpress;查询name,age字段,并且给它取中文的别名
--排序order by
select name,age from wordpress order by name desc;查询name,age字段,并按照name字段进行降序排序(desc)
select name,age from wordpress order by name asc;查询name,age字段,并按照name字段进行升序排序(asc)
select name 名称,age from wordpress order by 名称 asc;查询name,age字段,并按照name字段的别名(名称)进行升序排序(asc)
select name,age,deptno from wordpress order by deptno asc,age desc;查询name,age字段,按照deptno字段进行升序排序(asc),并且在deptno相同的情况下,按照age进行降序排序
--伪列排序
select name,age,1 from wordpress;这个1就是伪列,这个伪列可以是自己拼接出来的sql语句
select name,age,age+10 as 十年后年龄 from wordpress;age+10在表里面是没有这个字段的,但是此时是可以自己拼接成一个新的‘十年后年龄’字段
--null处理nvl
select name,age,age+nvl(hehe,0) from wordpress; nvl(hehe,res),当hehe字段的值为空时,给hehe字段赋值为0,如果不为空则按照它原来的值返回
select * from wordpress order by name desc nulls last;当排序时,有空值,可以用nulls last或者first,将空值排序在后面或者前面 
select name,name||'a' as 别名 from wordpress;将name字段拼接加上’a‘字符串
--虚表dual,主要用来做测试
select 999*666 from dual;

2.条件查询

--语法 select 查询内容 from 数据来源 where 行记录条件
select 学生的信息 from 表 where 性别=’男‘
--解析顺序 
学生信息表-->where条件判断-->根据判断结果去select满足条件的数据
--------------------------------------------------------------------------------
--条件运算符 =、>、<、>=、<=、<>、!=、between and、in
--注:其中!=,<>,^=都是不等于的意思
select * from wordpress where name='ying';查询wordpress表中name字段为ying的数据
select name,age from wordpress where name!='ying';查询wordpress表中name字段不为ying的数据
select age from wordpress where age>20;查询wordpress表中age字段值大于20的数据
select age from wordpress where age between 20 and 40;查询wordpress表中age字段值在20-40之间的数据(包含20和40)
select * from wordpress where deptno in(10,20);查询满足deptno字段含有10或者20的数据
--连接条件运算 and、or、not
select name,age from wordpress where name!='ying' and age>20;查询name为ying并且age大于20的数据
select name,age from wordpress where name!='ying' or age>20;查询name为ying或者age大于20的数据
select name,age from wordpress where not name!='ying' not  age>20;查询name不为ying的数据
--空值null运算
is null, is not null,not .... is null
select * from wordpress where name is null;查询wordpress表中name值为空的数据
select * from wordpress where name is not null;查询wordpress表中name值不为空的数据
select * from wordpress where not name is null;查询wordpress表中name值不为空的数据
select * from wordpress where nvl(age,0)<=0;查询wordpress表中,当age值为空时,给age赋值为0,然后查找出age=0的数据
--模糊查询like
%(任意个任意字符),_(仅仅只有1个任意字符)
select * from wordpress where name like '%y%';查询name字段值中包含y的数据
select * from wordpress where name like 'y%';查询name字段值中以y开头的数据
select * from wordpress where name like '_y%';查询name字段值中第二个字符为y的数据
select * from wordpress where name like '%y_';查询name字段值中倒数第二个字符为y的数据
select * from wordpress where name like '%y%%' escape('y');查询name字段值中包含‘%’的数据,这里escape('y')意思是,y字符串后面的‘%’只是一个‘%’字符串(这里的y值在这条sql语句中起作用,并不是指数据中的y),不代表其他含意,y是标识,它后面的第一个只是普通的字符串
select * from wordpress where name like '%y%%y_%' escape('y');因为escape只会对他后面的第一位进行转译称普通字符串,因此此处意思是,查询name字段中包含‘%‘和’_‘的数据
--再次申明:escape('y'),中的y可以是任意一个字符串,这个字符串只是在like解析时,用来做标识的,标识在这个y后面第一个字符是普通字符串(很单纯的’%‘,'_'),不代表其他含义,y并不是查询的数据中含有的字符串!!!!!!!!
21节未读
影子专属博客 赣ICP备17013143号