第四章SQL查询(一).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章SQL查询(一).doc

第四章SQL查询(一) 一、数据类型 1、字符 ①char:2kB;nchar: ②varchar2:4kB; nvarchar2:需指定大小 ③long:2GB的varchar2 2、数值 number(总位数, 小数点后的位数) ①全不给,是number(38, 0) ②只给总位数,是整数 ③number(m, n) 如果n 0,小数点“后n”位四舍五入; 如果n 0,小数点“前|n|”位变0,第“前|n| + 1”位四舍五入 ④number(*, n),总位数没限制,小数必须n位 3、日期时间 ①date 7B SQLServer中,convert(类型, 数据),如convert(char(4), 123) 可以把很多种日期样式的字符串插入到日期类型的字段中,函数重载; Oracle中,默认日期样式是dd-mm月 -yy,有两种办法把任意样式的字符串插入日期类型字段: 第一,修改当前会话的默认日期格式 如,alter session set nls_date_format = yyyy/mm/dd; insert into testTable (dateColumn) values (2007/9/2); alter session set nls_date_format = yyyy年mm月dd日; insert into testTable (dateColumn) values (2007年9月2日); 第二,用系统提供的日期转换函数,把任意样式的字符串转换成日期字符串 如,insert into testTable (dateColumn) values (to_date(2007-9-2, yyyy-mm-dd)); insert into testTable (dateColumn) values(to_date(2007年9月2日, yyyy年mm月dd日)); ②timestamp 秒:小数点后6位 4、二进制 SQLServer中是binary、image; Oracle中是raw(不是row)、longraw ①raw,2kB,需指定大小 ②longraw,2GB 5、大对象(存二进制)Large Object 只能用DML、存储过程、PL/SQL内置程序包DBMS LOB操作 ①clob,Character LOB;nclob,Unicode字符 ②blob,Binary LOB,放图片、声音、视频,能剪辑 ③bfile,Binary File,4GB,不占dbf的地儿,但靠数据库去管理 6、伪列、伪表 ①rowid:记录的唯一地址,索引用 高效、唯一 唯一地标识数据库中的一行,保存在记录的头信息中,能快速定位至某一行记录 如,“索引表”的“索引值”列保存的就是rowid,能区别两条一样的记录 格式为:OOOOOOFFFBBBBBBRRR OOOOOO代表数据对象号,它表示数据库段的编号; FFF代表在表空间中的相对文件号; BBBBBB代表在一个文件中的块号,块号与数据文件有关,与表空间无关; RRR代表块中行的位置号。 -- 删除重复记录:删除row_number() over() 不等于1的记录 create table t as select ename, sal from emp; delete from t where rowid in ( select ri from ( select rowid ri, row_number() over (partition by sal order by rowid) rn from t ) where rn 1 ); create table my_test ( id number(3), name varchar2(20) ); insert into my_test values (1, This is line 1); insert into my_test values (1, This is line 1); insert into my_test values (1, This is line 1); insert into my_test values (1, This is line 1); insert into my_test values (2, This is line 2); delete from my_test where rowid in ( select ri from ( select rowid ri, row_number() over (partition by id order by rowid) rn from my_te

文档评论(0)

yanzhaoqiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档