• 基本SQL语句练习之SELECT


    一、SQL Plus连接
    sqlplus:以命令行方式连接数据库
    sqlplusw:以窗口登录方式连接数据库
    conn sys/password as sysdba;
    show user
    select * from tab; 查看当前用户连接的实例的所有表
    desc emp; 查看emp表的结构
    DESC降序 ASC升序

    二、基本SQL语句
    --1.SELECT * FROM EMP

    --2.SELECT ENAME,JOB,SAL FROM EMP

    --3.SELECT ENAME 姓名,JOB 工作, SAL 工资 FROM EMP

    --4.SELECT DISTINCT JOB FROM EMP

    --5.SELECT ' THE EMPLOYEES NO: '|| EMPNO || ' NAME IS ' || ENAME || ' AND HIS SALARY IS: '||SAL FROM EMP;

    --6.ELECT ENAME, SAL*12 FROM EMP;

    --7.SELECT * FROM EMP WHERE SAL > 1500

    --8.SELECT * FROM EMP WHERE COMM IS NOT NULL

    --9.SELECT * FROM EMP WHERE SAL BETWEEN 1500 AND 3000

    --10.SELECT * FROM EMP WHERE ENAME='SCOTT'

    --11.SELECT * FROM EMP WHERE ENAME='SMITH' OR ENAME='WARD' OR ENAME='FORD'

    --12.SELECT * FROM EMP WHERE ENAME IN ('SMITH', 'WARD')

    --13.SELECT * FROM EMP WHERE ENAME NOT IN ('SMITH', 'WARD')

    --14.SELECT * FROM EMP WHERE ENAME LIKE '%AM%'

    --1S.SELECT * FROM EMP WHERE ENAME LIKE '%AM_S'

    --16.SELECT * FROM EMP WHERE ENAME <> 'SCOTT'

    --17.SELECT * FROM EMP WHERE ENAME !='SCOTT'

    --18.SELECT * FROM EMP ORDER BY SAL

    --19.SELECT * FROM EMP ORDER BY SAL DESC

    --20.SELECT * FROM EMP WHERE DEPTNO=10 ORDER BY SAL DESC, HIREDATE ASC

    --21.SELECT UPPER('rusky') FROM DUAL --字符串改大写

    --22.SELECT LOWER('RUSKY') FROM DUAL --字符串改小写

    --23.SELECT INITCAP ('rusky') FROM DUAL --首字母大写

    --24.SELECT INITCAP(ENAME) FROM EMP

    --25.SELECT CONCAT('HELLO ','RUSKY') FROM DUAL

    --26.SELECT SUBSTR('rusky',1,3) FROM DUAL --oracle数据库从0开始和从1开始效果一样

    --27.SELECT SUBSTR('rusky',0,3) FROM DUAL --从左边第1个字符开始,向右截取3个字符

    --28.SELECT LENGTH('rusky') FROM DUAL --长度

    --29.SELECT REPLACE('rusky','u','x') FROM DUAL --以x替换字符串中的u字符

    --30.ROUND()四会五入 TRUNC()截断小数位 MOD()取模

    --31.SELECT ROUND(195.6) FROM DUAL

    --32.SELECT ROUND(195.46,1) FROM DUAL

    --33.SELECT ROUND(145.467,-1) FROM DUAL --对整数部分个位进行四舍五入,结果150

    --34.SELECT ROUND(145.567,-2) FROM DUAL --对整数部分十位进行四舍五入,结果100

    --35.SELECT ROUND(145.567,-3) FROM DUAL --对整数部分百位进行四舍五入,结果0

    --36.SELECT TRUNC(125.92) FROM DUAL --取整数,结果125

    --37.SELECT TRUNC(125.98,1) FROM DUAL --指定小数点保留位数,不会四舍五入,结果125.9

    --38.SELECT TRUNC(125.983,-1) FROM DUAL --结果120

    --39.SELECT MOD(10,3) FROM DUAL;

    --40.SELECT SYSDATE FROM DUAL; --2014/6/5 15:27:04

    --41.SELECT ENAME, ROUND((SYSDATE-HIREDATE)/7) FROM EMP --求星期数

    --42.SELECT SYSDATE+5 FROM DUAL

    --43.SELECT SYSDATE-100 FROM DUAL

    --44.SELECT MONTHS_BETWEEN(SYSDATE,HIREDATE) FROM EMP --给定日期范围内的月数

    --45.SELECT ADD_MONTHS(SYSDATE,10) FROM DUAL --在指定日期上加上指定月数,求出之后的日期

    /*46.NEXT_DAY下一次给定的日期数
    指定时间的下一个星期几(由char指定)所在的日期,
    char也可用1~7替代,1表示星期日,2代表星期一。。。。
    还可以是星期一、星期二。。。星期日 或是MONDAY TUESDAY WENSDAY THIRSDAY FRIDAY SATAUDAY SUNDAY*/
    --SELECT NEXT_DAY(SYSDATE,5) FROM DUAL
    --SELECT NEXT_DAY(SYSDATE,'MONDAY') FROM DUAL
    --SELECT NEXT_DAY(SYSDATE,'星期一')FROM DUAL

    --47.SELECT LAST_DAY(SYSDATE) FROM DUAL --返回某个时间值当月最后一天

    --48.SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL
    --SELECT TO_CHAR(SYSDATE,'YYYY')FROM DUAL
    --SELECT TO_CHAR(SAL,'99,999') FROM EMP
    --SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH:MM:SS') FROM DUAL

    --49.SELECT TO_NUMBER('123')+TO_NUMBER('456') FROM DUAL

    --50.SELECT TO_DATE('2014-06-05','YYYY-MM-DD') FROM DUAL

    --51.SELECT ENAME,SAL,COMM,SAL+COMM SUM FROM EMP;

    --52.SELECT ENAME,SAL,COMM,SAL+NVL(COMM,0) SUM FROM EMP --NVL(COMM,0)指定,如果comm值为null时,则取0

    --53.SELECT EMPNO,ENAME,HIREDATE, DECODE(JOB,'CLERK','A','SALESMAN','B','MANAGER','C','ANALYST','D','PRESIDENT','E') FROM EMP

    ============replace,translate,concat,lpad,rpad,substr,instr===============================

    SQL> SELECT REPLACE('abcdefg','abcd','1234') from dual;
    
    REPLACE
    -------
    1234efg
    
    SQL> select translate('abcdefgabc','abc','123') from dual;
    
    TRANSLATE(
    ----------
    123defg123
    
    SQL> select translate('abcdefgahca','abc','123') from dual;
    
    TRANSLATE('
    -----------
    123defg1h31
    
    SQL> select replace('abc','a','') from dual;
    
    RE
    --
    bc
    
    SQL> select replace('abc','','ef') from dual;
    
    REP
    ---
    abc
    
    SQL> select replace('abd','','') from dual;
    
    REP
    ---
    abd
    
    SQL>
    
    SQL> SELECT CONCAT('HELLO',' WORLD') FROM DUAL;
    
    CONCAT('HEL
    -----------
    HELLO WORLD
    
    SQL> SELECT SUBSTR('HelloWorld',1,5) FROM DUAL;
    
    SUBST
    -----
    Hello
    
    SQL> SELECT INSTR('HelloWorld','W') from dual;
    
    INSTR('HELLOWORLD','W')
    -----------------------
    6
    
    SQL> SELECT LPAD(sal,10,'*') from emp;
    
    LPAD(SAL,10,'*')
    --------------------
    *******800
    ******1600
    ******1250
    ******2975
    ******1250
    ******2850
    ******2450
    ******3000
    ******5000
    ******1500
    ******1100
    *******950
    ******3000
    ******1300
    
    已选择14行。
    
    SQL> SELECT RPAD(sal,10,'*') FROM EMP;
    
    RPAD(SAL,10,'*')
    --------------------
    800*******
    1600******
    1250******
    2975******
    1250******
    2850******
    2450******
    3000******
    5000******
    1500******
    1100******
    950*******
    3000******
    1300******
    
    已选择14行。

    trim一般都是用在删除字符串两边的空格。实际上,trim也可以用来删除字符串两边的指定字符。并且trim指定删除的字符串只能是单个字符。如 trim('字符1' from '字符串2') ,字符1只能是单个字符。
    1. trim()删除字符串两边的空格。
    2. ltrim()删除字符串左边的空格。
    3. rtrim()删除字符串右边的空格。
    4. trim('字符1' from '字符串2')  分别从字符2串的两边开始,删除指定的字符1。
    5. trim([leading | trailing | both] trim_char from string) 从字符串String中删除指定的字符trim_char。
      leading:从字符串的头开始删除。
      trailing:从字符串的尾部开始删除。
      borth:从字符串的两边删除。
    6. tim()只能删除半角空格。 

    SQL> select trim(leading '1' from '1231') from dual;
    
    TRI
    ---
    231
    
    SQL> select trim(trailing '1' from '1231') from dual;
    
    TRI
    ---
    123
    
    SQL> select trim(both '1
      2
    SQL> select trim(both '1' from '1231') from dual;
    
    TR
    --
    23
    
    SQL> select trim('     123    ') || 'rusky' from dual;
    
    TRIM('12
    --------
    123rusky
    
    SQL> select ltrim('    123    ')|| 'rusky' from dual;
    
    LTRIM('123')
    ------------
    123    rusky
    
    SQL> select rtrim('    123   ') || 'rusky' from dual;
    
    RTRIM('123')
    ------------
        123rusky
    SQL> select trim('字符1' from '字符串2') from dual;
    select trim('字符1' from '字符串2') from dual
           *1 行出现错误:
    ORA-30001: 截取集仅能有一个字符
    
    
    SQL> select trim('' from '字符串2') from dual;
    
    TRIM(
    -----
    符串2
    
    SQL>
  • 相关阅读:
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    处理oracle数据方式
    JS处理数据库数据
    整理任正非思想:再论反骄破满,在思想上艰苦奋斗-1996
    整理任正非思想:要树立服务意识、品牌意识、群体意识-1996
    整理任正非思想:加强合作走向世界-1996
    整理任正非思想:反骄破满,在思想上艰苦奋斗-1996
    整理任正非思想:我们要向市场、开发、创造性工作倾斜-1996
    BUMO 3.0原理以及设计.
  • 原文地址:https://www.cnblogs.com/rusking/p/3770764.html
Copyright © 2020-2023  润新知