oraclesql词汇.doc
SQL常用单词总结

Create Database 创建数据库Unicode 由不同字符集定义的所有字符Primary key 主键Foreign key references 外键[‘fCrin]‘refrEns]Default 定义表中的某一列的缺省值Unique 唯一约束u:’ni:k]Identity 自动增长标识列Distinct从select语句中除去重复的行dis’tiNktPercent 返回结果集的百分比Group by 分组排序Between….and.. 在…之间Is null 字符型空值判断字Order by 查询结果中的一列或多列查询结果进行Sum() 数字表达式中所有值的和avg() 数字表达式中所有的平均值Count() 表达式中值的总个数Truncate table 是一种快速.无日志记录的方法删除所有行’trQNkeitNot exists 子查询不返回行[i^’zist] Inner join …. On ..内联连接Left outer join …….on….左向外连接Right outer join……..on…右向外连接Full outer join……..on….完整全外连接Cross join 交叉连接Timestamp 列确保在多用户更新时间进行的高效并发检查Getdate() 返回当前系统日期和时间Square指定返回表达式的平方Row_number 返回结果集分区行的序列号,每个分区的第一行从1开始Backup database 备份数据库Restore database 还原数据库Drop View 删除视图Create unique index 创建唯一非聚集索引Continue重新开始while循环Waitfor 在达到指定时间或时间间隔之前,阻止批处理.存储过程,或事物Forward_only 只进游标Dynamic 动态游标Keyset 由键集驱动的游标@@Cursor_Rows 返回连接上打开一个游标中当前限定行的数目Create Trigger 创建触发器Procedure 存储过程[prE’si:dVE]。
oraclesql语句大全

oraclesql语句⼤全ORACLE⽀持五种类型的完整性约束NOT NULL (⾮空)--防⽌NULL值进⼊指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值.CHECK (检查)--检查在约束中指定的条件是否得到了满⾜.UNIQUE (唯⼀)--保证在指定的列中没有重复值.在该表中每⼀个值或者每⼀组值都将是唯⼀的.PRIMARY KEY (主键)--⽤来唯⼀的标识出表的每⼀⾏,并且防⽌出现NULL值,⼀个表只能有⼀个主键约束.POREIGN KEY (外部键)--通过使⽤公共列在表之间建⽴⼀种⽗⼦(parent-child)关系,在表上定义的外部键可以指向主键或者其他表的唯⼀键.ORACLE⽀持五种类型的完整性约束NOT NULL (⾮空)--防⽌NULL值进⼊指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值.CHECK (检查)--检查在约束中指定的条件是否得到了满⾜.UNIQUE (唯⼀)--保证在指定的列中没有重复值.在该表中每⼀个值或者每⼀组值都将是唯⼀的.PRIMARY KEY (主键)--⽤来唯⼀的标识出表的每⼀⾏,并且防⽌出现NULL值,⼀个表只能有⼀个主键约束.POREIGN KEY (外部键)--通过使⽤公共列在表之间建⽴⼀种⽗⼦(parent-child)关系,在表上定义的外部键可以指向主键或者其他表的唯⼀键.1--设置每⾏显⽰多少字符 set linesize 300;2 设置每页显⽰多少条记录 set pagesize 30;3 ⽤户名的切换: 如 conn system/tigerConn sys/change_on_install as sysdba(注意超级⽤户在后⾯加as sysdba)4 在超级⽤户下查找普通⽤户的表是查不到的必须这样查找如 select * from scott.emp(普通⽤户下的emp表)5 查看当前是那个⽤户⾝份登录: show user;6 查看有多少张表: select * from tab;(注意不同⽤户下的表是不同的)7查看表的结构: desc emp(emp为表名)8 取出重复的列(DISTINCT): 如 SELECT DISTINCT JOB EMP(去掉job的重复的值)9字符串的链接操作⽤: ||10 查询有奖⾦的员⼯: select* from emp where comm is not null;11 查询没有奖⾦的员⼯信息: select * from emp where comm is null;12 两个条件以上就得⽤and 如查询⼯资⼤⾬1500和有奖⾦的员⼯ select * from empwhere sal>1500 and comm is not null;13 表⽰两个条件有⼀个满⾜就可就⽤:or 如查询⼯资⼤于1500或者没有奖⾦的员⼯信息Select * from emp where sal>1500 or comm is not null;14取反可以⽤not 如查询员⼯⼯资不⼤于1500和有奖⾦的员⼯信息如:Select * from emp where not (sal>1500 or comm is not null);15 在什么什么之间⽤between----and----如查询⼯资在1500和3000之间的员⼯信息:Select * from emp where sal between 1500 and 3000;16 查询员⼯编号是2323, 4555, 2222的员⼯具体信息: 如Select * from emp where empno in(2323,4555,2222);17.l模糊查询 like ⼀般结合"%"和"_"使⽤其中%:表⽰可以匹配任意长度的内容,"_"表⽰匹配⼀个长度放⼊内容如: 查询员⼯姓名中第⼆哥字母是M的员⼯信息:Select * from emp where ename LIKE '_M%';⼜如姓名中包含M的员⼯ Select * from emp where ename LIKE '%M%';18oracle中不等于有两种表⽰⽅式"<>"和"!="19 排序⽤order by {asc desc}其中asc 是升序排列如果不写就默认按升序排列desc是按降序排列排序语句放在sal语句的最后如: 按员⼯⼯资进⾏排序Select * from emp order by sal asc(升序)Selecct * from emp order by sal desc(降序)Select * from emp where deptno='10' order by sal desc,hiredate asc;(查询部门10的员⼯⼯资的升序排列如果⼯资相等就按员⼯的⼊职时间排序)20.group by ⽤于对查询的结果进⾏分组统计: 显⽰每个部门的平均⼯资和最⾼⼯资如:Select avg(sal),max(sal) from emp group by deptno;Having ⼦句⽤于限制分组显⽰结果: 显⽰平均⼯资⼤于2000的的部门号和他的平均⼯资?如:select avg(sal), deptno from emp group by deptno having avg(sal)>2000;2. 单⾏函数:1 ⼩写变⼤写: upper 如 select * from emp where ename=upper('smith');讲⼀个字符串变为⼩写字母表⽰如: select lower('HELLO WORLD') FROM DUAL;将单词的⾸字母变⼤写⽤ INITCAP 如: SELECT INITCAP('HELLO WORLD') FROM DUAL;2.字符串的操作Substr()截取字符串 length()字符串的长度 replace()替换字符串3数值函数四舍五⼊: round();截断⼩数位:trunc();⼀.⼊门部分1. 创建表空间 create tablespace schooltbs datafile ‘D:\oracle\datasource\schooltbs.dbf’ size 10M autoextend on;2. 删除表空间 drop tablespace schooltbs[including contents and datafiles];3. 查询表空间基本信息 select *||tablespace_name from DBA_TABLESPACES;4. 创建⽤户 create user lihua identified by lihua default tablespace schooltbs temporary tablespace temp;5. 更改⽤户 alter user lihua identified by 123 default tablespace users;6. 锁定⽤户 alter user lihua account lock|unlock;7. 删除⽤户 drop user lihua cascade;--删除⽤户模式8. oracle数据库中的⾓⾊connect,dba,select_catalog_role,delete_catalog_role,execute_catalog_role,exp_full_database,imp_full_database,resource9. 授予连接服务器的⾓⾊ grant connect to lihua;10.授予使⽤表空间的⾓⾊ grant resource to lihua with grant option;--该⽤户也有授权的权限11.授予操作表的权限 grant select,insert on user_tbl to scott;--当前⽤户 grant delete,update on er_tbl to scott;--系统管理员12.修改表的结构(alter)Alter table 表名 add(列的名称,列的类型);1.SQl⽀持的命令:数据定义语⾔(DDL):create,alter,drop 数据操纵语⾔(DML):insert,delete,update,select 数据控制语⾔(DCL):grant,revoke 事务控制语⾔(TCL):commit,savepoint,rollback2.Oracle数据类型字符,数值,⽇期,RAW,LOB 字符型char:1-2000字节的定长字符 varchar2:1-4000字节的变长字符 long:2GB的变长字符注意:⼀个表中最多可有⼀列为long型Long列不能定义唯⼀约束或主键约束long列上不能创建索引过程或存储过程不能接受long类型的参数。
oracleSQL语法大全

11
• 数据库中的表 表:字段、记录、列、主键
customer_tbl
Order_tbl
Products_tbl
2021/3/26
Products_tbl
列(字段)
Prod_id 记录 112
113
Prod_desc cost
candy
1.35
plastic
1.04
主
12
键
数据和基本数据类型
数据是存储在数据库中的信息集合。数据 类型用于给特定的数据提供规则。
例2:SELECT prod_desc,cost
FROM products_tbl WHERE prod_id = ‘119’
例3:多表查询
SELECT employee_tbl.emp_name, employee_pay_tbl.position
FROM employee_tbl, employee_pay_tbl
FROM table1 [ ,table2 ]
[ WHERE condition ] [ GROUP BY column1 ]
按列取值相等的 原则进行分组
[ ORDER BY column2(asc,desc) ]
2021/3/26
按列值进行排序
17
例1:SELECT * FROM products_tbl WHERE cost < 5
用户创建或重新构建数据库的语言
CREATE TABLE ALTER TABLE DROP TABLE
CREATE INDEX ALTER INDEX DROP INDEX
2021/3/26
6
DML,数据操纵语言 用于在关系数据库对象中操纵数据 INSERT UPDATE DELETE
oracle基础知识--SQL概念

查询处理步骤(续)
与SQL相关的一些概念
事务:事务是数据库操作的原子单位,每条DDL语句构成一个事务, 事务可由多条DML语句组成。在同一个事物内的用于数据修改的 DML语句要不全部提交(commit),要不全部回滚(rollback)。 提交:提交事务。 回滚:撤销事务。 表锁:在执行数据修改的DML语句之前对表进行加锁,用以解决多用 户系统的并 发问题,由于Oracle支持行锁,因此除非必要请尽量使 用行锁。 行锁:在执行数据修改的DML语句之前对行进行加锁,用以解决多用 户系统的并发问题。 块锁:在某些情况下Oracle会使用块锁,由Oracle自动控制。 闩锁:Oracle系统锁(如内存分页锁等)。 死锁:当两个或多个会话互相等待形成一个循环时发生死锁,Oracle 能够自动解除死锁,但解锁时比较消耗资源。 阻塞:当一个会话请求的资源被另一个会话锁住时发生阻塞。
动态性能视图
v$sql v$sql_text v$sql_area
常用命令
返回Oracle目录
DML处理步骤
数据操纵语言 (DML) 语句只需要两个处理 阶段 • 分析阶段与处理查询时所用的分析阶段相 同 • 执行阶段需要额外的处理来更改数据
DML执行阶段
执行 DML 语句 1 如果缓冲区高速缓存中尚不存在数据和回退块,那么服 务器进程就会从数据文件中将它们读入缓冲区高速缓存。 2 服务器进程在将要修改的行上放置锁。 3 在重做日志缓冲区中,服务器进程记录将要对回退和数 据进行的更改 – 回退块更改记录数据修改以前的值。 – 数据块更改记录数据的新值。 4 服务器进程将修改以前的数据记录到回退块中,并且更 新数据块。这两种更改都是在数据库缓冲区高速缓存中进 行的。缓冲区高速缓存中的任何已更改块都标记为灰数据 缓冲区 - 即与磁盘中相应的块不同的缓冲区
oracle常用的SQL及语法

1、两个oracle 开发工具介绍a)SqlDbx王金生曾推荐过的一款数据库客户端开发工具,使用容易,不需要额外的安装其它插件,有sql提示功能,支持Oracle,Sybase ASE, IBM,DB2/UDB, MicrosoftSQL Server 和ODBC数据源,免费绿色版。
b)PLSQL Developer专门针对oracle开发的一款比较专业的客户端工具,除了常用的数据库操作外,还支持存储过程及函数的调试功能等比较高级的功能,详细的操作可以安装完毕后大家去慢慢研究。
配置方式见网上找的一段方法,第二种:/view/65b5a80f6c85ec3a87c2c583.html以上提到的工具及可能用到的插件见共享目录中的文件。
2、oracle 与 sqlserver 语法大比较a)oracle各类型字段描述b)字段类型比较c)常用函数比较注:此处仅记录语法有区别的地方,更多丰富的语法请查看附件中的手册。
以下的exp为expression的缩写d)关于脏读目前我们使用的sqlserver 数据库,在查询数据时,都要求在select语句中后面跟一个(nolock)或(with nolock)来保证读取大表时不影响其它程序进程的数据操作。
在oracle中,目前还不允许脏读的方式,在每次select 后,读到的数据都是已经commit的数据,所以为了避免读取数据的不准确,程序中如果有比较耗时的sql 操作,尤其是在insert 和update后,尽量减小事务,而且要在事务结束后及时commit。
e)表(主键、外键、CHECK、UNIQUE、DEFAULT、INDEX)在创建表及其主键、外键、CHECK、UNIQUE、DEFAULT、INDEX时,SQL SERVER 与ORACLE的语法大致相同。
主要区别如下:Oracle定义表字段的default属性紧跟字段类型之后,如下:Create table MZ_Ghxx( ghlxh number primay key ,rq date default sysdate not null,….)而不能写成Create table MZ_Ghxx( ghlxh number primay key ,rq date not null default sysdate,….)f)存储过程/函数结构的不同SQLSERVER中存储过程的结构大致如下CREATE PROCEDURE procedure_name/*输入、输出参数的声明部分*/ASDECLARE/*局部变量的声明部分*/BEGIN/*主体SQL语句部分*//*游标声明、使用语句在此部分*/ENDORACLE中存储过程的结构大致如下CREATE OR REPLACE PROCEDURE procedure_name(/*输入、输出参数的声明部分*/ )AS/*局部变量、游标等的声明部分*/BEGIN/*主体SQL语句部分*//*游标使用语句在此部分*/EXCEPTION/*异常处理部分*/END ;ORACLE端FUNCTION语法说明CREATE [OR REPLACE] FUNCTION function_name[(argument [{IN | OUT | IN OUT }] ) type,…[(argument [{IN | OUT | IN OUT }] ) typeRETURN return_type {IS | AS}BEGIN…END;变量赋值在SQL SERVER语句中用如下语句对局部变量赋值(初始值或数据库表的字段值或表达式):“SELECT 局部变量名= 所赋值(初始值或数据库表的字段值或表达式)”;而在ORACLE中,将初始值赋给局部变量时,用如下语句:“局部变量名: = 所赋值(初始值或表达式);”,将检索出的字段值赋给局部变量时,用如下语句:“SELECT 数据库表的字段值INTO 局部变量名…”。
oracle pl sql 编程手册(sql大全).doc

Oracle PL/SQL 编程手册(SQL大全) 一、SQL PLUS1SQL命令以下17个是作为语句开头的关键字:alter drop revokeaudit grant rollback*commit*insert selectcomment lock updatecreate noaudit validatedelete rename这些命令必须以“;”结尾带*命令句尾不必加分号,并且不存入SQL缓存区。
SQL中没有的SQL*PLUS命令这些命令不存入SQL缓存区@define pause#del quit$describe remark/disconnect runaccept document saveappend edit setbreak exit showbtitle get spoolchange help sqlplusclear host startcolumn input timingcompute list ttitleconnect newpage undefinecopy---------2数据字典TABDTABCOLCA TALOGselect*from tab;describe命令describe deptselect*from emp;select empno,ename,jobfrom emp;select*from deptorder by deptno desc;逻辑运算符=!=或<>>>=<<=inbetween value1and value2like%_in nullnotno in,is not null谓词in和not in有哪些职员和分析员select ename,jobfrom empwhere job in('clerk','analyst');select ename,jobfrom empwhere job not in('clerk','analyst');谓词between和not between哪些雇员的工资在2000和3000之间select ename,job,sal from empwhere sal between2000and3000;select ename,job,sal from empwhere sal not between2000and3000;谓词like,not likeselect ename,deptno from empwhere ename like'S%';(以字母S开头)select ename,deptno from empwhere ename like'%K';(以K结尾)select ename,deptno from empwhere ename like'W___';(以W开头,后面仅有三个字母)select ename,job from empwhere job not like'sales%';(哪些雇员的工种名不以sales开头)谓词is null,is not null没有奖金的雇员(即commision为null)select ename,job from empwhere comm is null;select ename,job from empwhere comm is not null;多条件查询select ename,jobfrom empwhere deptno=20and job!='clerk';表达式+-*/算术表达式选择奖金高于其工资的5%的雇员select ename,sal,comm,comm/sal from empwhere comm>.05*salorder by comm/sal desc;日期型数据的运算add two days to6-Mar-876-Mar-87+2=8-Mar-87add two hours to6-Mar-876-Mar-87+2/24=6-Mar-87and2hrsadd15seconds to6-Mar-876-Mar-87+15/(24*60*60)=6-Mar-87and15secs列名的别名select ename employee from empwhere deptno=10;(别名:employee)select ename,sal,comm,comm/sal"C/S RATIO"from empwhere comm>.05*salorder by comm/sal desc;SQL命令的编辑list or llist4SQL命令的第4行,并把第4行作为当前行,在该行号后面有个*。
oracle管理常用的sql

--查看表空间大小select * from dba_free_space;--查看回滚段信息select * from dba_free_space;--取走索引未用的空间alter index index_name deallocate unused;--给索引分配空间alter index index_name allocate extent( size 11n K datafile ' .dbf'); --整理索引碎片alter index index_name coalesce;--查看索引的有效性analyze index index_name validate structure;--监视索引是不是使用alter index index_name monitoring usage;--停止监控alter index index nomonitoring;--sga 总大小show parameter sga_max_size;show parameter sga_target;--查看当前sga去分配和使用情况select * from v$sgastat;---显示sga区的信息select * from v$sga;--或者show parameter sga;--显示表空间中所有的数据表select * from all_tables where tablespace_name='USERS';--查看数据表所在的表空间select * from user_tables where table_name='scott.emp';show parameter cache_size;alter system set db_keep_size =4M;--共享池大小show parameter shared_pool_size;--日志缓冲区show parameter log_buffer;--高速缓冲区建议select * from v$db_cache_advice;alter system set db_cache_advice=on|off|ready;--当前进程信息select * from v$process;--各动态组件调整的时间和调整类型信息select * from v$sga_dynamic_components;--分页查询select * from (select a1.* ,rownum rn from (select * from scott.emp ) a1 where rownum <=3) where rn>=1;--判断是否使用了spfile--方法一select name ,value from v$parameter where name='spfile';--方法二show parameter spfile;--方法三如果返回值是0则使用的是pfile 否则是spfileselect count(*) from v$spparameter where value is not null;--控制j警报文件位置的初始化参数是background_dump_destshow parameter background_dump_dest;--改变oracle默认的时间格式alter session set nls_date_format ='yyyy-mm-dd';--现实当前数据库名称select * from global_name;select * from v$instance;--获取scn号:system commit number 系统该编号select dbms_flashback.get_system_change_number from dual;show user;--查看用户的状态select username ,account_status from dba_users;--用户解锁alter user xdb account unlock;。
ORACLE_50个sql语句

备注:以下语句都已经改成了oracle支持的语句。
不熟的sql:15、查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩???是不是有having的时候就不能用distinct而只能用group by呢???貌似是的说明:以下五十个语句都按照测试数据进行过测试,最好每次只单独运行一个语句。
问题及描述:--1.学生表Student(Sno,Sname,Sage,Ssex) --Sno 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别--2.课程表Course(Cno,Cname,Tno) --Cno --课程编号,Cname 课程名称,Tno 教师编号--3.教师表Teacher(Tno,Tname) --Tno 教师编号,Tname 教师姓名--4.成绩表SC(Sno,Cno,score) --Sno 学生编号,Cno 课程编号,score 分数*/--创建测试数据create table kxsh.student(sno char(10) primary key not null,sname varchar2(10) not null,ssex char(2) check(ssex in ('男','女')) not null,sage date);insert into kxsh.student values('2008111001','赵雷','男','1990-01-01'); insert into kxsh.student values('2008111002','钱电','男','1990-12-21'); insert into kxsh.student values('2008111003','孙风','男','1990-05-20'); insert into kxsh.student values('2008111004','李云','男','1990-08-06'); insert into kxsh.student values('2008111005','周梅','女','1991-12-01'); insert into kxsh.student values('2008111006','吴兰','女','1992-03-01'); insert into kxsh.student values('2008111007','郑竹','女','1989-07-01'); insert into kxsh.student values('2008111008','王菊','女','1990-01-20');补充1:date包含年月日时分秒,oracle默认格式为’dd-mon月-yy’(dd日子、mon月份、yy 2位的年,如’06-4月-99’ 1999年4月6日)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A Oracle SQL词汇Oracle SQL(structured query language1、翻译:结构化查询语言2、读熟:3、记忆:4、功能:file1、翻译:文件2、读熟:3、记忆:4、功能:database1、翻译:数据库2、读熟:3、记忆:4、功能:database object1、翻译:数据库对象2、读熟:3、记忆:4、功能:table1、翻译:表2、读熟:3、记忆:4、功能:DDL(data definition language1、翻译:数据定义语言):画表头2、读熟:3、记忆:4、功能:create table 表名(列名列类型,…)1、翻译:建表(创建表结构2、读熟:3、记忆:4、功能: sturcture1、翻译:2、读熟:3、记忆:4、功能: column1、翻译:列2、读熟:3、记忆:4、功能: name1、翻译:列名2、读熟:3、记忆:4、功能:data type1、翻译:数据类型2、读熟:3、记忆:4、功能:length1、翻译:长度2、读熟:3、记忆:4、功能:constraint1、翻译:约束2、读熟:3、记忆:4、功能:alter table1、翻译:修改表结构( column3、记忆:4、功能:drop table 表名1、翻译:删除表2、读熟:3、记忆:4、功能:DML(data manipulation language1、翻译:数据操作语言( 表的行2、读熟:3、记忆:4、功能:data1、翻译:数据2、读熟:3、记忆:row1、翻译:列2、读熟:3、记忆:4、功能:insert into tabname1、翻译:增加一条记录2、读熟:3、记忆:4、功能:delete from tabname1、翻译:删除一条记录2、读熟:3、记忆:4、功能:update 表名 set 列名 = 函数操作where 列名 = ’列名参数’1、翻译:修改一条记录的列表值2、读熟:3、记忆:4、功能:TCL(transaction control language1、翻译:事务控制语言2、读熟:3、记忆:4、功能:Transaction1、翻译: 事务(翻译:交易1)事务是一组DML操作的逻辑单元,用来保证数据的一致性2)在一个事务内,组成事务的这组DML操作,或者一起成功提交,或者一起被撤销3)事务控制语言TCL(Transaction Control Language)commitrollbacksavepoint事务的开始和终止(事务边界)1)事务开始事务开始于上一个事务的终止或者第一条DML语句2)事务终止事务终止于commit/rollback显示操作(即控制台输入commit/rollback)如果连接关闭,事务(Transaction)将隐式提交DDL操作(比如create),事务将隐式提交如果出现异常,事务将隐式回滚。
事务中的数据状态如果多个会话操作同一张表的数据当用户与服务器建立连接成功后,服务器端Oracle将与客户端建立一个会话(Session)。
客户端与Oracle的交互都是在这个会话环境中进行的。
2、读熟:4、功能:commit1、翻译:事务提交将所有的数据改动提交2、读熟:3、记忆:4、功能:rollback1、翻译:事务回滚回退到事务之初,数据的状态和事物开始之前完全一致平时用Ctrl+z的意思2、读熟:3、记忆:4、功能:savepoint1、翻译:事务保存点(较不常用)2、读熟:3、记忆:DQL(data query language1、翻译:数据查询语言2、读熟:3、记忆:4、功能:select1、翻译:选择( 查询2、读熟:3、记忆:4、功能:DCL(data control language1、翻译:数据控制语言2、读熟:3、记忆:4、功能:grant1、翻译:授予权限( usera to userb2、读熟:3、记忆:4、功能:revoke1、翻译:回收权限( usera from userb2、读熟:3、记忆:4、功能:relationship1、翻译:关系( 二维表行,列2、读熟:3、记忆:4、功能:RDBMS(relationship database management system1、翻译:关系型数据库管理系统2、读熟:3、记忆:4、功能:software1、翻译:软件2、读熟:3、记忆:4、功能:DBA(database administrator1、翻译:数据库管理员2、读熟:3、记忆:4、功能:datafile1、翻译:数据文件2、读熟:3、记忆:4、功能:logfile1、翻译:日志文件( 控制文件2、读熟:3、记忆:4、功能:telnet1、翻译:远程登陆2、读熟:3、记忆:4、功能:create1、翻译:数据库对象的创建2、读熟:3、记忆:4、功能:table表,桌子2、读熟:3、记忆:4、功能:user1、翻译:用户2、读熟:3、记忆:4、功能:clear scr (scr - screen1、翻译:清屏2、读熟:3、记忆:4、功能:insert into 表名 values( 列表参数(数值或者字符), ……);1、翻译:插入数据2、读熟:3、记忆:4、功能:select *(列名,列名,…) from 表名;1、翻译:查询全部列(指定列,指定列,…)2、读熟:3、记忆:4、功能:values1、翻译:数据值2、读熟:3、记忆:4、功能:row1、翻译:行2、读熟:3、记忆:4、功能: record1、翻译:记录2、读熟:3、记忆:4、功能: column1、翻译:列2、读熟:3、记忆:4、功能:filed1、翻译:字段(2、读熟:3、记忆:4、功能:instance1、翻译:某个对象的实例(例子2、读熟:3、记忆:4、功能:field1、翻译:对象实例的属性(2、读熟:3、记忆:4、功能:error1、翻译:错误2、读熟:3、记忆:4、功能:into进入…中,输入3、记忆:4、功能:sqlplus 登陆名/口令1、翻译: oracle数据库的连接工具(oracle数据库提供的客户端工具2、读熟:3、记忆:4、功能:column 列名 format a6(col 列名 for a6缩写column 列名 format 99999(5个数值长度,99999是一个格式)1、翻译:设置(column)列名的宽度6个字符(a6表示6个字符设置列名的宽度为5个数值长度2、读熟:3、记忆:4、功能:set linesize 数值设置行的长度(显示’数值’个字符再换行3、记忆:4、功能:set pagesize 100(set pages 100 简写1、翻译:每100行数据分页显示 ( 0为不分页2、读熟:3、记忆:4、功能:desc 表名1、翻译:表名2、读熟:3、记忆:4、功能:number(n)1、翻译:数字(最长n位)2、读熟:3、记忆:number(n,m) - number(7,2)99999.991、翻译:浮点数(总长n位,小数点后m位)2、读熟:3、记忆:4、功能:char(n)1、翻译: 表示定长字数串(方便查询)最长放入n个字符,放入的数据如果不够n个字符则补空格,无论如何都占n个字符长度.2、读熟:3、记忆:4、功能:varchar(n)1、翻译: 表示变长字符串(节省空间)最长放入n个字符,放入的数据是几个长度就占多大空间2、读熟:4、功能:varchar2(n)1、翻译: Oracle自己定义的变长字符串2、读熟:3、记忆:4、功能:date1、翻译:日期2、读熟:3、记忆:4、功能:select 列名1,列名2 from 表名where 列名3 = 数值(字符) and 列名4 = 数值(字符);1、翻译: 按照列名3和列名4指定的数值和字符搜索查找到某行,显示出该行列名1和列名2的信息2、读熟:4、功能:commit1、翻译:事务控制语句(翻译:保证保存?2、读熟:3、记忆:4、功能:select 列名,列名,列名*12 别名 from 表名;1、翻译:别名(只管前面那个列名2、读熟:3、记忆:4、功能:null1、翻译: 任何数据类型都可以取值null空值和任何数据做算数运算,结果都是null空值和字符串类型做连接操作,结果相当于空值不存在2、读熟:4、功能:nvl(参数1,参数2)1、翻译: 处理空值的函数(如果’参数1’的值是null,则用’参数2’替代)两个参数可以是数字,字符或日期,但两个参数的数据类型必须一致;类似java中的方法重载,但不是java写的2、读熟:3、记忆:4、功能:insert into 表名 values (参数,参数,null,null,null,…); insert into 表名(列名,列名) values (参数,参数);(简写,不用写null)1、翻译:插入一行数据2、读熟:3、记忆:position1、翻译:职位2、读熟:3、记忆:4、功能:select 列名,列名||’添加信息,输出’||detail from 表名;1、翻译: detail详述,清晰的说明;’||’表示两个数据串接起来,类似java中的’+’号2、读熟:3、记忆:4、功能:create table 新建表名 as select * from 表名;1、翻译: 复制新建一个表2、读熟:3、记忆:4、功能:create table 新建表名 as select * from 表名where 1 <> 1;1、翻译: 复制表:只复制结构,不复制数据注意:复制表的时候,不复制约束条件2、读熟:3、记忆:4、功能:select distinct 列名,列名 from 表名;1、翻译:列的联合唯一组合(必须,只能在select后面2、读熟:3、记忆:4、功能:distinct1、翻译:唯一 (翻译:明显的,有区别的2、读熟:3、记忆:4、功能:select 列名 from 表名 where 列名运算符(大于,小于,…) 参数例:select * from emp_superman where salary >10000;1、翻译:按照输入运算符和参数判断列名里面符合的行SQL语句大小写不敏感,数据大小写敏感(输入参数时一定要明确大小写对应2、读熟:3、记忆:4、功能:select 列名 from 表名 where lower(列名) = ’参数’;1、翻译: lower(列名)函数,将列名里的字符数据转换为小写,(如果不知道列名的大小写形式,可以使用,忽略大小写2、读熟:3、记忆:4、功能:select 列名 from 表名 where upper(列名) = ’参数’;1、翻译: upper(列名)函数,将列名里的字符数据转换为大写,(如果不知道列名的大小写形式,可以使用,忽略大小写2、读熟:3、记忆:4、功能:between … and …例:select * from emp_superman where salary >= 5000 and salary <=10000; select * from emp_superman where salary between 5000 and 10000;1、翻译: 在区间中:between 低值 and 高值闭区间:[低值,高值]2、读熟:3、记忆:4、功能:hiredate1、翻译:聘用时间2、读熟:3、记忆:4、功能:in(列表参数,列表参数)例:select * from emp_supermanwhere job = 'Manager'or job ='Analyst';select * from emp_supermanwhere job in ('Manager','Analyst');1、翻译: 按照输入的列表参数搜索查找列里相同的参数输出参数相同的行2、读熟:3、记忆:4、功能:like % _例:select * from emp_supermanwhere lower(job) like '%sales%';1、翻译: 模糊匹配“%”表示0到多个字符,跟like配合使用“_”下划线表示一个字符2、读熟:3、记忆:4、功能:select count(*) from user_tableswhere table_name like 'S\_%' escape'\';1、翻译:如果查询的数据含特殊字符( _ % )在做模糊查询时需要加上\符号表示转义,并且用escape 短语指明转义字符2、读熟:3、记忆:4、功能:escape'\'1、翻译:指明转义字符(\后面一个字符就是要转义的字符2、读熟:3、记忆:4、功能:is null例:select * from emp_superman where bonus is null;1、翻译:数据库语言判断null值的方法2、读熟:3、记忆:4、功能:is not null例:select * from emp_superman where bonus is not null;1、翻译:数据库语言判断不是null值的方法2、读熟:3、记忆:4、功能:not between 参数 and 参数例:select * from emp_supermanwhere salary not between 5000 and 8000;1、翻译:不在列表低值到高值之间的行2、读熟:3、记忆:4、功能:not in (list)例:select * from emp_superman where deptno not in(20,30);1、翻译:按照输入的列表参数搜索查找列里不相同的参数输出参数不相同的行2、读熟:3、记忆:4、功能:alter1、翻译:修改数据库对象(翻译:改变2、读熟:3、记忆:4、功能:drop1、翻译:删除数据库对象(翻译:落下,停止,结束2、读熟:3、记忆:4、功能:truncate1、翻译:清空表数据(翻译:截面的,缩短了的2、读熟:3、记忆:4、功能:insert1、翻译:插入操作(翻译:插入2、读熟:3、记忆:4、功能:1、翻译:更新操作(翻译:更新2、读熟:3、记忆:4、功能:语法结构:update 表名 set 列名 = 新的列值,列名 = 新的列值,…where 条件;1、翻译: 更新数据 (重新设置编辑)更新(update)数据表时,注意条件,如果不加条件,修改的是全部表记录;rollback回退,commit确认2、读熟:3、记忆:4、功能:语法结构:delete [from] 表名 where 条件; //from可以省略1、翻译:删除操作(翻译:删除注意:如果删除语句中不加where条件,将删掉表中的全部记录rollback回退,commit确认drop table会删除表结构和数据;truncate删除表数据,保留表结构.Drop和truncate斗不可以回退.delete仅删除数据,可以回退2、读熟:3、记忆:4、功能:sql buffer1、翻译:被称为sql buffer 的内存区域2、读熟:4、功能:buffer1、翻译:缓冲,缓冲区2、读熟:3、记忆:4、功能:round(数字,小数点后的位数)例:select ename,salary*0.1234567 s1, --原样显示round(salary*0.1234567,2) s2,--保留2位有效数字round(salary*0.1234567) s3 --默认0位有效数字from emp_superman;1、翻译:用于数字的四舍五入,没有第二个参数默认0(翻译:把…四舍五入2、读熟:3、记忆:trunc(数字,小数点后的位数)例:select ename,salary*0.1234567 s1,round(salary*0.1234567,2) s2,round(salary*0.1234567) s3,trunc(salary*0.1234567) s4from emp_superman;1、翻译:数字函数,截取,末尾不做四舍五入,没有第二参数,默认0(翻译:2、读熟:3、记忆:4、功能:select sysdate from dual;1、翻译:获取系统当前时间(日-月-年2、读熟:3、记忆:sysdate1、翻译:日期函数(全称:systemdate 翻译:系统时间2、读熟:3、记忆:4、功能:dual1、翻译: 虚表(翻译:双的,双数虚标dual是Oracle提供的用于操作函数的方式.属于SYS用户,共享给所有用户使用.虚标dual是单行单列的表,表中存放一个常量数据X.更方便的操作函数或者查询常量2、读熟:3、记忆:4、功能:select ename,hiredate,(sysdate - hiredate) daysfrom emp_superman;1、翻译:员工入职时间(日期数据相减,得到两个日期之间的天数差,不足一天用小数表示.可以用round函数处理一下2、读熟:3、记忆:4、功能:select ename,hiredate,months_between(sysdate,hiredate) monthsfrom emp_superman;1、翻译:员工入职多少个月,小数,(可以用round函数处理2、读熟:3、记忆:4、功能:months_between(日期数据参数1,日期数据参数2)1、翻译:参数1-参数2 的正值 (求出结果是月份,带小数2、读熟:3、记忆:4、功能:select add_months(sysdate,-12) from dual;1、翻译:计算12个月之前的时间点(一年前的今天2、读熟:3、记忆:4、功能:add_months(日期数据参数1,数值)1、翻译:参数1为标准,后面数值正为以后,负为以前2、读熟:3、记忆:4、功能:select last_day(sysdate)from dual;1、翻译:计算本月的最后一天2、读熟:3、记忆:4、功能:last_day(日期数据参数)1、翻译:日期函数(显示当月最后一天,日-月-年2、读熟:3、记忆:4、功能:select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;select to_char(sysdate,'year month dd day dy') from dual;select to_char(sysdate,'yyyy/mm/dd')from dual;1、翻译:把时间数据按指定格式输出2、读熟:3、记忆:4、功能:to_char(日期数据,格式)1、翻译:转换函数(把日期数据转换为字符数据2、读熟:3、记忆:yyyy 四位数字年 2011year 全拼的年 twenty eleven month 全拼的月 november 11月(中文mm 两位数字月 11mon 简拼的月 novdd 两位数字日day 全拼的星期 tuesdaydy 简拼的星期 tueam 上午/下午 am/pm1、翻译:常用日期格式2、读熟:3、记忆:4、功能:DD-MON-RR 日-月-年1、翻译: sqlplus中日期的默认格式2、读熟:4、功能:insert into emp_superman(empno,ename,hiredate) values(1012,'amy',to_date('2011-10-10','yyyy-mm-dd') );1、翻译:按指定时间格式插入数据2、读熟:3、记忆:4、功能:to_date(字符串数据,时间格式);1、翻译:将字符串数据按指定格式转换为日期数据2、读熟:3、记忆:4、功能:select ename,to_char(hiredate,'yyyy-mm-dd') from emp_superman;1、翻译:按指定格式显示员工姓名和入职时间2、读熟:3、记忆:4、功能:select ename,bonus,salary,coalesce(bonus,salary*0.5,100) bonusfrom emp_superman;1、翻译: 计算员工的年终奖金如果bonus不是null,发年终奖金额为bonus如果bonus是null,发年终奖为salary*0.5如果bonus和salary都是null,发100元安慰一下返回参数列表中第一个非空数据最后一个参数通常是常量2、读熟:3、记忆:4、功能:coalesce(参数列表)函数的作用1、翻译: 返回参数列表中第一个非空参数,参数列表中最后一个值通常为常量2、读熟:3、记忆:4、功能:select ename,salary,job,case job when 'Analyst' then salary*1.1 //没有’,’when 'Programmer' then salary*1.05when 'clerk' then salary*1.02else salary //else 相当于java里的case语句的default end new_salary //end 是case 语句的结束标识from emp_superman;1、翻译: 如果职位是Analyst:加薪10%如果职位是Programmer:加薪5%如果职位是clerk:加薪2%其他职位:薪水不变2、读熟:3、记忆:4、功能:case1、翻译: case语句是数据中的分支语句,相当于java中的switch-case语句(翻译:事例2、读熟:3、记忆:4、功能:select ename,salary,job,decode(job,'Analyst',salary*1.1,'Programmer',salary*1.05,'clerk',salary*1.02,salary)new_salaryfrom emp_superman;如果职位是Analyst:加薪10%如果职位是Programmer:加薪5%如果职位是clerk:加薪2%其他职位:薪水不变2、读熟:3、记忆:4、功能:decode(判断条件,匹配1,值1,匹配2,值2,…,默认值)1、翻译: decode()函数是Oracle中等价于case when语句的函数,作用同case 语句相同.表达的意思是:如果判断条件 = 匹配1,则返回值1判断条件 = 匹配2,则返回值22、读熟:3、记忆:4、功能:select ename,salary from emp_supermanorder by salary asc;select ename,salary from emp_supermanorder by salary desc;1、翻译: 薪水由低到高排序(升序排列)正序排列,asc可以省略;薪水由高到低排序(降序排列)降序排列,desc(descend)不可省略;注意:排序语句放在查询语句的最后2、读熟:3、记忆:4、功能:order by1、翻译: 查询结果排序注意:order by一定要放到最后2、读熟:3、记忆:4、功能:select count(*) from emp_superman员工表中有多少条记录count函数忽略空值2、读熟:3、记忆:4、功能:select count(*) from user_tables;1、翻译: 当前用户账户(openlab)下有多少个表2、读熟:3、记忆:4、功能:user_tables1、翻译: 数据字典,只读,不能改2、读熟:3、记忆:4、功能:show userselect user from dualsqlplus命令,查看当前用户账户2、读熟:3、记忆:4、功能:count()avg()sum()max()min()1、翻译: 组函数是多行数据返回一行结果如果函数中写列名,默认忽略空值avg/sum 针对数字的操作max/min 对所有数据类型都可以操作2、读熟:3、记忆:4、功能:round()to_date()to_char()coalesce()1、翻译: 单行函数是每行数据返回一行结果2、读熟:3、记忆:4、功能:select sum(salary) from emp_superman;1、翻译: 计算员工的薪水总和是多少2、读熟:3、记忆:4、功能:select count(*) num,sum(salary) sum_sal, avg(nvl(salary,0)) avg_salfrom emp_superman;1、翻译: sqlplus命令,查看当前用户账户2、读熟:3、记忆:。