Oracle数据库操作基本语法.docx

上传人:b****2 文档编号:1904310 上传时间:2022-10-25 格式:DOCX 页数:7 大小:18.01KB
下载 相关 举报
Oracle数据库操作基本语法.docx_第1页
第1页 / 共7页
Oracle数据库操作基本语法.docx_第2页
第2页 / 共7页
Oracle数据库操作基本语法.docx_第3页
第3页 / 共7页
Oracle数据库操作基本语法.docx_第4页
第4页 / 共7页
Oracle数据库操作基本语法.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

Oracle数据库操作基本语法.docx

《Oracle数据库操作基本语法.docx》由会员分享,可在线阅读,更多相关《Oracle数据库操作基本语法.docx(7页珍藏版)》请在冰豆网上搜索。

Oracle数据库操作基本语法.docx

Oracle数据库操作基本语法

数据库执行是从左到右执行的

创建表

SQL>createtableclasses(

classIdnumber

(2),

cnamevarchar2(40),

birthdaydate

);

添加一个字段

SQL>altertablestudentadd(classIdnumber

(2));

修改字段长度

SQL>altertablestudentmodify(xmvarchar2(30));

修改字段的类型/或是名字(不能有数据)

SQL>altertablestudentmodify(xmchar(30));

删除一个字段

SQL>altertablestudentdropcolumnsal;

修改表的名字

SQL>renamestudenttostu;

删除表

SQL>droptablestudent;

插入所有字段数据

SQL>insertintostudentvalues(‘001’,’salina’,’女’,’01-5月-05’,10);

修改日期输入格式

SQL>altersessionsetnls_date_format=‘yyyy-mm-dd’;//临时生效,重启后不起错用

SQL>insertintostudentvalues(‘001’,’salina’,’女’,to_date(’01-5-05’,’yyyy-mm-dd’),10);

SQL>insertintostudentvalues(‘001’,’salina’,’女’,to_date(’01/5-05’,’yyyy/mm/dd’),10);

插入部分字段

SQL>insertintostudent(xh,xm,sex)values(‘001’,’lison’,’女’);

插入空值

SQL>insertintostudent(xh,xm,sex,birthday)values(‘021’,’BLYK’,’男’,null);

一条插入语句可以插入多行数据

SQL>insertintokkk(Myid,myname,mydept)selectempno,ename,deptnofromempwheredeptno=10;

查询空值/(非空)的数据

SQL>select*fromstudentwherebrithdayisnull(/notnull);

修改(更新)数据

SQL>updatestudentsetsal=sql/2wheresex=’男’;

更改多项数据

SQL>updateempset(job,sal,comm)=(selectjob,sal,commfromempwhereename='SMITH')whereename='SCOTT';

删除数据

1.保存还原点

SQL>savepointaa;

2.删除数据

【1】SQL>deletefromstudent;//删除表的数据

【2】SQL>droptablestudent;//删除表的结构和数据

【3】SQL>deletefromstudentwherexh=’001’;//删除一条记录

【4】SQL>truncatetablestudent;//删除表中的所有记录,表结构还在,不写日志,无法扎找回的记录,速度快

查看表结构

SQL>descstudent;

查询指定列

SQL>selectsex,xh,xmfromstudent;

如何取消重复

SQL>selectdistinctdeptno,jobfromstudent;

打开显示操作时间的开关

SQL>settimingon;

 

为表格添加大的数据行(用于测试反应时间)

SQL>insertintousers(userid,username,userpss)select*fromusers;

统计表内有多少条记录

SQL>selectcount(*)fromusers;

屏蔽列内相同数据

SQL>selectdistinctdeptno,jobfromemp;

查询指定列的某个数据相关的数据

SQL>selectdeptno,job,salfromempwhereename=’smith’;

使用算数表达式

SQL>selectsal*12fromemp;

使用类的别名

SQL>selectename“姓名”,sal*12as“年收入”fromemp;

处理null(空)值

SQL>selectsal*13+nvl(comm,0)*13“年工资”,ename,commfromemp;

连接字符串(||)

SQL>selectename||‘isa’||jobfromemp;

Where子句的使用

【1】SQL>selectename,salfromempwheresal>3000;//number的范围确定

【2】SQL>selectename,hiredatefromempwherehiredate>’1-1月-1982’;//日期格式的范围确定

【3】SQL>selectename,salfromempwheresal>=2000andsal<=2500;//组合条件

Like操作符:

’%’、’_’

SQL>selectename,salfromempwhereenamelike‘S%’;//第一个字符【名字第一个字符为S的员工的信息(工资)】

SQL>selectename,salfromempwhereenamelike‘__O%’;//其它字符【名字第三个字符为O的员工的信息(工资)】

批量查询

SQL>select*fromempwherein(123,456,789);//查询一个条件的多个情况的批量处理

查询某个数据行的某列为空的数据的相关数据

SQL>select*fromempwheremgrisnull;

条件组合查询(与、或)

SQL>select*fromempwhere(sal>500orjob=’MANAGER’)andenamelike‘J%’;

Orderby排序

【1】SQL>select*fromemporderbysal(asc);//从低到高[默认]

【2】SQL>select*fromemporderbysaldesc;//从高到低

【3】SQL>select*fromemporderbydeptno(asc),saldesc;//组合排序

【4】SQL>selectename,sal*12“年薪”fromemporderby“年薪”(asc);

SQL>selectename,(sal+nvl(comm,0))*12as"年薪"fromemporderby"年薪";

资料分组(max、min、avg、sum、count)

SQL>selectmax(sal),min(sal)fromemp;

SQL>selectename,salfromempwheresal=(selectmax(sal)fromemp);//子查询,组合查询

SQL>select*fromempwheresal>(selectavg(sal)fromemp);//子查询,组合查询

SQL>updateempsetsal=sal*1.1wheresal<(selectavg(sal)fromemp)andhiredate<'1-1月-1982';//将工资小于平均工资并且入职年限早于1982-1-1的人工资增加10%

Groupby和having子句

//groupby用于对查询出的数据进行分组统计

//having用于限制分组显示结果

SQL>selectavg(sal),max(sal),deptnofromempgroupbydeptno;//显示每个部门的平均工资和最低工资

SQL>selectavg(sal),max(sal),deptnofromempgroupbydeptno;//显示每个部门的平均工资和最低工资

SQL>selectavg(sal),max(sal),deptnofromempgroupbydeptnohavingavg(sal)>2000;

SQL>selectavg(sal),max(sal),deptnofromempgroupbydeptnohavingavg(sal)>2000orderbyavg(sal);

多表查询

笛卡尔集:

规定多表查询的条件是至少不能少于:

表的个数-1

SQL>selecta1.ename,a1.sal,a2.dnamefromempa1,depta2wherea1.deptno=a2.deptno;

SQL>selecta1.dname,a2.ename,a2.salfromdepta1,empa2wherea1.deptno=a2.deptnoanda1.deptno=10;//显示部门编号为10的部门名、员工名和工资

SQL>selecta1.ename,a1.sal,a2.gradefromempa1,salgradea2wherea1.salbetweena2.losalanda2.hisal;

SQL>selecta1.ename,a1.sal,a2.dnamefromempa1,depta2wherea1.deptno=a2.deptnoorderbya1.deptno;//多表排序

SQL>selectworker.ename,boss.enamefromempworker,empbosswhereworker.mgr=boss.empno;//自连接(多表查询的特殊情况)

SQL>selectworker.ename,boss.enamefromempworker,empbosswhereworker.mgr=boss.empnoandworker.ename='FORD';

子查询

SQL>select*fromempwheredeptno=(selectdeptnofromempwhereename='SMITH');

SQL>selectdistinctjobfromempwheredeptno=10;

SQL>select*fromempwherejobin(selectdistinctjobfromempwheredeptno=10);

//如何查询和部门10的工作相同的雇员的名字、岗位、工资、部门号。

SQL>selectename,sal,deptnofromempwheresal>all(selectsalfromempwheredeptno=30);//如何查询工资比部门30的所有员工的工资高的员工的姓名、工资和部门

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 电大

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1