一、创建用户和授予权限

1.1 环境:

  • Oracle 11g xe
  • 第三方图形客户端: PLSQL
  • Windows 10
  • 必须登录 HR 用户,下面的查询会使用到 HR 中的表。

1.2 SQL 语句

创建用户:create user 用户名 identified by 用户名;

分配权限或角色:grant connect,resource to 用户名;

取消权限或角色:revoke 权限/角色 from 用户名;

1.3 常用系统预定义角色

connect:临时用户

resource:更为可靠的正式用户

dba:数据库管理员角色,拥有管理数据库的最高权限

注意:角色是具有名称的一组权限的组合。


二、SQL 语言的总结

2.1  SQL可以做什么?

  • 数据库数据的增删改查操作(CRUP)
  • 数据库对象的创建,修改和删除操作
  • 用户权限/角色的授予和取消
  • 事务控制

2.2  SQL语言的分类

  • DQL  (数据查询语句)select
  • DML(数据操作语句)insert、update、delete
  • DDL(数据定义语句)create、alter、drop、rename
  • DCL(数据控制语句)grant、revoke
  • TCL(事务控制语句)savepoint、rollback、commit

【注意】数据操作语句针对表中的数据,而数据定义语句针对数据库对象(表、索引、视图、触发器、存储过程、函数、表空间等)

2.3  select 查询语句

2.3.1 字段别名

1)重命名查询结果中的字段,以增强可读性;

2)别名如果含有空格或其他特殊字符或大小写敏感,需用双引号引起来;

3)as 可以省略。

2.3.2  去除重复行

在搜索字段名前,加一个 distinct 关键字

例如:select distinct deptno from emp;

2.3.3  排序---order by

排序包括升序(asc,默认升序,该关键字可不写)和 降序(desc)

例如:select empno,ename,sal from emp order by sal;          --------以sal升序进行排序

select empno,ename,sal from emp order by sal desc; --------以sal降序进行排序

2.3.4  where 字句

举例:

select * from emp where deptno = 10;

select * from emp where ename = ‘SMITH’;

select * from emp where hiredate = ‘02-4月-81’;

注意:

1)字符串和日期值要用单引号括起来

2)字符串大小写敏感

3)日期值格式敏感!!!

其他关键字:

  • between… and…     ------界于两值之间(包括边界)
  • in(value,value…)    ------出现在集合中
  • like                       ------模糊查询(%表示零个或多个字符  _表示一个字符,特殊字符可使用escape标识符查找)
  • is null                   -------为空值
  • not is null             -------不为空

2.3.5  逻辑运算符

例如:select * from emp where deptno = 10 and sal > 1000;

2.3.6   SQL优化问题

and:把检索结果较少的条件放到后面

or  :把检索结果较多的放到后面

2.3.7   四种运算符

重要:算术  >  连接   >  比较  >  逻辑

优先级:

  1. * /
  2. + -
  3. ||
  4. >, <, >=, <=, <>不等于
  5. is [not] null ,like [not], in(set)
  6. [not] between… and…
  7. not
  8. and
  9. or

【注】:

  • 不等于也可以使用 != 和 ^=来显示
  • between… and… 是从上限到下限,而且都是闭区间,包含了上限和下限
  • in(set) 犹如多个 or 表达式组合而成
  • % 表示零个或多个字符,_表示一个占位符。 ---------举例:select last_name from employees where last_name like ’%05’;
  • escape 关键字 :可以用该关键字标识符搜索实际的%和_符号。使用escape选项,该选项指定换码符是什么。   ------举例:select last_name,job_id from employees where job_id like ‘SA\_%’ escape ‘\’;

2.3.8   使用函数

函数分为:

单行函数:字符函数、数值函数、日期函数、转换函数、通用函数

多行函数:sum(),avg()  ----仅适用数值型。     count(),max(),min()   -----适用任何类型数据

2.3.8.1 单行函数

字符函数:

大小写处理函数:

  • lower(char)                    -----转换为小写
  • upper(char)                    -----转换为大写
  • initcap(char)                   -----首字母大写

字符处理函数:

  • concat(char1,char2)        -----连接字符串
  • substr(char,pos,len)        -----取子字符串,取char字符串下标位置为pos起,len个字符
  • length(str)                     -----求字符串长度
  • instr(char,substr[,pos])   -----查找字符串位置,例如:  instr(‘worldwide’,’d’)
  • lpad(char1,len,char2)   |   rpad(char1,len,char2)   --------左填充和右填充。char1 左边|右边 填充【len-length(char1)】个 char2 字符。
  • trim(trim_character from trim_source)                  ----- 从一个字符串中去除头(leading)或尾(trailing)或头尾两侧(both)的字符(默认头尾两侧)
  • ltrim(char,set)                -----左剪裁
  • rtrim(char,set)                -----右剪裁
  • replace(char,search_str,replace_str) -----字符串替换

【注意】:

  • trim 举例:去除头,select trim(leading ‘H’ from ‘HelloWorldH’) from dual;    其他类似
  • dual 表是一个虚拟的表,实际上,它并不存在。

数值函数:

1、round(arg1,arg2) | round(arg):

  • 四舍五入指定小数的值,arg1--数据类型,原数字;arg2---整数类型,小数点保留的位数,可以是一个负数,负数表示指定整数的位置。
  • arg--数据类型,原数字;四舍五入保留整数。

2、trunc(arg1,arg2):截断指定小数的值,不做四舍五入处理。

  • arg1:数字类型。原数字。 arg2:整数类型。小数点保留的位数,可以使一个负数。负数则表示指定整数的位置。

trunc(arg1):四舍五入保留整数。 arg1:数字类型。原数字。 arg2:整数类型。小数点保留的位数。

3、mod(arg1,arg2):取余,也就是取模。 arg1:数字类型。被除数。 arg2:数字类型。除数。

日期函数:


转换函数:

其他函数:

2.3.8.2    多行函数

Oracle 11g xe版本---总结1的更多相关文章

  1. Oracle 11g XE release2安装与指导

    今天上午我安装了Oracle 11g企业版,发现太占内存了,考虑到MS SQL有express版本,所以寻思着尝试尝试Oracle 11g的express版本,就是EX版本.下面是具体的安装步骤. 1 ...

  2. Oracle 11g XE 与 Oracle SQL Developer 的配置与使用(重制版)

    Oracle 11g XE 与 Oracle SQL Developer 的配置与使用(重制版) 前提概要 项目上需求要适应Oracle数据库,当然这和某EF框架也有关. 因为Oracle 的表名和列 ...

  3. Oracle 11g XE 是 Oracle 数据库的免费版本

    Oracle 11g XE 是 Oracle 数据库的免费版本,支持标准版的大部分功能,11g XE 提供 Windows 和 Linux 版本. 做为免费的 Oracle 数据库版本,XE 的限制是 ...

  4. [转载]在rhel 6 x86_64 上安装oracle 11g xe

    原文地址:在rhel 6 x86_64 上安装oracle 11g xe作者:pccom Oracle 11g xe for linux目前只有x86_64 版本,没有i386, i686 版本,如果 ...

  5. 在 Windows 下安装 Oracle 11g XE (Express Edition)

    Oracle 11g XE 是 Oracle 数据库的免费版本,支持标准版的大部分功能,11g XE 提供 Windows 和 Linux 版本. 做为免费的 Oracle 数据库版本,XE 的限制是 ...

  6. oracle 11g XE 学习版添加scott用户方法全步骤

    安装企业版的orcale是不是太费时费力了?若只是学习用途的话,不妨试试轻便版的XE版本,同样是官网下载的,但是这个安装起来比完整版简便多了. 首先,你得先安装好orcale 11g XE 版本:(这 ...

  7. Linux下Oracle 11G XE 安装笔记

    操作系统 [oracle@RAC02 ~]$ lsb_release -aLSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:cor ...

  8. vmware安装cent os 6.5 + oracle 11g xe + jboss eap 6.2 + weblogic 12c+ webshpere mq 7.5

    前言: mac系统发展速度确实很快,短短数年,mac os上已经能网银支付(中行.招行.工商.支付宝等均已全面支持mac os了),windows上的经典常用软件:qq.飞信.旺旺.有道词典.有道云笔 ...

  9. CentOS随笔 - 3.CentOS7安装Oracle 11g xe

    前言 转帖请注明出处: http://www.cnblogs.com/Troy-Lv5/ 由于手上很多项目都是采用Oracle在进行开发, 所以安装Oracle成为必然. 当然有朋友会想为什么不安装1 ...

随机推荐

  1. H5注意点(1)

    H1标签在企业开发中,每一个页面至多只能有一个H1标签,被H1标签包裹的是整个页面最重要的信息. img标签,格式:<img src=" ">,当中src就是用来告诉i ...

  2. [设计原则与模式] 面向对象程序设计之五大原则(SOLID)

    cp from:  https://blog.csdn.net/zhangbuzhangbu/article/details/51719952 S.O.L.I.D是面向对象设计和编程(OOD& ...

  3. VS2017打包注册IE插件及修改IE安全选项设置【转】

    前言 最近项目需要在浏览器环境下读取员工身份证信息,要实现网页与硬件设备通信,考虑了几种实现方式: 1.借助ActiveX插件,通过程序库直接与设备通信. 优点:厂家提供了IE插件,开发简单 缺点:只 ...

  4. Android.mk文件LOCAL_MODULE_TAGS 说明

    在移植wireless_tools驱动的时候发现居然没去编译咱的代码,奇怪,后来发现只有LOCAL_MODULE_TAGS 选项这个最有可疑,后来发现有这个说法 LOCAL_MODULE_TAGS : ...

  5. mediacoder固定质量CRF

    视频编码:crf 与 bitrate 对照表 CRF(constant rate factor)就是x264/x265下压制视频的一种恒定量化值的编码方式,码率不恒定.其实就相当于vbr1pass.采 ...

  6. python 设计模式之装饰器模式 Decorator Pattern

    #写在前面 已经有一个礼拜多没写博客了,因为沉醉在了<妙味>这部小说里,里面讲的是一个厨师苏秒的故事.现实中大部分人不会有她的天分.我喜欢她的性格:总是想着去解决问题,好像从来没有怨天尤人 ...

  7. android studio 运行按钮为灰色的解决办法之一

    sync project with gradle files按钮(如下图)同步一下就好了 3.2的  3.3同步按钮变成了一只大象+箭头

  8. Linux_CentOS软件安装调试 源代码包编译安装和 二进制包配置

    Linux 下源代码(C 语言)如何编译(安装) 1. 先安装源代码编译的软件 gcc,make,openssl 如下: yum install -y gcc make gcc-c++ openssl ...

  9. append()、appendChild() 和 innerHTML 的区别

    概念和区别:append() 可以同时传入多个节点或字符串,没有返回值: 据说 append 还是试用期的方法,有兼容问题,(但我用了暂时火狐,谷歌,iE都能使用). https://develope ...

  10. 逐层解析请求json参数字符串【我】

    import net.sf.json.JSONObject; 逐层解析请求json参数字符串: InputStream inStream =null; BufferedReader br =null; ...