DB2数据库SQL语法参考手册

合集下载

[其他语言学习]DB2关联时资料库查询语句基本语法

[其他语言学习]DB2关联时资料库查询语句基本语法

DB2关联时资料库查询语句基本语法DB2 提供了关连式资料库的查询语言SQL(StrUCtured Query Language),是一种非常口语化、既易学又易懂的语法。

此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的操作,包含了资料的定义(DDL)以及资料的处理(DML)。

SQL原来拼成SEQUEL,这语言的原型以“系统R“的名字在IBM 圣荷西实验室完成,经过IBM内部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统R 的技术基础发展出来IBM 的产品。

而且美国国家标准学会(ANSI)及国际标准化组织(ISO)在1987遵循一个几乎是以IBM SQL 为基础的标准关连式资料语言定义。

一、资料定义DDL(Data Definition Language)资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。

1、建表格:CREA TE TABLE table_name(column1 DA TA TYPE [NOT NULL] [NOT NULL PRIMARY KEY],column2 DA TA TYPE [NOT NULL],...)说明:DA TA TYPE --是资料的格式,详见表。

NUT NULL --可不可以允许资料有空的(尚未有资料填入)。

PRIMARY KEY --是本表的主键。

2、更改表格ALTER TABLE table_nameADD COLUMN column_name DA TA TYPE说明:增加一个栏位(没有删除某个栏位的语法。

ALTER TABLE table_nameADD PRIMARY KEY (column_name)说明:更改表得的定义把某个栏位设为主键。

ALTER TABLE table_nameDROP PRIMARY KEY (column_name)说明:把主键的定义删除。

db2 sql 教程

db2 sql 教程
[color=blue:b36c9124a3]注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。[/color:b36c9124a3]添加主键:
Alter table tabname add primary key(col)
删除主键:
Alter table tabname drop primary key(col)
删除表:drop table tabname
3、表空间:
创建表空间:create tablespace tbsname pagesize 4k managed by database using (file ‘file’ size)
语法格式:
Rollback [work]
高级sql简单介绍
一、查询间使用运算词
A: UNION 运算符
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
删除表空间:drop tablespace tbsname
4、索引:
创建索引:create [unique] index idxname on tabname(col….)
删除索引:drop index idxname
[color=blue:b36c9124a3]注:索引是不可更改的,想更改必须删除重新建。[/color:b36c9124a3]
表空间加入容器:alter tablespace tablespace_name add(file 'filename' size)

db2语法

db2语法
3. 用 list history dropped table all for 数据库名 得到删除表的tableid(例如 0000000000006d0000020003)和表结构的生成语句(DDL),记录tableid和该语句以便恢复。之后,用drop命令删除的表中的数据可以在前滚恢复时导出。
TABLENAME指待清理table的名称;
modified by delprioritychar防止数据库记录中存在换行符,导致数据无法装入的情况;
replace into对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容;
nonrecoverable无日志方式装入;
replace existing redirect parallelism 16;
set tablespace containers for 1 using (path '/tstdb2/db2tmp');
set tablespace containers for 2 using
(device '/dev/rtstcontlv00' 2621440, device '/dev/rtstcontlv01' 2621440,
-x 不打印列标题 OFF
-z 将所有输出保存到输出文件 OFF
这些选项的具体功能及其缺省设置为:
.a 显示 SQLCA 的数据,缺省为 OFF。
.c 是否自动落实 SQL 命令,缺省为 ON。
.e {c|s} 显示 SQLCODE 或 SQLSTATE,缺省为 OFF。
.f 文件名将命令的输入从标准输入指定到某一文件,缺省为 OFF。
如何备份数据库

db2日常运维常用CLP命令和SQL语句

db2日常运维常用CLP命令和SQL语句

====‎=====‎=====‎=====‎=====‎=====‎=====‎=====‎=====‎=====‎=====‎=====‎==== =‎=====‎=====‎=====‎=====‎====‎=====‎=====‎=====‎=====‎=====‎=====‎====系‎统命令==‎=====‎=====‎=====‎=====‎=====‎=====‎=====‎=====‎====‎=====‎=====‎=====‎=====‎=====‎=====‎=====‎=====‎=====‎=====‎=====‎=====‎= ====‎=====‎=====‎=====‎=====‎也就是直‎接在db2‎环境变量下‎直接敲就可‎以的,这些‎命令都可以‎再产品目录‎下找到‎●db2l‎e vel ‎查看数据库‎版本●d‎b2ili‎s t 查看‎实例●‎d b2ic‎r t -a‎SERV‎E R -s‎ese ‎-p db‎2c_bn‎d8ins‎t -u‎bnd8‎f enc ‎b nd8i‎n st 创‎建实例●‎d b2id‎r op x‎x inst‎删除实例‎●db2‎s tart‎启动‎数据库实例‎(数据库跟‎随实例启动‎,不能单独‎关闭和启动‎数据库)‎●db2s‎t op ‎关闭数据‎库实例●‎d b2st‎o p fo‎r ce 强‎制停止●‎d b2ia‎u to -‎o n te‎s tins‎t系统启动‎实例自动启‎动●db‎2iaut‎o -of‎f tes‎t inst‎系统启动‎实例不自动‎启动●d‎b2sam‎p l 创建‎例库●d‎b2tbs‎t十六进‎制状态码‎可以显示表‎空间状态‎●db2m‎o ve d‎b name‎expo‎r t 备份‎数据●d‎b2mov‎e dbn‎a me i‎m port‎恢复数据‎●db2c‎k bkp ‎-h BT‎A DB.0‎.btai‎n st.N‎O DE00‎00.CA‎T N000‎0.201‎20206‎13272‎0.001‎查看数据‎库备份。

db2sql语法

db2sql语法

db2sql语法===========db2是一种常用的关系型数据库管理系统,它的SQL语法与许多其他SQL数据库系统非常相似,但也具有一些独特的功能和语法特性。

在本文中,我们将介绍db2的基本SQL语法。

一、数据查询------### 1. SELECT语句db2中的SELECT语句用于从数据库中选择数据。

基本的语法如下:```sqlSELECT column_name(s) FROM table_name;```其中,`column_name`是你要选择的列名,`table_name`是你要从中选择数据的表名。

你可以使用多个列名来选择多个列。

如果你想选择所有的列,可以使用星号(*)。

### 2. WHERE子句WHERE子句用于筛选结果集。

它允许你在查询时基于特定条件过滤数据。

基本语法如下:```sqlSELECT column_name(s) FROM table_name WHERE condition;```其中,`condition`是一个逻辑表达式,用于指定你要过滤的条件。

你可以使用各种比较运算符(如=、<、>、<=>等)和逻辑运算符(如AND、OR、NOT等)来构建条件表达式。

### 3. GROUP BY子句GROUP BY子句用于将结果集按照指定的列进行分组。

基本语法如下:```sqlSELECT column_name(s), aggregate_function(column_name(s)) FROM table_name GROUP BY column_name(s);```其中,`aggregate_function`是聚合函数,如SUM、COUNT、AVG 等。

GROUP BY子句允许你按照指定的列对数据进行分组,并使用聚合函数对每个组进行计算。

### 4. HAVING子句HAVING子句用于在GROUP BY查询中过滤分组结果。

它是在GROUP BY子句之后使用的,并且可以对聚合函数的结果进行条件筛选。

DB2常用SQL

DB2常用SQL

@db2 select * from %2 fetch first 20 rows only
2.查看已存在的存储过程和用户自定义函数(UDF)的定义,将结果存入文件并自动打开结果文件。
可以从syscat.routines表中做简单查询实现脚本viewrtn.cmd。
@db2 SELECT text FROM SYSCAT.ROUTINES WHERE ROUTINENAME=upper('%1') > %1.sql
@echo off
db2 "SELECT [url=mailto:]'@db2 rebind package '|| RTRIM(r.routineschema) || '.' || 'P'||SUBSTR(CHAR(r.lib_id+10000000),2)||' resolve any' FROM SYSCAT.routines r WHERE r.routinetype = 'P' AND ((r.origin = 'Q' AND r.valid != 'Y') OR EXISTS (SELECT 1 FROM syscat.packages WHERE pkgschema = r.routineschema AND pkgname = 'P'||SUBSTR(CHAR(r.lib_id+10000000),2) AND valid !='Y') )" >rebindsp.bat
@start %1.sql
3.查看所有无效的存储过程并生成绑定语句

db2数据库 sql常用命令

db2数据库 sql常用命令

DB2数据库 SQL常用命令一、连接数据库1. 从命令行连接数据库- 语法: db2 connect to <database_name> user <username> using <password>- 示例: db2 connect to sample user db2inst1 using passw0rd2. 从命令行断开数据库连接- 语法: db2 connect reset- 示例: db2 connect reset3. 显示当前连接的数据库- 语法: db2 list database directory- 示例: db2 list database directory二、管理数据库对象4. 创建数据库- 语法: db2 create database <database_name>- 示例: db2 create database sample5. 删除数据库- 语法: db2 drop database <database_name>- 示例: db2 drop database sample6. 创建表- 语法: db2 create table <table_name> (<column1_name> <data_type>, <column2_name> <data_type>, ...)- 示例: db2 create table employee (id int, name varchar(50), age int)7. 删除表- 语法: db2 drop table <table_name>- 示例: db2 drop table employee8. 插入数据- 语法: db2 insert into <table_name> values (<value1>,<value2>, ...)- 示例: db2 insert into employee values (1, 'John', 25)9. 删除数据- 语法: db2 delete from <table_name> where <condition> - 示例: db2 delete from employee where id = 110. 更新数据- 语法: db2 update <table_name> set <column_name> =<new_value> where <condition>- 示例: db2 update employee set age = 30 where id = 111. 查询数据- 语法: db2 select <column1_name>, <column2_name>, ... from <table_name> where <condition>- 示例: db2 select * from employee三、管理数据库事务12. 启动事务- 语法: db2 autmit off- 示例: db2 autmit off13. 提交事务- 语法: db2mit- 示例: db2mit14. 回滚事务- 语法: db2 rollback- 示例: db2 rollback四、管理数据库权限15. 创建用户- 语法: db2 create user <username> password <password> - 示例: db2 create user testuser password testpass16. 授权- 语法: db2 grant <privilege> on <object> to <user>- 示例: db2 grant select, insert, update on employee to testuser17. 撤销授权- 语法: db2 revoke <privilege> on <object> from <user> - 示例: db2 revoke select, insert, update on employee from testuser五、管理数据库性能18. 优化SQL查询- 语法: db2expln -d <database_name> -t <sql_statement> - 示例: db2expln -d sample -t "select * from employee"19. 查看数据库锁- 语法: db2 list applications show det本人l- 示例: db2 list applications show det本人l20. 查看数据库表空间使用情况- 语法: db2pd -d <database_name> -tablespaces- 示例: db2pd -d sample -tablespaces六、其他常用命令21. 导出数据- 语法: db2 export to <file_name> of del select * from<table_name>- 示例: db2 export to employee.csv of del select * from employee22. 导入数据- 语法: db2 import from <file_name> of del insert into<table_name>- 示例: db2 import from employee.csv of del insert into employee23. 查看数据库配置参数- 语法: db2 get db cfg for <database_name>- 示例: db2 get db cfg for sample结语以上就是DB2数据库SQL常用命令的介绍,通过掌握这些命令,可以更方便地管理和使用DB2数据库。

DB2常用SQL语句集

DB2常用SQL语句集

DB2常用SQL语句集1、查看表结构:describe table tablenamedescribe select * from tablename2、列出系统数据库目录的内容:list database directory3、查看数据库配置文件的内容:get database configuration for DBNAME4、启动数据库:restart database DBNAME5、关闭表的日志alter table TBLNAME active not logged inially6、重命名表rename TBLNAME1 to TBLNAME27、取当前时间select current time stamp from sysibm.sysdummy18、创建别名create alias ALIASNAME for PRONAME(table、view、alias、nickname)9、查询前几条记录select * from TBLNAME fetch first N rows10、联接数据库db2 connect to DB user db2 using PWD11、绑定存储过程命令db2 bind BND.bnd12、整理优化表db2 reorgchk on table TBLNAMEdb2 reorg table TBLNAMEdb2 runstats on table TBNAME with distribution and indexes all13、导出表db2 export to TBL.txt of del select * from TBLNAMEdb2 export to TBL.ixf of ixf select * from TBLNAME以指定分隔符‘|’下载数据:db2 "export to cmmcode.txt of del modified by coldel| select * from cmmcode”14、导入表db2 import from TBL.txt of del insert into TBLNAMEdb2 import from TBL.txt of del commitcount 5000 insert into TBLNAMEdb2 import from TBL.ixf of ixf commitcount 5000 insert into TBLNAMEdb2 import from TBL.ixf of ixf commitcount 5000 insert_update into TBLNAMEdb2 import from TBL.ixf of ixf commitcount 5000 replace into TBLNAMEdb2 import from TBL.ixf of ixf commitcount 5000 create into TBLNAME (仅IXF)db2 import from TBL.ixf of ixf commitcount 5000 replace_create into TBLNAME (仅IXF)以指定分隔符“|”加载:db2 "import from btpoper.txt of del modified by coldel| insert into btpoper"15、显示当前用户所有表命令db2 “list tables”16、查看锁情况命令:db2 get snapshot for locks on DBNAMElist applications for db DBNAME show detail17、打开锁的监视开关命令db2 update monisor switches using lock on18、游标的使用:declare cursorN cursor with hold for select CHAR from TBNAME for update;for update不能和GROUP BY、 DISTINCT、 ORDER BY、 FOR READ ONLY及UNION, EXCEPT, or INTERSECT(但 UNION ALL除外)一起使用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DB2数据库SQL语法参考手册DB2提供了关连式资料库的查询语言SQL (Structured Query Language),是一种非常口语化、既易学又易懂的语法。

此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的操作,包含了资料的定义(DDL)以及资料的处理(DML)。

SQL原来拼成SEQUEL,这语言的原型以"系统R"的名字在IBM 圣荷西实验室完成,经过IBM内部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统R 的技术基础发展出来IBM 的产品。

而且美国国家标准学会(ANSI)及国际标准化组织(ISO)在1987遵循一个几乎是以IBM SQL 为基础的标准关连式资料语言定义。

一、资料定义DDL(Data Definition Language)资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。

1.建表格:CREATE TABLE table_name(column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY],column2 DATATYPE [NOT NULL],...)说明:DATATYPE是资料的格式,详见表。

NUT NULL可不可以允许资料有空的(尚未有资料填入)。

PRIMARY KEY是本表的主键。

2.更改表格ALTER TABLE table_nameADD COLUMN column_name DATATYPE说明:增加一个栏位(没有删除某个栏位的语法。

ALTER TABLE table_nameADD PRIMARY KEY (column_name)说明:更改表得的定义把某个栏位设为主键。

ALTER TABLE table_nameDROP PRIMARY KEY (column_name)说明:把主键的定义删除。

3.建立索引CREATE INDEX index_name ON table_name (column_name)说明:对某个表格的栏位建立索引以增加查询时的速度。

4.删除DROP table_nameDROP index_name二、的资料形态DATATYPEssmallint16 位元的整数。

interger32 位元的整数。

decimal(p,s)p 精确值和s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数点後有几位数。

如果没有特别指定,则系统会设为p=5; s=0 。

float32位元的实数。

double64位元的实数。

char(n)n 长度的字串,n不能超过254。

varchar(n)长度不固定且其最大长度为n 的字串,n不能超过4000。

graphic(n)和char(n) 一样,不过其单位是两个字元double-bytes,n不能超过127。

这个形态是为了支援两个字元长度的字体,例如中文字。

vargraphic(n)可变长度且其最大长度为n 的双字元字串,n不能超过2000。

date 包含了年份、月份、日期。

time包含了小时、分钟、秒。

timestamp包含了年、月、日、时、分、秒、千分之一秒。

三、资料操作DML (Data Manipulation Language)资料定义好之後接下来的就是资料的操作。

资料的操作不外乎增加资料(insert)、查询资料(query)、更改资料(update) 、删除资料(delete)四种模式,以下分别介绍他们的语法:1.增加资料:INSERT INTO table_name (column1,column2,...)valueS ( value1,value2, ...)说明:(1)若没有指定column 系统则会按表格内的栏位顺序填入资料。

(2)栏位的资料形态和所填入的资料必须吻合。

(3)table_name 也可以是景观view_name。

INSERT INTO table_name (column1,column2,...)SELECT columnx,columny,... FROM another_table说明:也可以经过一个子查询(subquery)把别的表格的资料填入。

2.查询资料:基本查询SELECT column1,columns2,...FROM table_name说明:把table_name 的特定栏位资料全部列出来SELECT *FROM table_nameWHERE column1 = *** [AND column2 > yyy] [OR column3 <> zzz]说明:(1)'*'表示全部的栏位都列出来。

(2)WHERE 之後是接条件式,把符合条件的资料列出来。

SELECT column1,column2FROM table_nameORDER BY column2 [DESC]说明:ORDER BY 是指定以某个栏位做排序,[DESC]是指从大到小排列,若没有指明,则是从小到大排列,组合,查询组合查询是指所查询得资料来源并不只有单一的表格,而是联合一个以上的表格才能够得到结果的。

SELECT *FROM table1,table2WHERE table1.colum1=table2.column1说明:(1)查询两个表格中其中column1 值相同的资料。

(2)当然两个表格相互比较的栏位,其资料形态必须相同。

(3)一个复杂的查询其动用到的表格可能会很多个。

整合性的查询:SELECT COUNT (*) FROM table_nameWHERE column_name = xxx说明:查询符合条件的资料共有几笔。

SELECT SUM(column1)FROM table_name说明:(1)计算出总和,所选的栏位必须是可数的数字形态。

(2)除此以外还有AVG() 是计算平均、MAX()、MIN()计算最大最小值的整合性查询。

SELECT column1,AVG(column2)FROM table_nameGROUP BY column1HAVING AVG(column2) > xxx说明:(1)GROUP BY: 以column1 为一组计算column2 的平均值必须和AVG、SUM等整合性查询的关键字一起使用。

(2)HAVING : 必须和GROUP BY 一起使用作为整合性的限制。

复合性的查询SELECT *FROM table_name1WHERE EXISTS (SELECT *FROM table_name2WHERE conditions )说明:(1)WHERE 的conditions 可以是另外一个的query。

(2)EXISTS 在此是指存在与否。

SELECT *FROM table_name1WHERE column1 IN (SELECT column1 FROM table_name2WHERE conditions )说明:(1)IN 後面接的是一个集合,表示column1 存在集合里面。

(2)SELECT 出来的资料形态必须符合column1。

其他查询SELECT *FROM table_name1WHERE column1 LIKE 'x%'说明:LIKE 必须和後面的'x%' 相呼应表示以x为开头的字串。

SELECT *FROM table_name1WHERE column1 IN ('xxx','yyy',..)说明:IN 後面接的是一个集合,表示column1 存在集合里面。

SELECT *FROM table_name1WHERE column1 BETWEEN xx AND yy说明:BETWEEN 表示column1 的值介於xx 和yy 之间。

3.更改资料:UPDATE table_nameSET column1='xxx'WHERE conditoins说明:(1)更改某个栏位设定其值为'xxx'。

(2)conditions 是所要符合的条件、若没有WHERE 则整个table 的那个栏位都会全部被更改。

4.删除资料:DELETE FROM table_nameWHERE conditions说明:删除符合条件的资料。

说明:关于WHERE条件后面如果包含有日期的比较,不同数据库有不同的表达式。

具体如下:(1)如果是ACCESS数据库,则为:WHERE mydate>#2000-01-01#(2)如果是ORACLE数据库,则为:WHERE mydate>cast('2000-01-01' as date)WHERE mydate>to_date('2000-01-01','yyyy-mm-dd')在Delphi中写成:thedate='2000-01-01';query1.SQL.add('select * from abc wheremydate>cast('+''''+thedate+''''+' as date)');如果比较日期时间型,则为:WHERE mydatetime>to_date('2000-01-01 10:00:01','yyyy-mm-dd hh24:mi:ss')DB2基础: 编码DB2 SQL以获得最佳性能简介当要保证用IBM DB2® Universal Database™(DB2 UDB)和Borland® 工具(如Delphi™、C++Builder™ 或Kylix™)构建的企业应用程序拥有最优性能时,程序员可以利用DB2 优化器的能力来处理即使是“难以处理的”SQL 语句并给出有效的存取路径。

尽管如此,拙劣编码的SQL 和应用程序代码仍可能给您带来性能问题,通过学习几条基本准则可以轻易地避免这些问题。

我将向您演示DB2 优化器的工作方式,并提供编写能发挥优化器最大效率的SQL 的准则。

但即使拥有了DB2 的优化能力,编写有效的SQL 语句仍可能是一件复杂的事情。

如果程序员和开发人员还不熟悉关系数据库环境,这件事就尤其显得棘手。

因此,在我们深入研究编码SQL 以获得最佳性能的细节之前,先花一些时间来回顾SQL 基础知识。

相关文档
最新文档