oracle笔记1

原创 2007年09月13日 20:46:00

Oracle SQL(Oracle 9i 9.2.0.1.0)

 

SQL(结构化查询语言),是操作关系型数据库中的对象。

 

DDL(数据定义语言),用于建表或删表操作,以及对表约束进行修改。

DML(数据操作语言),向表中插入纪录,修改纪录。

事务控制语言,commit; ,rollback;

授权语句

select(数据的查询),投影,过滤(选择)查寻,关联查寻(表连接)。

 

sqlplus 访问数据库命令(本地访问/远程访问),和数据库建立连接的命令,是数据库操作的环境

 

sqlplus 用户名/密码

 

show user 显示当前用户的用户名

 

sqlplus中可以使用 ! 可以在shellsqlplus间切换,!shell命令 可以在sqlplus中使用shell命令。实际上是sqlplus开了子进程来执行shell命令。

 

Oracle数据库中的表分两类:用户表(用户使用操作的表),系统表(数据库系统维护的表,数据字典)

 

select查询语句

 

select table_name from user_tables;(查询系统表)

以上的查询语句就是查询本用户下所拥有的所有表的表名。

 

desc [表名] 这是一条sqlplus命令,注意他不是sql语句,这条命令用于查看表的结构。

[字段名] [字段的类型],这是使用完desc命令后显示的表结构。

 

投影操作,只查看选择的字段的信息。

选择操作,查看字段中的特定某些信息。

多表查询,通过表间连接,查寻出多表中的信息

 

!oerr ora [错误号] ,系统可以显示错误的原因和如何修改。如果命令错误输入可以使用edited来修改输入错误。实际上是在编辑缓存文件中的最后一条sql语句。

也可以使用 (change) c /错误字段/正确字段,来进行替换操作进行修改。

 

select [表的字段名1],[表的字段名2], ... from 表名;

select * from 表名; 查寻表中所有字段的信息

 

关键字不等拆分,sql语句,以及表名,字段名是大小写不敏感的。

 

sql语句要以";"结尾,来表示sql语句结束,如果不加";"系统不会执行此条sql语句,并提示。

 

sqlplusbuffer中会缓存最后一条sql语句,可以使用"/"来执行这最后一条sql语句,也可以使用

edit命令来编辑最后一条sql语句。l命令(list)(sqlplus命令)可以显示buffer中最后一条命令。

 

sqlplus设置

set pause on 回车响应,分屏显示,只在本会话中有效

set pause off 关闭分屏显示。

set pause '...' 设置分屏显示的提示信息。

set pause on 先输出提示信息,回车响应,分屏显示

set head off 提头输出关闭

set feed off 结尾输出关闭

set echo off 回写关闭

spool 文件名.sql 写入指定文件

spool off 关闭写入。

 

清屏命令 !clear clear screen

 

Oracle中字符显示是左对齐,数值右对齐。

 

select 语句中可以使用数学表达式。

 

select [表达式(必须包含本表字段名)],[...],.... from 表名;

运算的优先级的先乘除后加减,同级自左向右运算,括号改变优先级。

 

select [字段名或表达式] ["别名"][...] ["..."],.... from 表名;

 

可以通过在字段名或表达式后加空格"别名",可以给列,或者表达式结果其别名。

字符串拼接使用||符号

 

select 目标字段名||" "||目标字段名 from 表名;

 

注意:在Oracle中的字符串要用'..'包含

别名中需要使用空格,或是大小写敏感时需要用".."包含。

 

sql脚本,也就是在文件中写有sql语句的文件,可以在sqlplus中运行。

引入sql脚本

    sqlplus 用户名/密码 @sql脚本

Oracle中的空值 空值会当无穷大处理。

Oracle中控制处理函数 NVL(字段名,值),这个字段中的空值替换为指定值,如果不为空,则会返回其原值。

例:select (salary*12)*(NVL(commission_pct,0)/100+1) salary,first_name from s_emp;

 

distinct关键字,去掉重复行(这个关键字会处发排序操作)

例: select distinct dept_id,title from s_emp;

注意:distinct,关键字之后会对from之前的字段进行排重操作。

 

column命令(这是个sqlplus命令)

column命令 列格式的定义

 

column 目标列名 查看这个类是否定义了格式

 

column 目标列名 format a.. 设置列宽。

column last_name heading 'Employee|Name'(设置题头) FORMAT A15

这其中的'|'是换行符

 

column salary justify left format $99,990.00(定义数字显示格式)

注意:如果不满足显示的格式,就会把数据显示为"#"

 

column 列名 clear (清除列格式定义)

 

注意:只有sqlplus命令才有简写,并且在使用sqlplus命令时结尾也不能加分号。

 

选择操作

 

order by 排序子句 ASC(默认,升序) DESC(降序)

 

order by 目标列名(别名) 排序顺序(不写排序顺序,会默认为升序排序)

 

例:select first_name from s_emp order by first_name;

    select first_name from s_emp order by first_name desc;

 

注意:升序空值在结果的末尾,降序空值在结果的最前面。

 

where子句

 

where子句使用在 select ... from ... 后面,用来选择所需(符合条件的)的记录

 

where后面跟的是表达式 也就是 XXX=XXX XXX between X and X  XXX inXXX

like '...' 通配查询

 

between ... and ... ,表示结果在这之间,between and是一个闭区间。

!=<>^=,这三个都标识不等于,<=>==,这些运算符都可以使用。

... in (va1,val2,...) 判断结果是否在这个枚举中存在

like '...' 字符串通配查询,'%'表示多个字符,'_',表示一个字符。

... and ... 表示只有两个条件同时满足

... or ... 表示条件只要满足其中只一就可以

all ... 是要求都满足条件。

not .....,则是可以与以上的条件产生反效果。

... is null 使用来判断值是不是空。

 

注意:Oracle中的字符串是严格区分大小写的。

 

1.注意数据类型

2.选择合适的运算符

 

Oracle数据库函数(单行函数)

 

Oracle中的函数和C中的函数差不多,也是有函数名,参数表,和返回值类型组成的

 

1,字符函数

   字符是大小写敏感的

   转小写 lower(...)

   转大写 upper(...)

   首字母大写 initcap(...)

   dual表,是专门用于函数测试和运算的,他只有一条记录  

   字符串拼接 concat(...,....)

   求指定子串 substr(...,起始位置,取字符个数)

   可以使用"-"表示从右向左取,取的时候可以从左往友取。

    例:select substr(first_name,-2,2) sub from s_emp;(取后两个)

    select substr(first_name,2,2) sub from s_emp;(取前两个)

 

2,数值函数

 

   四舍五入 round(数据,保留小数点后几位)

   可以用负数表示小数点前,0,表示小数点后第一位,也就是保留个位,-1表示个位(保留到十   位)。

   例:select round(15.36,1) from dual;

   截取数字函数 trunc(数据,保留的位数(小数点后位数)) 截取个位之后补0

   例:select trunc(123.456,1) from dual;

 

3,日期函数

 

   日期格式,

   全日期格式 世纪信息,年月日,时分秒。

   缺省日期格式,日-- dd-mon-rr

   修改当前会话的日期格式,会按照指定的格式输出日期

   alter session set nls_date_format='yyyy mm dd hh24:mi:ss';

 

   返回当前日期 sysdate

   例:select sysdate from dual;

   

   日期是格式敏感的

   求两个日期间相隔了多少个月 months_between(date1,date2)

   加减指定数量的月份 add_months(date,月数),月数可以为负,负值就是减去相应的月数。

   从下周开始的日期加一天 next_day(date,天数)

   例:select next_day(sysdate,2) from dual;

   返回月末的日期 last_day(date)

   截取日期 trunc(date,'年或月或日或时分秒')

   例:select trunc(add_months(sysdate,1),'month') from dual;

 

4,不同数据类型间转换函数

 

   将日期转成字符 tochar(date,'日期格式')

   日期格式要用有效格式,格式大小写敏感 'yyyy mm dd hh24:mi:ss','year'(全拼的年),'mm'(数字表示的月) 'month'(全拼的月)'day'(星期的全拼)'ddspth' (日期的全拼) 'yy mm dd'

   例:select to_char(sysdate,'yyyy mm dd hh24:mi:ss')from dual;

 

   将字符转换成数字 to_number('...')

  

   将数字转字符to_char(number'fmt') fmt是数字格式

 

   将字符串转成日期 to_date('...','日期格式')

   例:select to_char(to_date('2006 11 03','yyyy mm dd'),'dd-month-yy') from dual

 

5,函数嵌套

 

    例:select to_char(to_date('2006 11 03','yyyy mm dd'),'dd-month-yy') from dual

 

 

 

 

oracle核心技术读书笔记一附件1

  • 2014年09月14日 11:16
  • 10KB
  • 下载

oracle超强整理笔记-1

  • 2017年11月10日 17:36
  • 39KB
  • 下载

1.读书笔记收获不止Oracle之开篇

1.读书笔记收获不止Oracle之开篇            偶然看到梁敬彬和梁敬弘合著的《收获,不止Oracle》,心中满怀欣喜,从题目上看不光是讲Oracle知识,应该会参杂一些技术之外或技术之...

三思笔记之一步一步学Oracle part1

  • 2016年05月31日 14:42
  • 60MB
  • 下载

oracle PL-SQL 学习笔记1

  • 2009年06月22日 20:46
  • 6KB
  • 下载

oracle高性能sql调整-笔记1

oracle是rdbms关系型数据库 关系型数据库的设计宗旨就是为了减少数据冗余。 sql调整的意义:对于那些每天都要执行上千次的查询来说,sql调整会大大提高数据库的性能,同时可以延长数据库服务器...

oracle OAF R12开发笔记.part1

  • 2011年04月19日 16:21
  • 4.6MB
  • 下载

oracle基本学习笔记1

要开始系统学习些基本的ORACLE知识了,虽然不是DBA,但这次还是想把一些基本的知识学好,于是打算笔记之,做个提纲,太具体的内容就不列出来了,只列要点一   oracle由例程      例程包括 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle笔记1
举报原因:
原因补充:

(最多只允许输入30个字)