- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TIME()
TIMESTAMP(CURRENT DATE,'01:00:00'); values(CURRENT DATE- DATE('2011-04-01')); 默认为天 values(current date+1 days);
create table 表名( id identity(1,1) not null, field1 varchar(10) null)
日期
日期时间函 数
日期
定义时间格式(转字 convert(char(8),getdate(),108) 符型) 取日期时间的其他部 datepart(日期元素标识,日期) 分 当月最后一天 本星期的某一天(比 如星期日) cast(日期格式的字符串表达式 as 字符串转时间 datetime) 求两日期某一部分的 datediff(日期元素,日期1,日期2) 差(比如秒) 根据差值求新的日期 dateadd(日期元素,增加的数值,日期) (比如分钟) 创建数据库 定义表 定义视图 定义存贮过程 create database 数据库名 create table 表名(表体) create view 视图名 as 视图体 create procedure 存贮过程名 as begin 存 贮过程体 end
变量管理
将查询结果赋给变量 select @变量名=表达式 from 表名 条件分支 程控语句 过程 循环 if 条件表达式 while 循环条件
exec(SQL语句字符串) 执行一个存放在字符 sp_execute(SQL语句字符串,参数1,参数2, 串里的SQL语句 …)
错误捕捉机 制
存储过程及函数的异 常处理机制: 通过存贮过程返回结 在存贮过程中直接加入select语句即可 果集 查看表结构 sp_help Table
ceil(数值表达式) 同SQL trunc(数值表达式) 同SQL 同SQL ln(数值表达式) log(10,数值表达式) power(数值表达式,2) 同SQL 同SQL
INT(数值),BIGINT(数值) ROUND(EXP1,EXP2)返回EXP1小数点右边的第EXP2 位置处开始的四舍五入值 同SQL 同SQL 同SQL power(数值表达式,2) 同SQL 同SQL
数学函数
rand():返回0-1之间的随机数
取符号 sign(数值表达式) 求一组数中的最大值 求一组数中的最小值 求集合最大值 max(表达式) 求集合最小值 min(表达式) 系统时间 定义日期格式(转字 符型) getdate() convert(char(10),getdate(),20)
日期时间函 数
SELECT * FROM SYSCAT.TABLES;
TERADATA || CHAR2HEXINT(字串)(该函数是将每一个字符转 换成4位的16进制数) index(字符串,子串) substring(字符串 from 截取的起始位置 [for 子串长度])
CHAR(字符串) 同SQL
trim([BOTH|TRAILING|LEADING FROM] 字符串)
可以用CAST('' AS CHAR(重复数))来实现重复 多少个空格 转整形 可以用+0.5取整的方式 同SQL 同SQL 同SQL 同SQL
RANDOM
同SQL 同SQL current_date current_time current_timestamp cast(cast(date as date format 'YYYYMMDD') as varchar(8))
current date current time current timestamp DATE()
to_char(sysdate,'hh24:mm:ss') to_char(ysysdate,元素格式) last_day(sysdate) next_day(sysdate,星期几) to_date(日期格式的字符串表达式,转换后的日 期格式) 直接用两个日期相减(比如d1-d2=12.3) sysdate+日期 create database 数据库名 create table 表名(表体) create view 视图名 as 视图体 create procedure 存贮过程名 as begin 存贮 过程体 end create function create trigger create index 通过对字段编制触发器来实现
declare delsql varchar(2000); set 变量名=表达式或常量; select 表达式 into 变量名 from 表名;(只限 于存储过程中,并且用于返回1行的结果) while sqlcode = 0 do end while;
declare delsql varchar(2000); declare delstmt statement; set delsql = 'delete from '|| char(packageTimes); prepare delstmt from delsql; execute delstmt; DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN END; DECLARE CONTINUE HANDLER FOR SQLWARNING DECLARE UNDO HANDLER FOR NOT FOUND
光标操作
定义一个光标 打开光标 读取光标到变量 关闭光标 释放光标 定义一个变量 变量赋值
declare 光标源自文库 cursor for SQL语句 open 光标名 fetch next from 光标名 into 变量列表 close 光标名 deallocate 光标名 declare @变量名 变量类型 set @变量名=表达式
nvl(表达式,当表达式为空时的替换值) select 表达式 from dual select select * from table where rownum<=10
coalesce select 表达式 from sysibm.sysdummy1; values(表达式); select
select * from table fetch first 10 rows only;
create 临时表名 as select * from table drop insert delete update EXECUTE IMMEDIATE "truncate table 表名" drop insert delete update
ALTER TABLE TABLE_NAME ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE; LOAD FROM /dev/null OF DEL REPLACE INTO DB2INST1.TMP NONRECOVERABLE;
数据库对象 定义
DDL
定义函数(用SQL语句 create function 编制的函数体) 定义触发器 create trigger 定义索引 create index create table 表名( 定义自增长字段 id identity(1,1) not null, field1 varchar(10) null) 定义宏 创建全局临时表 create table ##表名
create global temperary 表名
DECLARE GLOBAL TEMPORARY TABLE SESSION.TMP_STAFF_INFO_PCCC( )ON COMMIT PRESERVE ROWS NOT LOGGED WITH REPLACE IN DB_USER_TEMP_TS32K;
sys.dbms_random.value(最小值,最大值):返回 最小值和最大值之间的随机数 greatest(数据1,数据2,...) least(数据1,数据2,...) 同SQL 同SQL sysdate to_char(sysdate,'yyyy-mm-dd')
RAND() 返回0和1之间的随机浮点数.
replace(字符串,被替换子串,替换子串) translate(字符串,被替换子串,替换子串) length(字符串) 同SQL initcap(字符串) lpad(字符串,补空格以后的长度) rpad(字符串,补空格以后的长度) ltrim(字符串):去除左空格 rtrim(字符串):去除右空格 trim(字符串) :去除左右空格
replace(字符串,被替换子串,替换子串) length(字符串) lower(字符串),upper(字符串) LPAD(字符串,总长度,填补字符) 9.5以上版本可用 RPAD(字符串,总长度,填补字符) 9.5以上版本可用 ltrim(字符串):去除左空格 rtrim(字符串):去除右空格 REPEAT(EXP1,EXP2) space(空格字符串长度)
数据库常用命令
问题类型 分类 功能 字符串连接符 求字符ASCII 从ASCII求字符 子串位置 求子串 子串代替 子串全部替换 字符串函数 字符串 取字符串长度 大小写转换 单词首字母大写 左补空格 右补空格 删除空格 重复字符串 空格字符串函数 取整(大) 取整(小) 取整(截取) 四舍五入 e为底的幂 取e为底的对数 取10为底对数 取平方 取平方根 数学运算 求任意数为底的幂 协方差函数 对数函数 方差函数 取随机数 ltrim(字符串):去除左空格 rtrim(字符串):去除右空格 replicate(字符串,重复次数) space(空格字符串长度) ceiling(数值表达式) floor(数值表达式) cast(数值表达式 as int) round(数值表达式,四舍五入后的小数点位 数) Exp(幂) log(数值表达式) log10(数值表达式) square(数值表达式) sqrt(数值表达式) power(底数,幂) SQL SERVER "+" ascii(字符) char(ASCII值) charindex(子串,字符串,起始位置) substring(字符串,截取的起始位置,子串长 度) stuff(字符串,被替换的起始位置,被替换长 度,替换子串) replace(字符串,被替换子串,替换子串) len(字符串) lower(字符串),upper(字符串)
EXECUTE IMMEDIATE SQL语句字符串
Exception When Others Then p_msg := Sqlerrm; Return; 在存贮过程中open一个光标类型的输出参数即 可 Desc Table
DESCRIBE TABLE TAB; DESCRIBE SELECT * FROM TAB;
其它
数据字典
查询数据库中有哪些 select * from master..sysdatabases 数据库 查询某数据库中有哪 select * from sysobjects 些表 设置当前默认数据库 use 数据库名
数据库常用命令对照表
ORACLE "||"或者用concat(字符串1,字符串2)函数 同SQL chr(ASCII值) instr(字符串,子串,起始位置) substr(字符串,截取的起始位置,子串长度) DB2 "||"或者用concat(字符串1,字符串2)函数 ascii(字符) chr(ASCII值) LOCATE(字串,字符串[,起始位置]) substr(字符串,截取的起始位置,子串长度)
创建局部临时表
create table #表名
创建可变临时表 通过查询创建临时表 select * into #表名 from table 删除数据库对象 插入记录 删除记录 修改记录 清空表 数据操作 DML drop insert delete update truncate table 表名
使用指定的替换值替 IsNull(表达式,当表达式为空时的替换值) 换 NULL 无表体查询 查询数据 查询前10条记录 select 表达式 select select top 10 * from table