Oracle:
    1,语句编写规范:
    1)sql语句的所有表名,字段名全部小写,系统保留字,内置函数名,sql保留字大写。
    2)连接符:or,in,and,以及=,<=,>=等前后加上一个空格。
    对较为复杂的sql语句、过程、函数加上注释,说明算法、功能。
    3)SQL语句的缩进风格
    1. 一行有多列,超过80个字符时,基于列对齐原则,采用下行缩进
    2. where子句书写时,每个条件占一行,语句另起一行时,以保留字或者连接符开始,连接符右对齐。
    多表连接时,使用表的别名来引用列。
    sql 命令是大小写不敏感的。
    关键字大写,其他小写
    sql命令可写成一行或多行。
    一个关键字不能跨多行或缩写。
    子句通常位于独立行,以便编辑,并易读。

    2,SQL语言分类:
    数据查询语句:select。
    图片.png
    数据操纵语句:Insert,Update,Delete。
    数据定义语句:Create,Alter,Drop,Rename,Truncate。
    事物控制语句:Commit,Rollback,Savepoint。
    数据控制语言:Grant,Revoke。

    3,SQL常用命令:
    连接命令:conn[ect].例:conn userName/password, disc[onnect].(断开当前用户连接)。
    解锁:使用sys/system账号执行,alter user scott account unlock;
    锁:alter user scott account lock;
    修改用户的密码:passw-旧密码-新密码,如果想要修改其他用户的密码,需要sys/system登录,例:alter user userName identified by passWord(密码必须字母开头)
    显示当前用户:show uesr,断开与数据库的连接,同时会退出sqlplus:exit,
    文件操作命令:
    编辑制定的sql脚本:edit, 例:sql>edit d:\a.sql . select
    from emp;
    运行sql脚本:start,例:sql>@ d:a.sql 或 sql>staart d:\a.sql
    将sqlplus屏幕上的内容输出到制定文件中去(三部分:创建,操作内容,结束):spool,例:sql>spool d:\b.sql (操作内容)sql>spool off
    交互式命令:
    可以替代变量,而该变量在执行时,需要用户输入:& , 例:sql>select
    from 表名 where 字段名= ‘&随意’;
    显示和设置环境变量:
    概述:用来控制输出的各种格式,set show 如果希望永久保存相关设置,修改glogin.sql脚本
    linesize:设置显示行的宽度,默认是80个字符;
    句例:sql>show linesize sql>set linesize 120
    pagesize:设置每页显示行数目,默认是14; 用法和linesize一样。
    句例:sql>show pagesize ; sql>set pagesize 8
    显示表结构:desc[ribe] tableName
    打开显示操作响应时间的开关:sql>set timing on
    清屏:sql>clear screen
    监听服务命令(控制台):
    lsnrctl start :启动
    lsnrctl stop :停止
    lsnrctl status :查看状态

    4,SQL常用语句:
    1)数据查询语句:
    select:
    查询表中的所有列:select from 表名;例: select from dept;
    查询表中制定的列:select 列名1,列名2,…from 表名;例:select deptno,loc from dept;
    2)定义空值:
    空值是指不可用,不知道,不适用的值
    空值不等于零或空格
    句例:select ename,job,comm from emp;
    包括空值的算法,表达式结果等于空
    select ename NAME,12sal+comm from emp where ename=’KING’;
    3)定义列的别名:
    改变列的标题头,使用计算结果,列的别名,
    如果使用特殊字符,或大小写敏感,或有空格时,需加双引号。
    句例:select ename as name,sal salary from emp;
    select ename “姓名”,sal
    12”Annual Salary” from emp;
    4)连接操作:
    将列或字符于其它列连结
    用双竖条表示(||)
    产生的结果列是一个字符表达式
    句例:select ename || job as”Employees” from emp;
    5)文字字符串:
    文件字符串是一个包括在SELECT列表中的字符,表达式,或数字。
    日期和字符型文字字符必须用单引号括起来
    每返回一条记录字符被输出一次
    句例:select ename || ‘ is a ‘ || job from emp wheve sal>2000;
    select ename || ‘ ‘ || ‘ is a ‘ || ‘ ‘ || job as “Employee Details” from emp;
    6)构造命令:select tablename from user_tables; //当前用户的表 table_name:表字段
    select table_name from all_tables; //所有用户的表
    select table_name from dba_ta bles; //包括系统表
    select ‘delete from ‘ || table_name || ‘ where 1=0;’ || chr(10) from user_all_tables;
    7)重复行:
    句例:select deptno from emp;
    删除重复行distinct
    select distinct deptno from emp;
    8)限定:
    选择限定where: select ename,job,deptno from emp where job=’CLERK’;
    9)运算:
    比较运算符:=,>,>=,<,<=,<>(不等于)
    句例:select ename,sal,comm from emp where sal >= comm;
    10)其他的比较运算符:
    在两值之间(包含):between…and…
    句例:select ename,sal from emp where sal between 1000 and 1500;
    匹配列出的值:in(list)
    句例:select empno,ename,sal,mgr from emp where mgr in(7902,7566,7788);
    匹配一个字符模式:like
    (%)可表示零或多个字符:
    句例:select ename from emp where ename like ‘S%’;
    (
    )可表示一个字符:
    句例:select ename from emp where ename like ‘_A%’;
    是空值:is null
    句例:select ename,comm from emp where comm is null;
    11)逻辑运算符:
    如果组织的条件都为真测返回真值:and
    句例:select empno,ename,job,sal from emp where sal >= 1100 and job=’CLERK’;
    如果组合的条件之一是真值,返回真值:or
    句例:select empno,ename,job,sal from emp where sal >= 1100 or job = ‘CLERK’;
    如果条件为假则返回真值:not
    句例:select ename,job from emp where job not in(‘CLERK’,’MANAGER’,’ANALYST’);
    12)运算的优先级:
    图片.png
    括号将跨越所有优先级规则。
    句例:select ename,job,sal from emp where job =’SALESMAN’ or job = ‘PRESIDENT’ and sal > 1500;
    select ename,job,sal from emp where (job =’SALESMAN’ or job = ‘PRESIDENT’) and sal > 1500;
    13)排序:
    使用ORDER BY子句将记录排序:ASC:升序,缺省;DESC:降序;
    ORDEER BY 子句在SELECT语句的最后
    句例:select ename,job,deptno,hiredate from emp order by hiredate;
    select ename,job,deptno,hiredate from emp order by hiredat desc;
    使用类的别名排序:
    句例:select empno,ename,sal*12 annsal from emp order by annsal;
    多个列排序:
    句例:select ename,depthno,sal from emp order by deptno desc,sal desc;

    4,函数:
    转为大写:UPPER
    句例:select upper(‘aBcD’) from dual
    把字符转换为小写:LOWER
    句例:select lower(‘aBcD’)from dual;
    select empno,ename,deptno from emp where lower(ename) = ‘blake’;
    select empon,ename,deptno from emp where ename = lower(‘nlake’);
    把每个单词的第一个字母大写,其他小写:
    select initcap(‘aBcD’) from dual;
    字符处理函数:
    连接两个字符:concat
    句例:select concat(‘Hello’,’World’) from dual;
    选取给定位置和长度的子字符串:substr
    句例:select substr(‘HelloWorld’,6) from dual;
    select substr(‘HelloWorld’,-5) from dual;
    计算字符串长度:length
    句例:select length(‘HelloWorld’) from dual;