请选择 进入手机版 | 继续访问电脑版

個人學習筆記

[复制链接]
滚雪球少年 发表于 2021-1-1 18:32:38 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
查找所有

  1. select t.* from mysectable t ;
复制代码
rowid 解鎖 可直接對表格進行利用

  1. select t.* ,rowid from mysectable t ;
复制代码
刪除某一列

  1. delete  from mysectable t where t.userid = '1';
复制代码
插入數據

  1. insert into mysectable (     USERID,     USERNAME,     AGE,     SEX,     CLASSNAME,     CREATEDATE)values('3','阿雅','18','女','三年級',sysdate);
复制代码
sysdate 系統時間
暗昧查詢 % :查找一個或多個 ; _ :查找一個

  1. select t.* from mysectable t where t.username like '%阿%';select t.* from mysectable t where t.sex='男' ;
复制代码
between 兩者之間

  1. select t.* from mysectable t where t.userid='1' between t.userid ='3' ;
复制代码
分組 order by desc:降序 asc:升序(默認)

  1. select t.* from mysectable t order by t.userid  desc;
复制代码
別名排序

  1. select  t.username from mysectable t order by t.username;
复制代码
轉換 把數字轉換為字符

  decode (條件 , 值1 , 返回值1 , … ) 別名 t.* from 表名 表別名;
select decode (t.islockip , ‘0’,‘不綁定’ ,‘1’,‘綁定’) aaa t.* from 表名 表別名;
左補位

  1. select  LPAD(t.username,10,'*') from mysectable t ;
复制代码
右補位

  1. select  RPAD(t.username,10,'*') from mysectable t ;
复制代码
截取指定字符 返回被截取后的字符

  1. select TRIM('小' FROM t.username) from mysectable t ;
复制代码
返回字段的長度

  1. select  LENGTH(t.username) from mysectable t ;
复制代码
将日期转按一定格式换成字符范例

  1. select to_char(t.createdate,'yyyy/MM/dd HH24:mi:ss') from mysectable t;
复制代码
将字符范例按一定格式转化为日期范例

  1. select to_date('2003-10-17 21:15:37','yyyy-mm-dd hh24:mi:ss') from dual
复制代码
返回值范例:
字符型、日期型、日期时间型、数值型、钱币型、逻辑型或 null 值
1、NVL函数
NVL函数的格式如下:NVL(expr1,expr2)
寄义:如果oracle第一个参数为空,那么久显示第二个参数;如果第一个参数不为空,就显示第一个参数原来的值
例子: 當某個值為空時,可轉換為指定字符

  1. select t.* ,NVL(t.classname,'49841') FROM mysectable t;
复制代码
2、NVL2函数
NVL2函数的格式如下;NVL2(expr1,expr2,expr3)
寄义是:如果该函数的第一个参数为空,那么显示第二个参数;如果第一个参数不为空,则显示第三个参数
3、NULLIF函数
NULLIF(expr1,expr2)函数的作用是:如果expr1和expr2相等则返回空(NULL),否则返回第一个值
例子

  1. select first_name, LENGTH(first_name) "expr1", last_name, LENGTH(last_name) "expr2",NULLIF(LENGTH(first_name), LENGTH(last_name)) resultfrom employees;
复制代码
4、Coalesce函数
Coalesce函数的作用是的NVL函数有点相似,其优势是有更多的选项
格式如下:
Coalesce(expr1,expr2,expr3…exprn)
表现可以指定多个表达式的占位符,所有表达式必须是相同范例,大概可以隐性转换为相同的范例。
返回表达式中第一个非空表达式,如有以下语句:select coalesce(NULL,NULL,3,4,5)from dual 其返回效果为:3
如果所有自变量均为NULL,则coalesce返回NULL值
coalesce(expression1,…n)与此case函数等价
條件判斷語句:

case else 語句例子

  1. select t.age ,t.userid,   case t.username     when '薩爾' then t.age+1     when '阿雅' then t.age+2    when '阿拉克' then t.age+3  else t.age   '新一列的表格顯示新數據'end  from mysectable t;
复制代码
例子2

  1. select t.userid,       t.username,              case t.sex         when '男' then          '1.1'         else          '2.2'       end as t,       case         when t.sex = '女' then          '2.3'         else          '1.3'       end as b  from mysectable t;
复制代码
if…then…else 語句例子 多用在存儲過程

decode 中 if …then …else 例子

  1. select decode(t.sex, '男', '1', '女', '2', '未知') from mysectable t;
复制代码
多表查詢

兩表之間

例子1

  1.   select myfirsttable.userid,myfirsttable.username,mysectable.userid,mysectable.username  from myfirsttable ,mysectable  where myfirsttable.userid = mysectable.userid;
复制代码
例子2

  1.   select myfirsttable.userid,       myfirsttable.username,       myfirsttable.age,       myfirsttable.sex,       mysectable.userid,       mysectable.username,       mysectable.age,       mysectable.sex         from myfirsttable, mysectable where  myfirsttable.userid = mysectable.userid and myfirsttable.sex = mysectable.sex;
复制代码
別名查詢

  1. select a.userid,       a.username,       a.age,       a.sex,       b.userid,       b.username,       b.age,       b.sex         from myfirsttable a, mysectable b where  a.userid = b.userid and a.sex = b.sex;
复制代码
兩表及以上查詢

交叉連接

  1. Cross joins    select t1.*, t2.*from test1 t1cross join test2 t2;
复制代码
自然連接

  1. Natural joinsselect *from test1 t1natural join test2 t2;
复制代码
内毗连

  1. (Inner Join/Join)select *from test1 t1inner join test2 t2using(id);
复制代码
on关键字

  1. select t1.*,t2.*from test1 t1inner join test2 t2on t1.id = t2.id;
复制代码
自查询
  1. select t1.*,t2.*from test1 t1inner join test1 t2on t1.id = t2.id;
复制代码
左外毗连

  1. (left outer join / left join)select t1.*,t2.* fromtest1 t1left outer join test2 t2on t1.id = t2.id;
复制代码
等同于(下同):

  1. select t1.*,t2.* fromtest1 t1left join test2 t2on t1.id = t2.id;
复制代码
右外毗连

  1. (right outer join / right join)select t1.*,t2.* from test1 t1right outer join test2 t2on t1.id = t2.id;
复制代码
全外毗连

  1. (full outer join / full join)select t1.*,t2.*from test1 t1full outer join test2 t2on t1.id = t2.id;
复制代码
多表联合查询

三个表内毗连查询

  1. select * from test1 t1inner join test2 t2on t1.id = t2.idinner join test3 t3on t1.id = t3.id;
复制代码
三个表全外毗连查询

  1. select * from test1 t1full outer join test2 t2on t1.id = t2.idfull outer join test3 t3on t1.id = t3.id;
复制代码


  1. select a.userid,a.username,b.userid,b.username,b.classname,c.userid,c.username,c.classnamefrom myfirsttable a,  mysectable b ,mythreetable cwhere a.userid = b.userid and b.classname = c.classname;
复制代码
二 左鏈接查詢

  1. select a.userid,a.username,b.userid,b.username,b.classname,c.userid,c.username,c.classnamefrom  mysectable bleft join myfirsttable aon b.userid=a.useridleft join mythreetable con b.classname=c.classname
复制代码
不等值查詢

範圍最好是時間或數字類型

  1. select t.* from  sysdepartment t where t.departtier between 'A' and 'F';
复制代码
自連接

  1. SELECT a.username || ' works for ' || c.STATUREFROM myfirsttable a, mythreetable cwhere a.userid = c.userid ;
复制代码
AVG(均匀值)和 SUM (合计)函数

MIN(最小值) 和 MAX(最大值)函数

例子一

  1. SELECT   AVG(t.age), MAX(t.age),MIN(t.age), SUM(t.age)FROM myfirsttable tWHERE t.username LIKE '%小%';
复制代码
COUNT(计数)函数

COUNT(*) 表现記錄總數

  1. SELECT COUNT(*)FROM myfirsttable
复制代码
DISTINCT 关键字

COUNT(DISTINCT expr) 返回 expr非空且不重复的记载总数

  1. SELECT COUNT(distinct t.userid)FROM myfirsttable t;
复制代码
组函数忽略空值 求均匀值

  1. SELECT AVG(t.stature)FROM mythreetable t;
复制代码
NVL函数使分组函数无法忽略空值 加上空值的長度進行求值

  1. SELECT AVG(NVL(t.stature, 0))FROM mythreetable t;
复制代码
来源:https://blog.csdn.net/weixin_44624120/article/details/112005556
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )