您的位置:首页 > 数据库 > Oracle

oracle备忘录(二)--基础知识基本语法

2014-07-16 00:15 543 查看
------********-----where条件----******----
SQL> --字符大小写敏感
SQL> select *
2  from emp
3  where ename = 'KING';

SQL> --日期格式敏感: 查询入职日期为17-11月-81的员工
SQL> select *
2  from emp
3  where hiredate='17-11月-81';

EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- -------- --------- ---------- -------------- ----- ---------- ----------
7839 KING     PRESIDENT            17-11月-81      5000                    10

------********-----查看当前日期格式----******----
SQL> select sysdate from dual;

SYSDATE
--------------
19-6月 -13

------********-----查看信息 <span style="font-family: Arial, Helvetica, sans-serif;">v$nls_parameters</span><span style="font-family: Arial, Helvetica, sans-serif;">(包括字符串的格式信息)----******----</span>
SQL> select *
2  from v$nls_parameters;

SQL> col PARAMETER for a30   --注意 for 为format的缩写
SQL> set pagesize 20
SQL> /

PARAMETER                      VALUE
------------------------------ ----------------------------------------------------------------
NLS_LANGUAGE                   SIMPLIFIED CHINESE
NLS_TERRITORY                  CHINA
NLS_CURRENCY                   ¥
NLS_ISO_CURRENCY               CHINA
NLS_CALENDAR                   GREGORIAN
NLS_DATE_FORMAT                DD-MON-RR
NLS_DATE_LANGUAGE              SIMPLIFIED CHINESE
NLS_CHARACTERSET               ZHS16GBK
NLS_SORT                       BINARY
NLS_TIME_FORMAT                HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY              ¥
NLS_NCHAR_CHARACTERSET         AL16UTF16
NLS_COMP                       BINARY
NLS_LENGTH_SEMANTICS           BYTE
NLS_NCHAR_CONV_EXCP            FALSE

已选择19行。

---修改日期的格式:
--(global要管理员权限,表示整个数据库都修改)
--session 为这个会话范围
SQL> alter session set NLS_DATE_FORMAT='yyyy-mm-dd'; --之前为DD-MON-RR

SQL> select * from emp where hiredate='1981-11-17'; --修改后
SQL> select * from emp where hiredate='17-11月-81'; --修改前

------********-----in的注意点:----******----
--结论:空值3. 如果集合中含有null,不能使用not in,但可以使用in
SQL> select * from emp where deptno not in (10,20,null)
SQL> /
未选定行

SQL> ed
已写入 file afiedt.buf
SQL> select * from emp where deptno in (10,20,null)
--有结果

------********-----like的注意点:----******----
SQL> --like 模糊查询 % _
SQL> --查询名字以S打头的员工
SQL> select *
2  from emp
3  where ename like 'S%';

SQL> --查询名字是4个字的员工
SQL> select *
2  from emp
3  where ename like '____';

SQL> --查询名字中含有下划线的员工
SQL> select * from emp where ename like '%\_%' escape '\'
SQL> /

EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- -------- --------- ---------- -------------- ----- ---------- ----------
1001 Tom_ABCD                                      5000                    10

------********-----rollback的作用----******----
--一个rollback貌似将所有的增删改都给清了
SQL> rollback;
回退已完成。

------********-----order by 语法----******----
SQL> --order by后面+列名  表达式  别名 序号
--按照别名排序
SQL> select ename,sal,sal*12 年薪 from emp order by 年薪
--按照序号排序(序号就是列号,注意:从1开始数)
SQL> select ename,sal,sal*12 年薪 from emp order by 3 --第三列对应的是"年薪"

------********-----空值放最后----******----
SQL> --降序排序的时候,怎么将空值放在后面,而不是前面
SQL> --注意:加上nulls last就解决问题
SQL> select * from emp order by comm desc nulls last
传智播客  -- oracle视频
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: