Oracle数据库操作基本语法.doc
- 文档编号:231520
- 上传时间:2022-10-07
- 格式:DOC
- 页数:6
- 大小:44KB
Oracle数据库操作基本语法.doc
《Oracle数据库操作基本语法.doc》由会员分享,可在线阅读,更多相关《Oracle数据库操作基本语法.doc(6页珍藏版)》请在冰豆网上搜索。
数据库执行是从左到右执行的
创建表
SQL>createtableclasses(
classIdnumber
(2),
cnamevarchar2(40),
birthdaydate
);
添加一个字段
SQL>altertablestudent add(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/2(如果还有,则加“,”以此类推)
wheresex=’男’(如果是空的,则用“isnull”)
;
更改多项数据
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,job列名
fromstudent表名
;
打开显示操作时间的开关
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,depta2用于区别多个表中的列名
wherea1.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.salbetween某个条件
a2.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>selectdistinct过滤关键词
jobfromempwheredeptno=10;
SQL>select*fromempwherejobin(selectdistinctjobfr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据库 操作 基本 语法