江苏快三走势图 :您身边最贴心好用的PPT站!

您当前所在位置:首页 > PPT课件 > 公司管理PPT → sql基础语法培训课件

sql基础语法培训课件

  • 素材大小:828 KB
  • 素材授权:免费下载
  • 更新时间:2017-11-05
  • 素材类别:公司管理PPT
  • 素材上传:chenruini
  • 素材格式:.ppt
  • 关键提要:sql基础语法培训课件,sql
  • 素材版本:PowerPoint2003及以上版本(.ppt)
网友评分:
PPT介绍优秀PPT相关PPT精品PPT

这是sql基础语法培训课件,包括了SQL综述,基本查询,复杂查询,常用单行函数等内容,欢迎点击下载。

PPT预览

sql基础语法培训课件

PPT内容

Oracle-Sql基本语法
云南国税信息中心
2011年7月
目录
1.1 分类
1.2 SQL语句编写规则
1.1分类
SQL(Structure Query Language)
 -关系数据库的基本操作语言
SQL语言分类
   -数据查询语言(Select 语句)
   -数据定义语言(DDL,Data Definition Language)
   例如:Create Table、Alter Table
   -数据操纵语言(DML,Data Manipulation Language)
   例如:Insert、Update 和 Delete
   -数据控制语言(DCL,Date Control Language)
   例如:Grant 、Revoke
   -事务控制语言(TCL,Transactional Control Language)
   例如:Commite、Rollback
1.2 SQL语句编写规则
SQL 关键字不区分大小写
对象名和列名不区分大小写
引用字符值区分大小写
SQL语句可分布在多行上,以空格和换行符分隔
select nsrsbh, nsrmc ,bhrq from dj_nsrxx;
  SELECT NSRSBH,Nsrmc ,bHrq From Dj_nsrxx;
  select * from dj_nsrxx t where t.nsrsbh = '53011121672426X';
  select * from dj_nsrxx t where t.nsrsbh = '53011121672426x';
2.1 语句格式
          2.2 简单查询语句
          2.3 使用WHERE子句
          2.4 使用ORDER BY子句
2.1 语句格式
简单查询语句格式
   Select  ---
      From   ---
   Where  ---
   Order by  ---;
用Query Builder编写简单查询语句
2.1 语句格式
          2.2 简单查询语句
          2.3 使用WHERE子句
          2.4 使用ORDER BY子句
2.2.1 查询所有列
当查询对象的所有列时,在SELECT后用“*”。
-查询综合征管软件字典表所有列:
      select * from zd_sjkdx;
      select * from zd_sjkldx;
  
 *综合征管软件中所有表、视图、存储过程等都是
 由 ctais用户创建,并且为每个对象建立了同意词(synonym),查询时可省略对象的拥的者前缀。
     select * from ctais.zd_sjkdx;
      select * from ctais.zd_sjkldx;
  
2.2.2 查询指定列
在Select语句后指定列名
  
   select nsrsbh, fpzl_dm,  pzrq from fp_pz;
select nsrsbh, fpzl_dm,  pzrq ,* from fp_pz;
  
2.2.3 取消重复行
在SELECT后使用关键字DISTINCT可以取消重复行
-select distinct nsrsbh from fp_pz;
    -select nsrsbh from fp_pz;
2.2.4 使用算术表达式
执行查询时,可在数值列上使用算术表达式
 (+、-、×、÷)
 
 select nsrsbh, bs, dj, je, bs * dj from fp_xs;
2.2.5 使用别名
表(对象)别名
列别名,as可省略,若列别名含特殊字符,则需加“号
  select fp_xs.nsrsbh, fp_xs.bs, fp_xs.dj, fp_xs.je,fp_xs.bs * fp_xs.dj  from fp_xs;
  select t.nsrsbh, t.bs, t.dj, t.je, t.bs * t.dj from fp_xs t;
  select t.nsrsbh "纳税人识别号",
       t.bs "本数",
       t.dj  as "单价",
       t.je "金额",
       t.bs * t.dj "计算值“, t.bs * t.dj hj
  from fp_xs t;
2.2.6 连接字符串
使用“||”,可多个互连
使用函数concat(char1,char2),仅能同时两个字串
  select t.fpzl_dm || t.fpzl_jc, t.fpzl_dm, t.fpzl_mc from dm_fpzl t;
select t.fpzl_dm || t.fpzl_jc || '(' || t.fpzl_mc || ')' from dm_fpzl t;
select concat(t.fpzl_dm, t.fpzl_jc), t.fpzl_dm, t.fpzl_mc from dm_fpzl t;
2.1 语句格式
          2.2 简单查询语句
          2.3 使用WHERE子句
          2.4 使用ORDER BY子句
2.3.1 where 子句使用的比较操作符
Where 用于指定条件子句,当条件为TRUE,返回满足条件的数据,如果条件为FALSE,不返回数据。编写子句时合,需要使用各种比较操作符
2.3.2   where 子句中使用数字
可用单引号引住,也可直接使用
select * from fp_xs t where t.dj = 17;
   select * from fp_xs t where t.dj = '17';
2.3.3 where 子句中使用字符
必须用单引号引住
Char数据类型存储数字时,可省略
select * from dj_nsrxx t where t.nsrsbh = '530112734313217';
select * from dj_nsrxx t where t.djzclx_dm = '410';
select * from dj_nsrxx t where t.djzclx_dm = 410;
2.3.4 where 子句中使用日期
系统当前日期用sysdate表示
查询当前系统的日期格式,
select *  from nls_database_parameters t where t.parameter in ('NLS_DATE_LANGUAGE','NLS_TIMESTAMP_FORMAT');
综合征管软件中的为
     NLS_DATE_LANGUAGE:AMERICAN
     NLS_TIMESTAMP_FORMAT:
                 DD-MON-RR HH.MI.SSXFF AM
2.3.4 where 子句中使用日期
在系统中直接输入
  2008年1月1日至2008年12月1日表示方式:
     01-JAN-08、01-FEB-08、01-MAR-08、01-APR-08、
     01-MAY-08、01-JUN-08、01-JUL-08、01-AUG-08、
     01-SEP-08、01-OCT-08、01-NOV-08、01-DEC-08
select t.bhrq, t.* from dj_nsrxx t where t.bhrq = '12-JUL-2005';
select t.bhrq, t.* from dj_nsrxx t where t.bhrq = '12-JUL-05';
2.3.4 where 子句中使用日期
使用to_date函数转换
select t.bhrq, t.*  from dj_nsrxx t where bhrq = to_date('2005-07-12', 'yyyy-mm-dd');
select t.bhrq, t.*  from dj_nsrxx t where bhrq = to_date('2005/07/12', 'yyyy/mm/dd');
select t.bhrq, t.*  from dj_nsrxx t where bhrq = to_date('20050712', 'yyyymmdd');
2.3.5 where 子句中between…and…
用于指定一定范围内的数据,较小值在and前,较大值在and后
select t.bhrq, t.*  from dj_nsrxx t where t.bhrq between '1-apr-05' and sysdate;
--返回空
  select t.bhrq, t.*  from dj_nsrxx t where t.bhrq between sysdate and ‘1-apr-05’;
2.3.6 where 子句中使用is null
用于检测列或表达式的结果是否为空
null表示未知值,即不是空格也不是0,当算术表达式包含NULL,其结果也是null
不与=或<>操作符使用,即=null或<>null总是按回false
select * from fp_yj t where t.je is null;
2.3.7 where 子句中使用in
当列或表达式匹配列表中的任一值时,返回满足条件的值
select t.fpzl_dm,t.* from fp_kc t where t.fpzl_dm in('21052','1140');
等同于:
  Select t.fpzl_dm, t.*  from fp_kc t where t.fpzl_dm = '21052'    or t.fpzl_dm = '1140';
2.3.8 where 子句中使用like
用于执行模糊查询
使用两个通配符:
   %:表示0到多个字符
  _:  表示单个字符
模糊查询中含有两个通配符时,需用escape指定转义字符
select * from dj_nsrxx t where t.nsrmc like '%铜业%';
select t.dhhm,t. * from dj_nsrxx t where t.dhhm  like '_4%';
select t.dhhm,t. * from dj_nsrxx t where t.dhhm  like '%a_%' escape 'a';
select * from wz_cljds t where t.wsnr like '%6a%%' escape 'a';
2.3.9 where 子句中使用逻辑操作符
AND  组合条件都是TRUE,返回TRUE,否则FALSE
OR   组合条件其中之一是TRUE,返回TRUE,否则FALSE
NOT  组合条件是FALSE ,返回TRUE,否则FALSE
select *  from dj_nsrxx t where t.nsrsbh = '530112734313217'
   and t.djzclx_dm = '175';
select *  from dj_nsrxx t where t.djzclx_dm = '420'
    or t.djzclx_dm = '175';
select * from fp_nsrjc t where not t.fp_kczt_dm = 10;
2.1 语句格式
          2.2 简单查询语句
          2.3 使用WHERE子句
          2.4 使用ORDER BY子句
2.4.1 升序排序
默认情况下,按ORDER BY中指定的定进行升序排列
select t.rq, t.*
    from fp_xs t
  where t.rq between '10-jul-05' and    to_date('20050731', 'yyyymmdd')
   order by t.rq;
2.4.2 降序排序
在指定列后指定DESC
select t.rq, t.*
  from fp_xs t
 where t.rq between '10-jul-05' and to_date('20050731', 'yyyymmdd')
 order by t.rq desc, nsrsbh;
select t.rq, t.*
  from fp_xs t
 where t.rq between '10-jul-05' and to_date('20050731', 'yyyymmdd')
 order by t.rq desc,nsrsbh desc ;
2.4.3 使用列位置排序
以数字指定对应列进行排序
select * from dj_nsrxx t where t.nsr_swjg_dm = '15301110000' order by 1;
3.1 数据分组
3.2 连接查询
3.3 子查询
3.1.1 分组函数
对数据进行统计
作用于多行,返回一个结果
与group by 子句结合使用,如果忽略group by 子句,会对所有行进行汇总统计,并产生一个结果
分组函数不能出现在where 子句和group by 子句中
可以在函数中指定ALL或DISTICT选项,默认是ALL,指定DISTICT则只会统计不同行的值
常用分组函数:MAX 、MIN、AVG、SUM、COUNT
3.1.2 group by 子句和having 子句
group by子句对查询结果进行分组统计
Having 子句用于限制分组显示结果
在select选择列表中出现的列或表达式,必须出现在group by 子句中
如果有where、group by、having 子句,order by只能放在最后
3.1.2 group by 子句和having 子句
select max(lrrq) from fp_xs t;
select min(bhrq) from dj_nsrxx t;
select max(bhrq) from dj_nsrxx t;
select count(*) from dj_nsrxx t where t.nsrzt_dm < 40;
select t.nsr_swjg_dm, sum(bs)
  from fp_xs t
 where t.fpzl_dm = '21019'
   and t.rq between tO_date('20050101', 'yyyymmdd') and
       tO_date('20051231', 'yyyymmdd')
   and t.nsr_swjg_dm like '15301%'
 group by t.nsr_swjg_dm;
select t.nsr_swjg_dm, sum(bs),count(*)
   from fp_xs t
  where t.fpzl_dm = '21019'
    and t.rq between tO_date('20050101', 'yyyymmdd') and
        tO_date('20051231', 'yyyymmdd')
    and t.nsr_swjg_dm like '15301%'
  group by t.nsr_swjg_dm
 having sum(bs) > 30;
3.1.3 ROLLUP和CUBE
数据仓库技术
在group by 子句中使用,对分组列产生小计
3.1.3 ROLLUP和CUBE
select t.nsr_swjg_dm || a.swjg_jc, t.fpzl_dm || b.fpzl_mc,  sum(t.je),       sum(t.se)  from fp_yj t, dm_swjg a, dm_fpzl b
 where t.rq > '1-jul-05'   and t.rq < '31-jul-05'   and t.nsr_swjg_dm like '15301%'   and t.nsr_swjg_dm = a.swjg_dm   and t.fpzl_dm = b.fpzl_dm group by rollup(t.fpzl_dm || b.fpzl_mc, t.nsr_swjg_dm || a.swjg_jc);
select t.nsr_swjg_dm,t.fpzl_dm,sum(t.je),sum(t.se) from fp_yj twhere t.rq > '1-jul-05'and t.rq < '31-jul-05'and t.nsr_swjg_dm like '15301%'group by cube(t.nsr_swjg_dm,t.fpzl_dm);
select t.nsr_swjg_dm || a.swjg_jc, t.fpzl_dm || b.fpzl_mc, sum(t.je),       sum(t.se)  from fp_yj t, dm_swjg a, dm_fpzl b
 where t.rq > '1-jul-05'   and t.rq < '31-jul-05'   and t.nsr_swjg_dm like '15301%'   and t.nsr_swjg_dm = a.swjg_dm
   and t.fpzl_dm = b.fpzl_dm
 group by cube(t.fpzl_dm || b.fpzl_mc, t.nsr_swjg_dm || a.swjg_jc);
3.1 数据分组
3.2 连接查询
3.3 子查询
3.2.1 内连接
在执行连接查询时没有指定连接符,则为内连接
内连接为简单连接
/*  oracle9i后支持
 select a.nsrsbh, a.nsrmc, a.djzclx_dm, b.djzclx_mc
  from dj_nsrxx a
 inner join dm_djzclx b on a.djzclx_dm = b.djzclx_dm;
*/
select a.nsrsbh, a.nsrmc, a.djzclx_dm, b.djzclx_mc
  from dj_nsrxx a, dm_djzclx b
 where a.djzclx_dm = b.djzclx_dm;
3.2.2 外连接
外连接是内连接的扩展,不仅返回满足条件的所有行,还返回不满足条件的某一张表中的所有行
ORACLE9i可用left[right] outer join  …on…实现,ORACLE8i使用(+)
(+) 只适用于列,不能用于表达示上
(+)不能与in 和 or 一起使用
Where子句含有多个条件时,每个条件都必须包含(+)
应将(+)放在显示较少行的一边
3.2.2 外连接
select y.nsrzg_dm, t.nsrsbh, t.fpzl_dm, t.fpqh, t.fpzh, t.lrrq
  from fp_nsrjc t, rd_nsrzg y
 where t.lrrq > '1-jul-05'
   and t.lrrq < '31-jul-05'
   and y.nsrsbh(+) = t.nsrsbh
   and y.nsrzg_dm(+) = '01';
3.1 数据分组
3.2 连接查询
3.3 子查询
3.3.1 单行子查询
用于子查询仅返回一行的查询
可以使用单行比较符=、>、>=、<、<=、<>
select *
  from fp_nsrjc t
 where t.fpzl_dm = (select x.fpzl_dm
                      from dm_fpzl x
                     where x.fpzl_mc = '云南省工业企业货物销售统一发票(万元)');
/*错误
select *
  from fp_nsrjc t
 where t.fpzl_dm = (select x.fpzl_dm
                      from dm_fpzl x
                     where x.fpzl_jc = '云南省工业企业货物销售统一发票');*/
3.3.2 单行子查询
子查询返回多行时必须使用多行比较符in、any、all
any、all不能单独使用,只能与单行比较符=、>、>=、<、<=、<>一同使用
select *
  from dj_nsrxx t
    where t.nsrsbh in
       (select nsrsbh from rd_nsrzg x where x.nsrzg_dm in ('01', '02', '03'));
3.3.3 相关子查询
子查询要引用主查询表列中的信息
通过Exists谓词来实现
select *
  from sb_sbxx t
 where t.sssq_q = to_date('20050601', 'yyyymmdd')
   and t.sssq_z = to_date('20050630', 'yyyymmdd')
   and t.nsr_swjg_dm = '15325010000'
   and exists
 (select 1
          from (select nsrsbh, sum(x.se) se
                  from fp_yj x
                 where x.kprq is not null
                   and x.kprq between to_date('20050601', 'yyyymmdd') and
                       to_date('20050630', 'yyyymmdd')
                   and x.se <> 0
                   and x.nsr_swjg_dm = '15325010000'
                 group by nsrsbh) a
         where a.nsrsbh = t.nsrsbh
           and t.ynse < a.se);
4.1 数字函数
4.2 字符函数
4.3 日期函数
4.4 其他常用函数
4.1.1 四舍五入函数
Round(n,[m])执行四舍五入运算,省略m,四舍五入至整数位;如果m是负数,四舍五入至小数点前m位;如果m是正数,四舍五入至小数点后m位
可用数据字典dual返回函数值
   select round(106.333, 2) from dual;
   select round(106.33, -1) from dual;
   select t.nsrsbh, round(sum(t.je) / 10000), sum(t.je)
     from fp_yj t
    where t.rq >= '1-jul-05'
     and t.rq <= '31-jul-05'
   group by t.nsrsbh
   having sum(t.je) > 10000
     order by t.nsrsbh;
4.1.2 截取函数
Trunc(n,[m])截取函数,省略m,截去小数部分;如果m是负数,截取至小数点前m位;如果m是正数,截取至小数点后m位
   select trunc(106.333, 2) from dual;
   select trunc(106.33, -1) from dual;
   select t.nsrsbh, trunc(sum(t.je) / 10000), sum(t.je)
     from fp_yj t
    where t.rq >= '1-jul-05'
      and t.rq <= '31-jul-05'
    group by t.nsrsbh
   having sum(t.je) > 10000
    order by t.nsrsbh;
4.1.3  绝对值函数
Abs(n)返回数字n的绝对值
select abs(-100) from dual;
4.1 数字函数
4.2 字符函数
4.3 日期函数
4.4 其他常用函数
4.2.1 大小写转换函数
Lower(char) 转换为小写函数
Upper(char) 转换为大写函数
select * from zd_sjkdx t where t.dxmc =   Upper('dj_nsrxx');
select * from zd_sjkdx t where Lower(t.dxmc) = 'dj_nsrxx';
4.2.2 取得字符串子串函数
SUBSTR(char,m,[n])取得字符串子串函数。用于从char的m位置开,取得长度为n的子串,m为零,从首字符开始,m为负,按倒序开始
select substr('云南省国家税务局',1,4) from dual;
  select t.nsr_swjg_dm,substr(u.swjg_jc, 1,  4),
      sum(t.je),sum(t.se),count(*)
  from fp_yj t, dm_swjg u
  where t.rq >= '1-jul-05‘ and t.rq <= '31-jul-05‘ and t.nsr_swjg_dm = u.swjg_dm and t.nsr_swjg_dm like '15325%'
 group by t.nsr_swjg_dm, substr(u.swjg_jc, 1, 4);
4.2.3 取得子串在字串中的位置
Instr(char1,char2,[n,[m]])取得子串在字串中的位置,n为起始位置,m为出现次数,n为负数,从倒序位置开始,m必须为正数
select instr('云南省国家税务局', '国家') from  dual;
select t.*
   from fp_dk_fp_qt t
  where exists (select 1
           from dj_nsrxx x
          where x.zclx_dm = '10'
            and instr(t.xhfnsrmc, x.zjhm) > 0)
    and rownum < 10;
4.2.4 返回字符串长度
Length(char)返回字符串长度
select *
    from dj_nsrxx t
  where t.frzjlx_dm = '10'
   and length(t.zjhm) <> 15
   and length(t.zjhm) <> 18
   and t.nsrzt_dm < 40;
4.2.5 字符截去函数
Ltrim(char[,set])去掉字符串char左边包含中set字符
Rtrim(char[,set])去掉字符串char右边包含中set字符
Trim(char) 去掉字符串char两端包含的空格
select ltrim('good book','g'),ltrim('good book','go') from dual;
select rtrim('good book','k'),rtrim('good book','ok') from dual;
select trim(' good book ') from dual;
select ltrim(' good book ') from dual;
4.1 数字函数
4.2 字符函数
4.3 日期函数
4.4 其他常用函数
4.3 日期函数
SYSDATE 系统时间
TRUNC(d,[fmt]) 截断日期
ROUND(d,[fmt])日期四舍五入
select sysdate from dual t;
select round(sysdate,'dd') from dual;
select round(sysdate,'mm') from dual;
select round(sysdate,'yy') from dual;
select trunc(sysdate,'dd') from dual;
select trunc(sysdate,'mm') from dual;
select trunc(sysdate,'yy') from dual;
4.1 数字函数
4.2 字符函数
4.3 日期函数
4.4 其他常用函数
4.4其他常用函数
To_char(d[,fmt[,’nlsparams’]]) 日期转字符串
To_char(n[,fmt]) 数字转字符串
To_date(char[,fmt[,’nlsparams’]])字符串日期转
To_number(char[,fmt])字符串转数字
Nvl(expr1,expr2) 如果 expr1 是 null,返回expr2, expr1 不是 null,返回expr1
select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual;
select to_char(10344444.23, '999,999,999,999.99') from dual;
select to_date('2002-12-01 23:10:10', 'yyyy-mm-dd hh24:mi:ss') from dual;
select nvl('123', 456), nvl(null, 123) from dual
余敏
 

sql server 2005 课件:这是sql server 2005 课件,关于安装SQL Server 2005,包括了版本和组件,准备安装SQL Server 2005,安装后的程序和服务,上机指导:安装SQL Server 2005等内容,欢迎点击下载。

sql server 2008课件:这是sql server 2008课件,关于第12章 SQL Server的安全管理,包括了SQL Server的安全模型,服务器的安全性,数据库的安全性,数据库用户角色,权限管理等内容,欢迎点击下载。

mysql课件:这是mysql课件,包括了数据库概述,数据库基础知识,SQL语言,MySQL数据库基础操作等内容,欢迎点击下载。

《sql基础语法培训课件》是由用户chenruini于2017-11-05上传,属于公司管理PPT。

标签:

优秀PPT

缩略图

  • sql基础语法培训课件

下载地址

  • sql基础语法培训课件

  • 江苏快三走势图口号:伸出你的我的手 — 分享
    更多

相关PPT

推荐

颜色分类黑色PPT模板橙色PPT模板紫色PPT模板蓝色PPT模板黄色PPT模板红色PPT模板绿色PPT模板彩色PPT模板黑白PPT模板

行业分类科技PPT模板医学PPT模板教育PPT模板工业PPT模板金融PPT模板音乐PPT模板汽车房地产互联网培训手机

实用必备个人简历自我介绍年终总结职业规划述职报告工作汇报工作总结岗位竞聘公司简介发布会年会论文答辩

PPT推荐语文课件数学课件英语课件美术课件物理课件科学课件化学课件地理课件生物课件主题班会家长会绘本故事

节日PPT新年元旦节农历春节情人节元宵节三八妇女节愚人节清明节五一劳动节母亲节六一儿童节端午节

节日PPT 父亲节七夕情人节教师节中秋节国庆节重阳节万圣节光棍节感恩节平安夜圣诞节纪念日