oracle基本语法(增删改查)_第1页
oracle基本语法(增删改查)_第2页
oracle基本语法(增删改查)_第3页
oracle基本语法(增删改查)_第4页
oracle基本语法(增删改查)_第5页
已阅读5页,还剩1页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

安装PL/SQLDeveloper前提:必须安装Oracle的客户端卸载:------------------------------CommandWindow-->SQLPLUSSQLWindow-->用来开发SQL程序-------------------------------数据库增删改-->30%查-->70%------------------------------------------------------------------------------创建表:createtable表名(列1类型,列2类型);字符类型char-->定长字符串namechar(10)-->保存一个值到name'abc'--实际存储后的结果是-->'abc'varchar2-->变长字符串namevarchar2(10)-->保存一个值到name'abc'--实际存储后的结果是-->'abc'clob-->保存超大文本4G---------------------------数字类型所有的数字(整数,浮点数)都是number定义一个工资的保存列salnumber(5,2)-999.99~999.99年龄agenumber(2)-99~99---------------------------日期类型date-->保存年月日,时分秒--------------------------二进制类型BLOB-->最大不能超过4G;------------------------------表结构的基本操作:0、查看表结构desc表名1、添加一个字段altertable表名add(列类型);2、修改字段类型altertable表名modify(列类型);3、删除一个字段altertable表名dropcolumn列名;4、修改表的名字renamestudenttostu5、删除表droptable表名**如果需要修改列的名字新增一个字段,然后迁移数据,最后删除原字段或者使用图形化工具如果有值,这种删除,是没有办法恢复的。。上述修改表结构相关的语句叫做DDL,修改,是没有办法恢复的--------------------------------------------------------------------------------------------------插入数据createtabletest(idnumber,namevarchar2(20),agenumber(2));1)insertinto表名values(所有列的值);insertintotestvalues(1,'zhangsan',20);2)insertinto表名(列)values(对应的值);insertintotest(id,name)values(2,'lisi');insertintotest(name,age)values('wangwu',20);--------------------------------------------------------------------------------------------------更新语句update表set列=新的值[where条件]--》更新满足条件的记录updatetestsetname='zhangsan2'wherename='zhangsan'update表set列=新的值--》更新所有的数据updatetestsetage=20;----------------------------------**删除数据:几种删除方式:1)deletefrom表名where条件-->删除满足条件的记录deletefromtestwhereid=1;deletefromtest;-->删除所有commit;-->提交数据rollback;-->回滚数据delete方式可以恢复删除的数据,但是提交了,就没办法了delete删除的时候,会记录日志--》删除会很慢很慢2)truncatetable表名删除所有数据,不会影响表结构,不会记录日志,数据不能恢复--》删除很快3)droptable表名删除所有数据,包括表结构一并删除,不会记录日志,数据不能恢复-->删除很快------------------------------------------------------------------------------------------如何查看一个SQL执行了多长时间?settimingon小技巧:如何快速的复制数据?1、insertintotestselect*fromtest;2、createtable表名select*fromtest;-----------------------------------------------------------------查询:基本查询,复杂查询1、导入数据sqlplus状态下:@文件名基本查询select列from表名select*from表名--》所有列-----------------------------------------------1、去除重复的显示selectdistinct列from表名2、算术运算,不能把NULL参与运算nvl(列,值)--》如果列为空,则用“值”替换NULLnvl(comm,0)--->如果comm为空,返回0每一个列都可以取别名3、如何连接字符串||-------------------------------------------------------------------------------日期类型:to_date(字符串1,字符串2)-->字符串1是日期的字符串,字符串2是格式,返回一个日期类型。to_date('1990-1-1','yyyy-mm-dd')-->返回日期类型的1990-1-1to_date('1990-1-113:30:10','yyyy-mm-ddhh24:mi:ss')-->返回日期类型的1990-1-113:30:10SQL的模糊查询:like:匹配字符%:0到多个字符_:表示单个字符如果涉及到NULL判断isNULL,isnotnull查询结果需要排序orderby字段select*fromemporderbysal--》orderby后面,默认升序asc升序desc降序-------------------------------Oracle的复杂查询,统计函数,分组sum,count,avg,max,min----分组:studentnamesexclassscorezhangsan男1090李四男1060zhang女1086王五女2090统计每个班的最高分max(score)10zhangsan男1090-->90李四男106020王五女2090-->90--------------------------------------统计每个班的男生和女生分别的最高分分组:classsexmax(score)10男zhangsan男1090-->90李四男106010女zhang女1086-->8620女王五女2090-->90统计函数不能跟在where条件后面-groupby和having子句groupby字段-->按照指定的字段进行分组having字句--》对分组后的结果进行筛选输出-------------------------------一般来说,groupby后面的字段,最好出现在select后面统计函数统计的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论