Oracle学习笔记——1、基本的SQL语句

本文对比了Oracle与Informix数据库的特点,并提供了SQL查询语句的基本语法,包括别名使用、字符串连接、算术表达式、去重、条件查询等实例。

之前上一家公司数据库用的是informix数据库,新公司数据库用的是Oracle数据库,所以还是需要重新学习一下,并做个笔记。

sql查询语句基本语法:

1、别名的使用,别名使用As连接或者省略不写。

SQL> SELECT EMPNO AS "Employee Number",
  2     ename name,(500+sal)*12 "Annual Salary"
  3  from emp;

结果:

Employee Number NAME       Annual Salary
--------------- ---------- -------------
           7369 SMITH              15600
           7499 ALLEN              25200
           7521 WARD               21000
           7566 JONES              41700
           7654 MARTIN             21000
           7698 BLAKE              40200
           7782 CLARK              35400
           7788 SCOTT              42000
           7839 KING               66000
           7844 TURNER             24000
           7876 ADAMS              19200
注意:当别名没有被双引号括起来时,别名的显示结果为大写;如果别名中包含了特殊字符,或者想让别名原样显示,就要使用双引号把别名括起来。

2、字符串连接运算符 ||

SQL> SELECT ename ||' annual salary is '||(500+sal)*12 "Employee's Salary"
  2  FROM emp;
结果:

Employee's Salary
--------------------------------------------------------------------
SMITH annual salary is 15600
ALLEN annual salary is 25200
WARD annual salary is 21000
JONES annual salary is 41700
MARTIN annual salary is 21000
BLAKE annual salary is 40200
CLARK annual salary is 35400
3、在sql语句中使用算数表达式+,-,*,/

SQL> SELECT empno,ename,(500+sal)*12
  2     FROM EMP;
结果:

     EMPNO ENAME    (500+SAL)*12
---------- -------- ------------
      7369 SMITH           15600
      7499 ALLEN           25200
      7521 WARD            21000
      7566 JONES           41700
      7654 MARTIN          21000
      7698 BLAKE           40200
      7782 CLARK           35400
      7788 SCOTT           42000
      7839 KING            66000
      7844 TURNER          24000
      7876 ADAMS           19200

4、使用DISTINCT查询是去掉重复的行

SQL> SELECT DISTINCT deptno
  2  FROM emp;
结果:

    DEPTNO
----------
        30
        20
        10
注意:DISTINCT可用于多列,此时的显示结果为每一种列组合只显示一行。如:

SQL> SELECT DISTINCT deptno,job
  2  FROM EMP;
结果:

    DEPTNO JOB
---------- ---------
        20 CLERK
        30 SALESMAN
        20 MANAGER
        30 CLERK
        10 PRESIDENT
        30 MANAGER
        10 CLERK
        10 MANAGER
        20 ANALYST
5、查询是使用where限制性条件。

SQL> SELECT empno,ename,sal
  2  FROM emp
  3  WHERE SAL>=1500;
结果:

     EMPNO ENAME           SAL
---------- -------- ----------
      7499 ALLEN          1600
      7566 JONES          2975
      7698 BLAKE          2850
      7782 CLARK          2450
      7788 SCOTT          3000
      7839 KING           5000
      7844 TURNER         1500
      7902 FORD           3000
备注:6个常用的比较运算符

>(大于),<(小于),=(等于),<=(小于等于),>=(大于等于),!=或<>(不等于)

6、使用between 下限 and 上限,判断数字型数据、字符串或者日期型数据在下限和上限之间,包含下限和上限。字符串和日期型数据需要用单引号括起来。

SQL> SELECT empno,ename,sal
  2  FROM emp
  3  WHERE sal BETWEEN 1500 AND 2900;

     EMPNO ENAME           SAL
---------- -------- ----------
      7499 ALLEN          1600
      7698 BLAKE          2850
      7782 CLARK          2450
      7844 TURNER         1500

SQL> SELECT empno,ename,sal,hiredate
  2  FROM emp
  3  WHERE hiredate BETWEEN '01-JAN-81' AND '31-MAY-82';

     EMPNO ENAME           SAL HIREDATE
---------- -------- ---------- ---------------
      7499 ALLEN          1600 20-FEB-81
      7521 WARD           1250 22-FEB-81
      7566 JONES          2975 02-APR-81
      7654 MARTIN         1250 28-SEP-81
      7698 BLAKE          2850 01-MAY-81
      7782 CLARK          2450 09-JUN-81
      7839 KING           5000 17-NOV-81
      7844 TURNER         1500 08-SEP-81
      7900 JAMES           950 03-DEC-81
      7902 FORD           3000 03-DEC-81
      7934 MILLER         1300 23-JAN-82

备注:可以在 用not betbeen ... and ...之间,用来判断数字型数据、字符串或者日期型数据没有在下限和上限之间。

    7、like模糊匹配,两个通配符%,_

%:“%”代表零个或者多个字符

_:"_"代表一个且只能是一个字符

SQL> SELECT empno,ename,sal,job
  2  FROM emp
  3  WHERE job LIKE 'S_L_S%';

     EMPNO ENAME             SAL JOB
---------- ---------- ---------- ---------
      7499 ALLEN            1600 SALESMAN
      7521 WARD             1250 SALESMAN
      7654 MARTIN           1250 SALESMAN
      7844 TURNER           1500 SALESMAN

SQL> SELECT empno,ename,sal,hiredate
  2  FROM emp
  3  WHERE hiredate LIKE '%81';

     EMPNO ENAME             SAL HIREDATE
---------- ---------- ---------- ------------
      7499 ALLEN            1600 20-FEB-81
      7521 WARD             1250 22-FEB-81
      7566 JONES            2975 02-APR-81
      7654 MARTIN           1250 28-SEP-81
      7698 BLAKE            2850 01-MAY-81
      7782 CLARK            2450 09-JUN-81
      7839 KING             5000 17-NOV-81
      7844 TURNER           1500 08-SEP-81
      7900 JAMES             950 03-DEC-81
      7902 FORD             3000 03-DEC-81

    8、使用转义字符

先新建一个临时表

SQL> CREATE table dept_temp
  2  AS
  3  SELECT *
  4  FROM dept;
插入一条数据:

SQL> INSERT INTO ddept_temp
  2  VALUES(88,'IT_RESEARCH','BEIJING');
转移查询:

SQL> SELECT *
  2  FROM dept_temp
  3  WHERE dname LIKE 'IT\_%' escape '\';

    DEPTNO DNAME          LOC
---------- -------------- -------------
        88 IT_RESEARCH    BEIJING
备注:定义'\'为转义符,即'_'字符不是通配符,而是它本来的含义。可以定义其它字符为转义字符。

SQL> SELECT *
  2  FROM dept_temp
  3  WHERE dname LIKE 'IT~_%' escape '~';

    DEPTNO DNAME          LOC
---------- -------------- -------------
        88 IT_RESEARCH    BEIJING
























基于STM32 F4的永磁同步电机无位置传感器控制策略研究内容概要:本文围绕基于STM32 F4的永磁同步电机(PMSM)无位置传感器控制策略展开研究,重点探讨在不依赖物理位置传感器的情况下,如何通过算法实现对电机转子位置和速度的精确估计与控制。文中结合嵌入式开发平台STM32 F4,采用如滑模观测器、扩展卡尔曼滤波或高频注入法等先进观测技术,实现对电机反电动势或磁链的估算,进而完成无传感器矢量控制(FOC)。同时,研究涵盖系统建模、控制算法设计、仿真验证(可能使用Simulink)以及在STM32硬件平台上的代码实现与调试,旨在提高电机控制系统的可靠性、降低成本并增强环境适应性。; 适合人群:具备一定电力电子、自动控制理论基础和嵌入式开发经验的电气工程、自动化及相关专业的研究生、科研人员及从事电机驱动开发的工程师。; 使用场景及目标:①掌握永磁同步电机无位置传感器控制的核心原理与实现方法;②学习如何在STM32平台上进行电机控制算法的移植与优化;③为开发高性能、低成本的电机驱动系统提供技术参考与实践指导。; 阅读建议:建议读者结合文中提到的控制理论、仿真模型与实际代码实现进行系统学习,有条件者应在实验平台上进行验证,重点关注观测器设计、参数整定及系统稳定性分析等关键环节。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值