数据库的基本操作

一、简单查询语句

  格式:select *| 具体的列名 as [别名] from 表名称

  防止重复查询结果的关键字:distinct  (用法:用于列表的前面)

二、限定查询

  格式:select *| 具体的列名 from 表名称 where 条件表达式

  null:表示该列中没有值

三、in关键字

  语法:select * from 表名称 where 列名 in (1,值2...)

      select * from 表名称 where 列名 not in (值1,值2...

四、模糊查询

  关键字:like

  两个通配符: %  可以匹配任意长度的内容

               _  可以匹配一个长度的内容

  用法:select * from 表名称 where 列名 like ‘_M%‘;

五、运算符

  不等于:<>      !=

六、排序

  语法:select * 列名 from 表名称 where 条件表达式 order by 排序1,排序2

  asc:升序,默认排序方式

 desc:降序

七、单行函数

  7.1字符函数

    a.将小写字母转为大写字母

       函数:upper()

       用法:select upper(‘smith‘)from dual;

    b.将字符串变为小写字母

       函数:lower()

       用法:select lower(‘HELLO WORLD‘)fromdual;

    c.将字符串的首字母变为大写

       函数:initcap()

       用法:select initcap(‘HELLO WORLD‘)fromdual;

    d.字符串的连接

       函数:concat()

       用法:select concat(‘hello‘,‘world‘)fromdual;

    e.字符串的截取

       函数:substr()

       用法:select substr(‘hello‘,0,3)  3:表示截取的长度

             倒着截取:select ename,substr(ename,-3)from emp;  //保留所有雇员姓名的后三位

    f.获取字符串长度

       函数:length()

       用法:select length(‘hello‘)from dual;

    g.字符串的替换

       函数:replace()

       用法:selectreplace(‘hello‘,‘l‘,‘x‘)from dual;

 7.2  数值函数

    a.四舍五入

       函数:round()

       用法:  

             1、执行四舍五入操作,可以指定保留的小数位

              selectround(789.536) from dual;    --->800

              selectround(789.436) from dual;    --->789

              selectround(789.436,2) from dual;   --->789.44

             2、可以直接对整数进行四舍五入的进位

              selectround(789.536,-3) from dual;  --->1000

              selectround(789.536,-2) from dual;   --->800

              selectround(789.536,-4) from dual;   --->0

    b.截断小数位

       函数:trunc()

       用法:

             1、数值从小数点截断,只保留整数部分

              selecttrunc(789.536) from dual;    --->789

             2、设置小数位的保留位数

              selecttrunc(789.536,2) from dual;  --->789.53

              selecttrunc(789.536,-2) from dual;  --->700

    c.取余(取模)

       函数:mod()

       用法: select mod(10,3) from dual;   --->1

 7.3  日期函数

     a.关键字:sysdate

     b.用法:selectsysdate from dual;

     c.其余几个日期函数

       months_between()  --->求出给定日期范围的月数

       add_months()  --->在指定日期上加上指定的月数,求出之后的日期

       next_day()  --->从起始日期开始,计算下个某个星期几的具体日期

       last_day()  --->求出给定日期的最后一天日期

 

       例:计算星期数:   使用公式:当前日期-雇佣日期=天数 / 7 = 星期数

            select empno,ename,round((sysdate-hiredate)/7)from emp;

          查询出所有雇员的编号,姓名,和入职的月数

            selectempno,ename,round(months_between(sysdate,hiredate)) from emp;

          查询出当前日期加上4 个月后的日期

            select add_months(sysdate,4) from dual;

          查询出下一个给定日期数

            select next_day(sysdate,‘星期一‘) from dual;

          查询给定日期的最后一天,也就是给定日期的月份的最后一天

            select last_day(sysdate) from dual;

 7.4  转换函数

     a.类型

       to_char()-->转换成字符串

       to_number()-->转换成数字

       to_date()-->转换成日期

     b.例题:查询所有雇员的雇员编号,姓名和雇佣时间

 

       1、按照年、月、日进行拆分,首先需要用to_char()函数,拆分时指定拆分的通配符:  

          -->y,年是四位数字,所以使用yyyy表示

         -->m,月是两位数字,所以使用mm表示

         -->d,日是两位数字,所以使用dd表示

           select empno,ename,to_char(hiredate,‘yyyy‘)year,to_char(hiredate,‘mm‘) month,to_char(hiredate,‘dd‘) day from emp;

       2、使用to_char()进行日期显示的转换功能

           select empno,ename,to_char(hiredate,‘yyyy-mm-dd‘)from emp;

           或:select empno,ename,to_char(hiredate,‘yyyy""mm""dd""‘) from emp;

       3、去掉月份前的0,使用关键字:fm

           selectempno,ename,to_char(hiredate,‘fmyyyy-mm-dd‘) from emp;

       4、使用“,”将工资的每 3位进行一个分隔

           select empno,ename,to_char(sal,‘99,999‘)from emp; 格式化时9代表的事占位符

       5、显示工资数的两种表示符号:

          L-->表示Local的缩写,以本地的语言进行金额的显示

          $-->表示美元

           select empno,ename,to_char(sal,‘$99,999‘)from emp;

 

     c.to_number():将字符串变为数字的函数

       selectto_number(‘123‘) + to_number(‘123‘) from dual;

     d.to_date():将字符串变为date 的数据

       selectto_date(‘2012-09-12‘,‘yyyy-mm-dd‘) from dual;

 7.5  通用函数

     a.将一个指定的null值变为指定的内容

       函数:nvl()

       用法:selectempno,ename,(sal+nvl(comm,0))*12 from emp;

     b.类似于if...elseif...else语句的函数

       函数:decode()

       语法:decode(col/expression,search1,result1[search2,result2,......][,default])

             说明:col/expression-->列名或表达式

                  search1.search2......-->为用于比较的条件

                  result1result2......-->为返回值

                  如果col/expression search i  相比较,相同的话返回 result i  ,如果没有与col/expression相匹配                      的结果,则返回默认值default

       用法:select decode(1,1,‘内容是1‘,2,‘内容是2‘,3,‘内容是3‘) from dual;   --->内容是1

       例:查询出雇员的编号,姓名,雇佣日期及工作,将工作替换为中文

           select empno,ename,decode(job,‘CLERK‘,‘业务员‘,‘SALESMAN‘,‘销售人员‘,‘MANAGER‘,‘经理‘,‘ANALYST‘,‘分析员‘,‘PRESIDENT‘,‘总裁‘)from emp;



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。