oraclesql分区查询语句_ORALCE常识及SQL基本语法第⼀章 ORALCE常识 及 SQL 基本语法
1,ORACLE安装完成后的初始⼝令?
internal/oracle
sys/change_on_install
system/manager
scott/tiger scott是Oracle的核⼼开发⼈员之⼀,tiger是他家的⼀只猫的名字
sysman/oem_temp
2,IBM的Codd (Edgar Frank Codd)博⼠提出《⼤型共享数据库数据的关系模型》
3,ORACLE 9i 中的 i (internet)是因特⽹的意思
4,ORACLE的数据库的物理结构:数据⽂件、⽇志⽂件、控制⽂件
5,ORACLE的数据库的逻辑结构:表空间——表——段——区间——块
表空间 类似于SQLSERVER中数据库的概念
6,SYSDATE 返回当前系统⽇期(说明:当函数没有参数时可以省略括号)
7,在SQL PLUS中 执⾏缓冲区中的SQL命令的⽅式:
SQL> run
SQL> r
SQL> /
8,在SQL PLUS中 修改当前会话的⽇期显⽰格式
SQL> alter session set nls_date_format = 'YYYY-MM-DD'
9,使⽤临时变量,提⾼输⼊效率
SQL> insert into emp(empno,ename,sal) values(&employeeno,'&employeename',&employeesal);
10,从其他表中复制数据并写⼊表
SQL> insert into managers(id,name,salary,hiredate)
SQL> select empno,ename,sal,hiredate
SQL> from emp
SQL> where job = 'MANAGER';
11,修改表中的记录
SQL> update table set column = value [,column = value,……] [where condition];
12,删除表中的记录
SQL> delete [from] table [where condition];
13,数据库事务,事务是数据库⼀组逻辑操作的集合
⼀个事务可能是:
多个DML语句
单个DDL语句
单个DCL语句
14,事务控制使⽤ savepoint,rollback,commit 关键字
SQL> savepoint aaa;
SQL> rollback to aaa;
SQL> commit;
15,查询表中的数据
select * from table_name;
select column_list from table_name;
16,Number and Date 可以⽤于算术运算
因为 Date 类型 其实存储为 Number 类型
17,⽤运算表达式产⽣新列
SQL> select ename,sal,sal+3000 from emp;
SQL> select ename,sal,12*sal+100 from emp;
18,算术表达式中NULL值错误的处理
因为任何数与NULL运算⽆意义,所以为避免错误,需要⽤其他值替换NULL值
例如:
SQL> select ename "姓名",12*sal+comm "年薪" from emp where ename = 'KING';
姓名 薪⽔
---------- ----------
KING
因为comm(提成⼯资)列为NULL值,结果也出现了NULL值,所以需要⽤0来替换NULL
注意函数nvl的使⽤ NVL(原值,新值)
SQL> select ename "姓名",12*sal+NVL(comm,0) "年薪" from emp where ename = 'KING';员⼯姓名 员⼯薪⽔
---------- ----------
KING 60000
——————————————
19,使⽤友好的列名,有下⾯三种形式
SQL> select ename as 姓名, sal ⽉薪, sal*12 "年薪" from emp
20,过滤重复⾏,使⽤关键字 distinct
SQL> select distinct * from emp;
21,SQL PLUS访问ORACLE数据库的原理
SQL*Plus —> Buffer —> Server —> Query Result
22,where ⼦句中 字符型 是区分⼤⼩写的,最好都转成⼤写
因为在ORACLE库中,字符会转换成⼤写来保存
23,⽐较运算符:等于"=",不等于有两种"<>"或者"!="
24,复杂的⽐较运算符:
between …… and ……
in (……value list……)
like (% 代表匹配⾄多个任意字符,_ 代表单个任意字符)
null (与NULL进⾏⽐较时,需要使⽤ is null 或者 is not null)
25,逻辑运算符,按优先级从⾼到低排列
Not , And , Or
26,Order by ⼦句 中 ( asc 表⽰ 升序,desc 表⽰降序)
27,ORACLE 函数,分为
单⾏函数:每条记录返回⼀个结果值
多⾏函数:多条记录返回⼀个结果值
28,字符函数——转换函数
LOWER:转为⼩写
UPPER:转为⼤写
INITCAP:将每个单词的⾸字母⼤写,其他字母⼩写
29,字符函数——操纵函数(注意:ORACLE以UNICODE存储字符)
CONCAT:连接两个字符串,与并置运算符“||”类似
SUBSTR:substr(string,position,length) 从string中的position开始取length个字符
LENGTH:返回字符串的长度
INSTR: instr(string,value) 返回 value 在 string 的起始位置
LPAD: lpad(string,number,value) 若string不够number位,从左起⽤vlaue字符串填充(不⽀持中⽂) 30,四舍五⼊函数 round(数值,⼩数位)
SQL> SELECT ROUND(45.923,2),ROUND(45.923,0),ROUND(45.923,-1) FROM DUAL; ROUND(45.923,2) ROUND(45.923,0) ROUND(45.923,-1)
--------------- --------------- ----------------
45.92 46 50
31,数值截取函数 trunct
SQL> SELECT TRUNC(45.923,2),TRUNC(45.923,0),TRUNC(45.923,-1) FROM DUAL; TRUNC(45.923,2) TRUNC(45.923,0) TRUNC(45.923,-1)
--------------- --------------- ----------------
45.92 45 40
32,求模函数 MOD(a,b) 返回a被b整除后的余数
33,Oracle内部默认的⽇期格式: DD-MON-YY (24-9⽉ -06)
34,DUAL :哑元系统表,是名义表,只能范围唯⼀值
35,Date类型的算术运算,以天为单位
例如:部门编号为10的员⼯分别⼯作了多少年
SQL> select ename,(sysdate-hiredate)/365 as years from emp where deptno = 10; ENAME YEARS
---------- ----------
CLARK 25.3108341
KING 24.8697382
MILLER 24.6861766
36,⽇期函数
MONTHS_BETWEEN 返回两个⽇期之间相差多少个⽉
ADD_MONTHS 在⽇期上加上⽉份数
基本的sql语句有哪些NEXT_DAY 下⼀个⽇⼦ select next_day(sysdate,'星期⼀') from dual;
LAST_DAY 该⽉的最后⼀天
ROUND 四舍五⼊⽇期 round(sysdate,'year') 或者 round(sysdate,'month')
TRUNC 截取⽇期 trunc(sysdate,'year') 或者 trunc(sysdate,'month')
37,数据类型转换 —— Oracle 可隐式转换的情况有:
From To
varchar2 or char —— number (当字符串是数字字符时)
varchar2 or char —— date
number —— varchar2
date —— varchar2
38,数据类型转换 —— Oracle 数据类型转换函数
to_char
to_number
to_date
39,⽇期格式模型字符
YYYY 代表完整的年份
YEAR 年份
MM 两位数的⽉份
MONTH ⽉份的完整名称
DY 每星期中天的三个字符缩写
DAY 表⽰星期⽇——星期六
另外还有 D,DD,DDD 等。。。
40,NVL(value,substitute)
value:是可能有null的列,substitute是缺省值
这个函数的作⽤就是当出现null值的时候,后缺省值替换null
41,Coalesce(exp_name1,exp_name2……exp_n)
42,Decode 函数: Decode(exp,testvalue1,resultvalue1,testvalue2,resultvalue2)例如,根据国家名称显⽰相应的国家代码:
1>创建国家表
create table countrys
(
vCountryName varchar2(50)
);
2>写⼊⼏⾏,分别为中国、⽇本、韩国
insert into countrys values ('&name');
3>⽤DECODE函数,进⾏匹配和显⽰
select vCountryName as "国家名称",
DECODE(vCountryName,'中国','086','⽇本','116') as "国家编号" from countrys;
国家名称 国家编号
-------------------------------------------------- ---
中国 086
⽇本 116
韩国
结果,在DECODE中存在且成功匹配的值将会被显⽰,否则显⽰为NULL
43,SQL PLUS 的⼀些命令
SQL> SAVE 'D:\EMPSQL.TXT' --把当前缓存的SQL命令保存到⽂件
SQL> GET 'D:\EMPSQL.TXT' --从⽂件读取SQL命令到缓存
SQL> RUN --运⾏SQL命令
SQL> @'D:\EMPSQL.TXT' --从⽂件读⼊SQL命令到缓存,并执⾏
SQL> CONNECT SYSTEM/MANAGER@JSPDEV --连接到某个指定数据库
SQL> CONNECT SYSTEM/MANAGER
--连接到本机ORACLE数据库,是上⼀个命令简化
SQL> CONN SYSTEM/MANAGER --CONNECT命令的缩写
SQL> SHOW USER -显⽰当前⽤户的⽤户名
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论