DB2 SQL自学笔记
来源:互联网 发布:数据库字段注释 编辑:程序博客网 时间:2024/05/01 03:46
db2与其他数据相比,不同的地方如下所示:
数据类型来说: Decimal:一个固定位数的压缩的十进制数字。 10**31+1 to 10**31-1
Real:一个数字的32位bite近似值。
时间与日期:
日期的格式:
Format Name
Abbreviation
Date Format
Example
International Standards Organization
ISO
yyyy-mm-dd
1991-10-27
IBM USA standard
USA
mm/dd/yyyy
10/27/1991
IBM European standard
EUR
dd.mm.yyyy
27.10.1991
Japanese Industrial Standard Christian Era
JIS
yyyy-mm-dd
1991-10-27
时间的格式:
Format Name
Abbreviation
Date Format
Example
International Standards Organization
ISO
hh.mm.ss
13.30.05
IBM USA standard
USA
hh:mm AM or PM
1:30 PM
IBM European standard
EUR
hh.mm.ss
13.30.05
Japanese Industrial Standard Christian Era
JIS
hh:mm:ss
13:30:05
Timestamp的格式如下所示:
yyyy-mm-dd hh:mm:ss
其他的数据类型:
blob:二进制字符串
xml:xml文件
还有图形字符串类型,自行补充。
DDL的区别
DECLARE:除了创建在过程中使用的临时表外,与CREATE类似。唯一可被声明的对象是表,并且必须放入用户的临时表空间当中。可以定义程序中的变量和游标。
创建和删除数据库的语句:
create database database-name
drop database database-name
创建新表的语句
create tabe table-name (col1 data-type not null,col2 ... ... not null,coln data-type not null)
根据已有的表创建新表:
create table new-table-name like old-table-name
create table new-table-name as select col1,col2,... ... ,coln from old-table-name definition only
创建索引和视图
create [unique] index index-name on table-name (col1, ... ...)
drop index index-name
索引是不可以修改的,要想修改必须删除后新建
create view view-name as select statement
drop view view-name
视图唯一能修改的是引用列的数据类型,视图的基表删除后,视图无效。
索引的规划
要保存索引维护成本和空间:
对于联机事务处理(OLTP)环境,创建一个或两个索引
对于只读查询环境,可以创建5个以上索引
对于混合查询和OLTP环境,可以创建2到5个索引。
join使用的注意
select优化策略:
下列示例显示两个子句:SELECT EMPNAME, SALARY FROM EMPLOYEE ORDER BY SALARY DESC FETCH FIRST 100 ROWS ONLY OPTIMIZE FOR 20 ROWS
对于较短的列,尽量使用字符而不是可变字符
尽量使用整数,而不是浮点数或小数
尽量使用日期时间,而不是字符
尽量使用数字,而不是字符
除非您知道表很小,否则,不要使用下列语句来检查非零值:SELECT COUNT(*) FROM TABLENAME对于大表,对所有行计数会影响性能。
优化多表关联的select
优化Insert的方法
优化update的考虑
DCL数据库控制语言
grant:赋予权限
revoke:撤销用户权限
commit:提交事务,可以使数据库的修改永久化.
rollback:回滚事务,消除上一个提交的commit修改操作,使数据库恢复到上一个commit执行之后的状态.
事务的管理
commit事务要考虑很多的情况,下面是一些建议:
为了减少锁等待时间,应用的逻辑设计应遵循以下规则:
A:估计可能的提交最长时间的间隔,如果超过阀值(通常为5秒),就要使用以下方法来缩短提交间隔
B:按一定的逻辑顺序访问数据,以防止死锁。当不同的应用访问相同的数据时,他们应该遵循同一顺序来访问数据。
SQL高级语法
union运算符通过组合其他两个结果表派生出一个没有任何重复行的结果表。当all与union连用的时候,表示不去掉两表中的重复行。(union all)
except运算符通过包含所有在表table1但不在表table2中的去掉重复行的结果表。当all与except连用时(except all),不消除重复行。
intersect运算符通过既包含在表table1中,又包含在table2中的消除重复行的结果表。当它与all连用时(intersect all),不消除重复行。
复合外连接查询的结果集是从左到右的新顺序连接结果集。
grouping sets:用来在一个SQL中形成多级分组。例如:
select company_id,node_id,count(customer_id) from customer group by grouping sets(company_id,node_id);
rollup:可以在单个数据库操作中形成多个分组。例如:
select company_id,node_id,count(customer_id) from customer group by rollup(company_id,node_id);
cube:生成分组表中分组的所有组合。例如:
select company_id,node_id,count(customer_id) from customer group by cube(company_id,node_id);
over:移动函数可以帮助实现移动的数据分析。例如:
select date,avg(qty) over (order by date rows between 1 preceding and 1 following) as values from sale
merge:可以将一个表中的数据合并到另一个表中,在合并的同时可以根据条件进行插入,删除,更新等操作。例如:
- DB2 SQL自学笔记
- SQL自学笔记(1)
- db2 去重复sql----笔记
- DB2 SQL存储过程学习笔记
- DB2 SQL存储过程学习笔记
- DB2 sql
- db2 SQL
- DB2 SQL
- db2 sql
- db2 SQL
- 自学笔记
- db2笔记
- db2笔记
- db2笔记
- 自学--数据库笔记--第七篇--SQL sever2008更新数据
- Spring-boot自学笔记(1) sql-map-config.xml
- 提高DB2数据库SQL存储过程性能学习笔记
- 转载:提高DB2数据库SQL存储过程性能学习笔记
- 中国计算50年
- c字符串结尾多种操作方式
- 相隔日期有多少天多少时
- CStdioFile类
- hibernate初始化
- DB2 SQL自学笔记
- 自己电脑做服务器续,用默认端口,自动跳转到默认项目 【直接用域名访问我们本机的项目】
- poj 1742 Coins (背包)
- 视频快搜新片热剧,百度手机浏览器上都有啊
- Debug Assertion Failed! File:afxwin1.inl Line:22
- mybatis 对oracle和mysql 批量插入操作
- re模糊查询
- 网络流量计费程序(4)
- dofile, loadfile, loadstring, require, module