db2数据库sql基础I
db2常用sql语句
授权
grant dbadm on database to user bb
24.
列出所有的系统表
list tables for system
25.
查看表结构
db2 describe select * from user.tables
27.
导出单个表结构到一个文件
db2look -d masa -e -u MASAMK -a -t PSC_MODE_SCORE_200503 -o aa.out
CONFIG PARTITIONING_DBPARTNUMS(0,1,2,3)
装载语句:(消息文件)
load client FROM /export/masaetl/work/data/org_data/cond.avl \
of DEL MODIFIED BY COLDEL0x09 MESSAGES /export/masaetl/111 \
db2 force application ID1,ID2,,,Idn MODE ASYNC
(db2 list application for db o_yd show detail)
16.
备份数据库
db2 force application all
db2 backup db o_yd to d:
10.
连接数据库
db2 connect to o_yd user db2 using pwd
11.
读数据库管理程序配置
db2 get dbm cfg
12.
写数据库管理程序配置
db2 update dbm cfg using 参数名 参数值
db2常用SQL语句详解
常用SQL语句详解到今天为止,人们对关系数据库做了大量的研究,并开发出关系数据语言,为操作关系数据库提供了方便的用户接口。
关系数据语言目前有几十种,具有增加、删除、修改、查询、数据定义与控制等完整的数据库操作功能。
通常把它们分为两类:关系代数类和关系演算类。
在这些语言中,结构化查询语言SQL以其强大的数据库操作功能、口语化、易学易用等特点,受到广泛的应用,成为数据库应用程序开发的一柄利剑。
在数据库应用程序开发过程中,巧妙地使用SQL语句,可以简化编程,起到事半功倍的效果,本书中有些实例也大量使用了SQL语句。
它由两部分组成,数据定义语言(DDL)和数据操作语言(DML)。
(1) 数据定义语言(DDL)数据定义语言用来定义数据库的各级模式。
常用关键字有:Create(建立数据表)、Alter(更改数据表)、Drop(删除数据表)。
建立数据表CREATE TABLE table_name(column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY],column2 DATATYPE [NOT NULL],...)说明:上面的DATATYPE 指的是字段的类型,NUT NULL 指是否为空,PRIMARY KEY 指本表的主键。
建立索引CREATE INDEX index_name ON table_name (column_name)说明:为数据表格的某个字段建立索引以增加查询时的速度。
更改数据表ALTER TABLE table_name ADD COLUMN column_name DATATYPE说明:增加一个字段。
ALTER TABLE table_name ADD PRIMARY KEY (column_name)说明:将某个字段设为主键。
ALTER TABLE table_name DROP PRIMARY KEY (column_name)说明:将某个字段的主键定义取消。
db2 sql 教程
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的sql标准
db2的sql标准
SQL(Structured Query Language)是一种用于管理关系型数据库的标准查询语言。
在关系型数据库管理系统(RDBMS)中,DB2是一种广泛使用的系统,也支持SQL标准。
SQL标准包括语法和语义两个方面。
DB2作为一个关系型数据库,遵循SQL 标准,并在此基础上提供了一些特定的扩展功能。
首先,DB2支持SQL标准的数据定义语言(DDL),用于创建、修改和删除数据库对象。
通过使用CREATE、ALTER和DROP语句,可以创建表、索引、视图等对象,并进行相应的修改和删除操作。
其次,DB2实现了SQL标准的数据操纵语言(DML),用于查询、插入、更新和删除数据。
使用SELECT语句可以从一个或多个表中检索数据,还可以使用WHERE子句进行条件过滤。
INSERT语句用于向表中插入新行,UPDATE语句用于更新表中的数据,DELETE语句用于删除表中的数据。
此外,DB2还支持SQL标准的数据控制语言(DCL),用于授权和撤销用户对数据库对象的访问权限。
使用GRANT语句可以向用户或角色授权特定的权限,使用REVOKE语句可以撤销已经授权的权限。
总的来说,DB2严格遵循SQL标准,并提供了一些扩展功能,使用户能够更灵活地管理和操作数据库。
通过学习和了解SQL标准,可以更好地使用DB2进行开发和管理工作。
DB2基础知识(一)
内部资料 注意保密
12
二、DB2的访问
节点目录、系统数据库目录和本地数据库目录间关系
内部资料 注意保密
13
二、DB2的访问
2.1 DB2的登录
通过本地客户端链接DB2服务器
内部资料 注意保密
14
二、DB2的访问
2.2 SQL语句的执行
内部资料 注意保密
15
二、DB2的访问
2.3 SQLSTATE & SQLCODE
说明
– – –
不能修改视图 视图不能创建索引 如果删除了某视图基于的表或另一视图,则该视图在数据库虽然有定义但不起作用
内部资料 注意保密
35
三、DB2数据库对象
视图
创建可更新视图和只读视图
• • •
视图的 SELECT 语句决定视图是只读的还是可更新的 通常,如果视图的行可映射至基表的行,则视图是可更新的。
显式地指定对象的模式名: create table DWAINE.table1 (c1 int, c2 int) 隐式地指定对象的模式名: create table t2 (c1 int) --- table tjadm.t2 created 注:隐式地指定对象的模式名,用户 需要IMPLICT_SCHEMA 特权
内部资料 注意保密
11
二、DB2的访问
2.1 DB2的登录
通过本地客户端链接DB2服务器
安装本地DB2客户端程序 配置本地Catalog(编目)
Db2cmd->db2 connect to bidbdw user scvadm
catalog tcpip node mynode remote 99.1.57.103 server 50000; catalog db bidbdw at node mynode;
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-培训内容
2024/9/22
8
DB2 旳总体构造
2024/9/22
9
DB2 旳总体构造
DB2 Environment
DB2 Instance
DB2 DataBase
DB2 DataBase
DB2 Instance
DB2 DataBase
DB2 Environment (db2set)
DB2 Instance (db2i…)
DB2 培训内容纲要
DB2简介
DB2 产品简介 DB2 旳总体构造 DB2 连接
DB2 SQL
数据库对象操作(DDL+) 数据操作(DML) 高级SQL
DB2 管理
数据存储 系统维护 监控和优化
附录
2024/9/22
1
DB2 产品简介
2024/9/22
2
DB2 产品简介
2024/9/22
2024/9/22
19
DB2 SQL
RETRIEVING DATA(查询)
Retrieving the Entire Table Projecting Columns from a Table Changing the Order of the Columns Restricting Rows from a Table Limiting Result Table Size Selecting Columns from Multiple Tables Using Correlation Names DB2 Functions(Row、Column) Subquery(子查询)
DB2 DataBase(db)
2024/9/22
10
DB2 连接
2024/9/22
DB2基础知识
BSDS
系统下包含了一整套系统文件、一套
系统数据库和用户定义的多个
系统 数据库
应用 数据库
应用数据库
■ DB2 Object
CATALOG
DB2 SUBSYSTEM
DIRECTORY OTHER SYSTEM OBJECTS
DATABASE 1
TABLE SPACES1
DATABASE2.etc.
■分区表空间
某个分区可以STOP,不影响其它分区
上例中,STOP 0300—0399:天津地区 有交易查询: WHERE ZONENO=200 因没有涉及到0300-0399分区,查询交易仍然可以成功
■ PARTITION表划分原则
数据量过大的表(超过2G) 并行批量程序涉及的表
■顺序预取 SEQUENTIAL PREFETCH
用于读取连续的页 既可用于在TABLE SPACE SCAN中访问连续的数 据页,也可用于在INDEX SCAN中访问连续的数 据页和索引页 页 页 页 页
页 页 页 页 页 页 页 页 页 页 页 页 页
单个I/O
单个I/O
页
页
页
页
页
页
页
页
TABLE SPACES2
STORAGE GROUP1 VOLUME1 VOLUME2
TABLE1
INDEX1 VIEW1
TABLE2. etc.
INDEX2.etc. VIEW2 VIEW3.etc STORAGE GROUP2 VOLUME3
■ DB2 Objects 概述
■ PARTITION TABLESPACE 的缺点
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学习总结(1)——DB2数据库基础入门
DB2学习总结(1)——DB2数据库基础⼊门DB2的特性完全Web使能的:可以利⽤HTTP来发送询问给服务器。
⾼度可缩放和可靠:⾼负荷时可利⽤多处理器和⼤内存,可以跨服务器地分布数据库和数据负荷;能够以最⼩的数据丢失快速地恢复,提供多种备份策略。
DB2数据库启停启动数据库:db2start停⽌数据库:db2stop检查存在的数据库LIST DATABASE DIRECTORY数据库连接、断开CONNECT TO databasenameCONNECT RESET创建、删除数据库CREATE DB databasename注:如果已经连着⼀个数据库的话,就创建不了数据库,会报“应⽤程序已经与⼀个数据库相连”的错DROP DB databasename第⼆节表数据类型可分为数值型(numeric)、字符串型(character string)、图形字符串(graphic string)、⼆进制字符串型(binary string)或⽇期时间型(datetime)。
还有⼀种叫做DATALINK的特殊数据类型。
DATALINK值包含了对存储在数据库以外的⽂件的逻辑引⽤。
数值型数据类型包括:⼩整型,SMALLINT:两字节整数,精度为5位。
范围从-32,768到32,767。
⼤整型,INTEGER或INT:四字节整数,精度为10位。
范围从-2,147,483,648到2,147,483,647。
巨整型,BIGINT:⼋字节整数,精度为19位。
范围从-9,223,372,036,854,775,808到9,223,372,036,854,775,807。
⼩数型,DECIMAL(p,s)、DEC(p,s)、NUMBERIC(p,s)或NUM(p,s):⼩数型的值是⼀种压缩⼗进制数,它有⼀个隐含的⼩数点。
压缩⼗进制数将以⼆-⼗进制编码(binary-coded decimal,BCD)记数法的变体来存储。
⼩数点的位置取决于数字的精度(p)和⼩数位(s)。
DB2基本知识
Compile and Linkedit
Load MODULE
When executing , system will check the Timestamp(Consistency Token) of Load MODULE and Plan which is made by Pre-compiler.
17 2010-11-17
Coding Aids
DSNTIAR/DANTIR
SQL错误返回代码解释例程,在应用程序中调 用该例程以获得系统标准的错误解释。 CALL DSNTIAR
DCLGEN
根据DB2中的Table定义将表的定义描述生成 到指定的数据集中。
Include statement
18 2010-11-17
OPEN the CURSOR
----
Execution
EXEC SQL OPEN K9 END-EXEC.
FETCH RESULT ROWS ONE AT A TIME
EXEC SQL FETCH K9 INTO :EMPNO,:NAME END-EXEC.
CLOSE CURSOR when finished
IMS Attach
2 2010-11-17
DB2 Object
CATALOG
DB2 SUBSYSTEM
DIRECTORY OTHER SYSTEM OBJECTS
DATABASE 1 TABLE SPACES1
DATABASE2.etc. TABLE SPACES2
STORAGE GROUP1 VOLUME1 VOLUME2
13 2010-11-17
Cursors
在查询数据库可能返回多条数据记录时, 使用“游标”(Cursors)来完成对记录 的处理。使用的语句包括: DECLARE -声明一个游标 OPEN -打开游标 FETCH -读取游标中的一条记录 CLOSE CURSOR -关闭游标
DB2基础知识(二)
内部资料 注意保密
12
二、DB2的数据类型 DB2的数据类型
2.1 数值型
类型
smallint
精度
5位, 2个字节 10位, 4个字节 19位, 8个字节 31位 Decimal(p,s)
取值范围
-32,768 到 32,767
int
-2,147,483,648 到 2,147,483,647
bigint
3.1 CREATE TABLE
Check约束 create table DWA_FAT.A80_GRPTRX ( STA_MON INT not null default 200901 constraint C_STA_MON check (STA_MON between 200901 and 200912), BRN_NBR CHAR(6) not null, BBK_NBR CHAR(3), not null 主键 GRP_NBR CHAR(2) not null, constraint "P_Key_1" primary key (STA_MON, BRN_NBR, GRP_NBR) ) 表空间 in HISDTA3_TBS index in HISIDX1_TBS distribute by 表注释及字 分区键 ( 段注释 BRN_NBR ); '随机销售团队月度业绩统计 随机销售团队月度业绩统计’; comment on table DWA_FAT.A80_GRPTRX is '随机销售团队月度业绩统计 ; '数据月份 数据月份'; comment on column DWA_FAT.A80_GRPTRX.STA_MON is '数据月份'; '交易归属分行 交易归属分行'; comment on column DWA_FAT.A80_GRPTRX.BBK_NBR is '交易归属分行'; '交易归属网点 交易归属网点'; comment on column DWA_FAT.A80_GRPTRX.BRN_NBR is '交易归属网点'; '团队编号 团队编号'; comment on column DWA_FAT.A80_GRPTRX.GRP_NBR is '团队编号';
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除外)一起使用。
DB2基础教程文档
DB2基础教程文档DB2是一个关系型数据库管理系统(RDBMS),用于存储、管理和操作数据。
它是由IBM开发的,被广泛应用于企业级应用程序和数据仓库。
本教程将介绍DB2的基本概念、常用命令和操作,帮助初学者快速入门并使用DB2进行开发和管理。
1.DB2简介-DB2的历史和发展-DB2的特点和优势-DB2的应用场景2.安装和配置DB2-配置DB2实例-创建和配置数据库3.数据库对象的管理-创建表和定义列-管理数据类型和约束-创建索引和视图-管理存储过程和触发器4.数据的插入、查询和更新-插入数据到表中-使用SELECT语句查询数据-更新和删除数据-使用JOIN操作关联表5.数据库事务和并发控制-事务的概念和特性-事务的隔离级别-并发控制的方法和技术6.数据库备份和恢复-备份和还原数据库-日志和事务恢复-数据库迁移和升级7.性能优化和查询调优-查询执行计划的分析-索引的设计和优化-查询性能调优的常用技巧8.高级功能和扩展-分布式数据库和数据复制-数据库安全和权限管理-数据库监控和性能调优工具9.常用的DB2命令和工具-DB2的命令行工具- 使用DB2 Control Center管理数据库- 使用IBM Data Studio进行开发和调试10.实际案例和练习-设计和创建一个简单的数据库-实现一个实际应用的数据模型-进行数据库调优和性能提升的练习总结:DB2是一款功能强大的关系型数据库管理系统,本教程详细介绍了DB2的基本概念、常用命令和操作,帮助初学者快速入门并能够实践开发和管理数据库。
希望通过学习本教程,读者能够掌握DB2的基本知识和技能,并在实际应用中获得更好的数据库性能和效果。
DB2常用sql命令
FROM SYSCAT.REFERENCES;产生生来自所有外键的SQL语句 SELECT
'ALTER TABLE '||tabschema||'.'|| SUBSTR(TABNAME,1,50)|| 'ADD CONSTRAINT ' || CONSTNAME|| 'FOREIGN KEY (' || substr(FK_COLNAMES,1,50) || ')'|| 'REFERENCES '||tabschema||'.' || SUBSTR(REFTABNAME,1,17)|| ' ON DELETE ' ||
DB2查询序列的三种方式 1. select nextval for seqName from dual 2. select next value for seqName from dual 3. select seqName.nextval from dual
end ||';' FROM SYSCAT.REFERENCES ; 产生删除所有表的SQL语句
select 'DROP TABLE '||rtrim(tabschema)||'.'||t.TABNAME||' ;' from syscat.TABLES t where tabschema like '%CMBBCD%' and t.TYPE='T'
DB2表数据导出、导入及常用sql使用总结
DB2表数据导出、导⼊及常⽤sql使⽤总结⼀.DB2数据的导出:export to[path(例:D:"TABLE1.ixf)]of ixf select[字段(例: * or col1,col2,col3)]from TABLE1;export to[path(例:D:"TABLE1.del)]of del select[字段(例: * or col1,col2,col3)]from TABLE1;在DB2中对表数据的导出,可以⽤export命令,导出数据为⼀个⽂本⽂件,例如:export to d:\table1.txt of del select id, name, age, address, note fromtesttable order by id;可以⽤import命令从⽂本⽂件导⼊数据到表⾥,如:⼆.DB2数据的导⼊:import from[path(例:D:"TABLE1.ixf)]of ixf insert into TABLE1;load from[path(例:D:"TABLE1.ixf)]of ixf insert into TABLE1;load from[path(例:D:"TABLE1.ixf)]of ixf replace into TABLE1; //装⼊数据前,先删除已存在记录load from[path(例:D:"TABLE1.ixf)]of ixf restart into TABLE1; //当装⼊失败时,重新执⾏,并记录导出结果和错误信息import from[path(例:D:"TABLE1.ixf)]of ixf savecount 1000 messages [path(例:D:"msg.txt)]insert into TABLE1;//其中,savecount表⽰完成每1000条操作,记录⼀次.存在⾃增长字段的数据导⼊:load from[path(例:D:"TABLE1.ixf)]of ixf modified by identityignore insert into TABLE1;//加⼊modified byidentityignore.解除装⼊数据时,发⽣的检查挂起:SET INTEGRITYFOR TABLE1 CHECK IMMEDIATE UNCHECKED;命令只对数据通过约束检查的表有效,如果执⾏还不能解除,有必要检查数据的完整性,是否不符合约束条件,并试图重新整理数据,再执⾏装⼊操作.另外,对load和import,字⾯上的区别是:装⼊和导⼊,但仍未理解两者之间的区别.只是性能上load显然优于import.(load 需要更多的权限)三.DB2常⽤操作命令实例:1、查找员⼯的编号、姓名、部门和出⽣⽇期,如果出⽣⽇期为空值,显⽰⽇期不详,并按部门排序输出,⽇期格式为yyyy-mm-dd。
数据库基本SQL语句大全
数据库基本_SQL语句大全学会数据库是很实用D~~记录一些常用的sql语句...有入门有提高有见都没见过的...好全...收藏下...其实一般用的就是查询,插入,删除等语句而已....但学学存储过程是好事...以后数据方面的东西就不用在程序里搞喽..而且程序与数据库只要一个来回通讯就可以搞定所有数据的操作....一、基础1、说明:创建数据库Create DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建备份数据的deviceUSE masterEXEC sp_addumpdevice ‘disk‘, ‘testBack‘, ‘c:\mssql7backup\‘--- 开始备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create table tabnamecol1 type1 not null primary key,col2 type2 not null,..根据已有的表创建新表:A:create table tab_new like tab_old 使用旧表创建新表B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表drop table tabname6、说明:增加一个列Alter table tabname add column col type注:列增加后将不能删除;DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度;7、说明:添加主键:Alter table tabname add primary keycol说明:删除主键:Alter table tabname drop primary keycol8、说明:创建索引:create unique index idxname on tabnamecol….删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建;9、说明:创建视图:create view viewname as select statement删除视图:drop view viewname10、说明:几个简单的基本的sql语句选择:select from table1 where 范围插入:insert into table1field1,field2 valuesvalue1,value2删除:delete from table1 where 范围更新:update table1 set field1=value1 where 范围查找:select from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料排序:select from table1 order by field1,field2 desc总数:select count as totalcount from table1求和:select sumfield1 as sumvalue from table1平均:select avgfield1 as avgvalue from table1最大:select maxfield1 as maxvalue from table1最小:select minfield1 as minvalue from table111、说明:几个高级查询运算词A:UNION 运算符UNION 运算符通过组合其他两个结果表例如TABLE1 和TABLE2并消去表中任何重复行而派生出一个结果表;当ALL 随UNION 一起使用时即UNION ALL,不消除重复行;两种情况下,派生表的每一行不是来自TABLE1 就是来自TABLE2;B:EXCEPT 运算符EXCEPT 运算符通过包括所有在TABLE1 中但不在TABLE2 中的行并消除所有重复行而派生出一个结果表;当ALL 随EXCEPT 一起使用时EXCEPT ALL,不消除重复行;C:INTERSECT 运算符INTERSECT 运算符通过只包括TABLE1 和TABLE2 中都有的行并消除所有重复行而派生出一个结果表;当ALL 随INTERSECT 一起使用时INTERSECT ALL,不消除重复行;注:使用运算词的几个查询结果行必须是一致的;12、说明:使用外连接A、left outer join:左外连接左连接:结果集几包括连接表的匹配行,也包括左连接表的所有行;SQL: select , , , , , from a LEFT OUT JOIN b ON =B:right outer join:右外连接右连接:结果集既包括连接表的匹配连接行,也包括右连接表的所有行;C:full outer join:全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录;二、提升1、说明:复制表只复制结构,源表名:a 新表名:b Access可用法一:select into b from a where 1<>1法二:select top 0 into b from a2、说明:拷贝表拷贝数据,源表名:a 目标表名:b Access可用insert into ba, b, c select d,e,f from b;3、说明:跨数据库之间表的拷贝具体数据使用绝对路径Access可用insert into ba, b, c select d,e,f from b in ‘具体数据库’ where 条件例子:..from b in ‘"&"."&"\" &"‘ where..4、说明:子查询表名1:a 表名2:bselect a,b,c from a where a IN select d from b 或者: select a,b,c from a where a IN 1,2,35、说明:显示文章、提交人和最后回复时间select ,, from table a,select maxadddate adddate from table where = b6、说明:外连接查询表名1:a 表名2:bselect , , , , , from a LEFT OUT JOIN b ON =7、说明:在线视图查询表名1:aselect from Select a,b,c FROM a T where > 1;8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括select from table1 where time between time1 and time2select a,b,c, from table1 where a not between 数值1 and 数值29、说明:in 的使用方法select from table1 where a not in ‘值1’,’值2’,’值4’,’值6’10、说明:两张关联表,删除主表中已经在副表中没有的信息delete from table1 where not exists select from table2 where =11、说明:四表联查问题:select from a left inner join b on = right inner join c on = inner join d on = where .....12、说明:日程安排提前五分钟提醒SQL: select from 日程安排where datediff‘minute‘,f开始时间,getdate>513、说明:一条sql 语句搞定数据库分页select top 10 b. from select top 20 主键字段,排序字段from 表名order by 排序字段desc a,表名b where b.主键字段= a.主键字段order by a.排序字段14、说明:前10条记录select top 10 form table1 where 范围15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.select a,b,c from tablename ta where a=select maxa from tablename tb where =16、说明:包括所有在TableA 中但不在TableB和TableC 中的行并消除所有重复行而派生出一个结果表select a from tableA except select a from tableB except select a from tableC 17、说明:随机取出10条数据select top 10 from tablename order by newid18、说明:随机选择记录select newid19、说明:删除重复记录Delete from tablename where id not in select maxid from tablename group by col1,col2,...20、说明:列出数据库里所有的表名select name from sysobjects where type=‘U‘21、说明:列出表里的所有的sele ct name from syscolumns where id=object_id‘TableName‘22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case;select type,sumcase vender when ‘A‘ then pcs else 0 end,sumcase vender when ‘C‘ then pcs else 0 end,sumcase vender when ‘B‘ then pcs else 0 end FROM tablename group by type显示结果:type vender pcs电脑A 1电脑A 1光盘B 2光盘A 2手机B 3手机C 323、说明:初始化表table1TRUNCATE TABLE table124、说明:选择从10到15的记录select top 5 from select top 15 from table order by id asc table_别名order by id desc三、技巧1、1=1,1=2的使用,在SQL语句组合时用的较多“where 1=1” 是表示选择全部“where 1=2”全部不选,如:if strWhere =‘beginset strSQL = ‘select count as Total from ‘ + tblName + ‘ where ‘ + strWhere endelsebeginset strSQL = ‘select count as Total from ‘ + tblName + ‘‘end我们可以直接写成set strSQ L = ‘select count as Total from ‘ + tblName + ‘ where 1=1 安定‘+ strWhere2、收缩数据库--重建索引DBCC REINDEXDBCC INDEXDEFRAG--收缩数据和日志DBCC SHRINKDBDBCC SHRINKFILE3、压缩数据库dbcc shrinkdatabasedbname4、转移数据库给新用户以已存在用户权限exec sp_change_users_login ‘update_one‘,‘newname‘,‘oldname‘go5、检查备份集RESTORE VERIFYONLY from disk=‘E:\‘6、修复数据库Alter DATABASE dvbbs SET SINGLE_USERGODBCC CHECKDB‘dvbbs‘,repair_allow_data_loss WITH TABLOCKGOAlter DATABASE dvbbs SET MULTI_USERGO7、日志清除SET NOCOUNT ONDECLARE LogicalFileName sysname,MaxMinutes INT,NewSize INTUSE tablename -- 要操作的数据库名Select LogicalFileName = ‘tablename_log‘, -- 日志文件名MaxMinutes = 10, -- Limit on time allowed to wrap log.NewSize = 1 -- 你想设定的日志文件的大小M-- Setup / initializeDECLARE OriginalSize intSelect OriginalSize = sizeFROM sysfilesWhere name = LogicalFileNameSelect ‘Original Size of ‘ + db_name + ‘ LOG is ‘ + CONVERTVARCHAR30,OriginalSize + ‘ 8K pages or ‘ + CONVERTVARCHAR30,OriginalSize8/1024 + ‘MB‘FROM sysfilesWhere name = LogicalFileNameCreate TABLE DummyTransDummyColumn char 8000 not nullDECLARE Counter INT,StartTime DATETIME,TruncLog VARCHAR255Select StartTime = GETDATE,TruncLog = ‘BACKUP LOG ‘ + db_name + ‘ WITH TRUNCATE_ONLY‘DBCC SHRINKFILE LogicalFileName, NewSizeEXEC TruncLog-- Wrap the log if necessary.WHILE MaxMinutes > DATEDIFF mi, StartTime, GETDATE -- time has not expiredAND OriginalSize = Select size FROM sysfiles Where name = LogicalFileNameAND OriginalSize 8 /1024 > NewSizeBEGIN -- Outer loop.Select Counter = 0WHILE Counter < OriginalSize / 16 AND Counter < 50000 BEGIN -- updateInsert DummyTrans VALUES ‘Fill Log‘Delete DummyTransSelect Counter = Counter + 1ENDEXEC TruncLogENDSelect ‘Final Size of ‘ + db_name + ‘ LOG is ‘ + CONVERTVARCHAR30,size + ‘ 8K pages or ‘ + CONVERTVARCHAR30,size8/1024 + ‘MB‘FROM sysfilesWhere name = LogicalFileNameDrop TABLE DummyTransSET NOCOUNT OFF8、说明:更改某个表exec sp_changeobjectowner ‘tablename‘,‘dbo‘9、存储更改全部表Create PROCEDUREOldOwner as NVARCHAR128,NewOwner as NVARCHAR128ASDECLARE Name as NVARCHAR128DECLARE Owner as NVARCHAR128DECLARE OwnerName as NVARCHAR128 DECLARE curObject CURSOR FORselect ‘Name‘ = name,‘Owner‘ = user_nameuidfrom sysobjectswhere user_nameuid=OldOwnerorder by nameOPEN curObjectFETCH NEXT FROM curObject INTO Name, Owner WHILEFETCH_STATUS=0BEGINif Owner=OldOwnerbeginset OwnerName = OldOwner + ‘.‘ + rtrimNameexec sp_changeobjectowner OwnerName, NewOwnerend-- select name,NewOwner,OldOwnerFETCH NEXT FROM curObject INTO Name, Owner ENDclose curObjectdeallocate curObjectGO10、SQL SERVER中直接循环写入数据declare i intset i=1while i<30begininsert into test userid valuesiset i=i+1end。
《DB2参考资料》第01章 DB2入门
§1.5 DB2管理服务器(DAS)
monitor :监听、监视、监控
§1.6 DB2工具
§1.6 DB2工具
第一步
创建和使用样本数据库
命令中心
执行DB2命令,编写脚本
命令行处理器
命令窗口
控制中心
集中管理数据库及数据库对象
任务中心
日志中心
配置助手
连接远程DB2服务器
健康中心
数据库监视
第一步 “第一步”为用户介绍了可以使用DB2数据库系统来执 行的一些主要数据库功能。
个人版(DB2 Personal Edition) · 个人单机使用,提供功能完整的数据库 · 提供了数据库存储设施并能够连接到远程DB2服务器,但不能响
应 远程请求
EveryPlace · 专为移动办公用户设计的微型数据库系统 · 用于PDA,HPC和嵌入式设备
1.3 DB2的安装
启动安装过程后,进入安装产品界面。单击界面左边的【安装产品】 选项后,再单击界面右边的【安装新产品】按钮,启动安装向导界面。
§1.6 GUI和CLP - 控制中心
·Add / Delete DB2 System ·Configure Instance and Database ·Manage Database Objects ·Manage Database Data ·Perform Database Backup and Restore ·Manage Database Connection ·Manage Database Replication ·……
命D命b令2令=行>处行! C理o器m处m(anC理domm器and(LineCProoc执mess行mor系a,统nCL命dP)令L允i许n用e户输P入r和o执c行eSsQsL命o令r、,XQCueLry命P令)、D允B2命许令和用操作户系统命令。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-9-
选择合适的数据类型: 选择合适的数据类型:
(1)int和char的选择:如果该字段存储的只是包含整形数字形式的代 int和char的选择: 的选择 码或者数字,建议使用对应的int方式表示,以减少存储,提高访问性能。 int方式表示 码或者数字,建议使用对应的int方式表示,以减少存储,提高访问性能。 数据范围-32768~32767,可以选择smallint类型,数据范围smallint类型 数据范围-32768~32767,可以选择smallint类型,数据范围2147483648~2147483647,而超出smallint 可以选择int类型, smallint, int类型 2147483648~2147483647,而超出smallint,可以选择int类型,数据范 9223372036854775808~9223372036854775807,而超出int int, 围-9223372036854775808~9223372036854775807,而超出int,可以 选择bigint类型。 bigint类型 选择bigint类型。 date,time和timestamp的选择 的选择: (2)date,time和timestamp的选择:对于只存储日期或者时间的字 选择日期或者时间类型,而不选择timestamp timestamp, 段,选择日期或者时间类型,而不选择timestamp,对于日期时间类型 的字段,如果基于时间的查询比较多, 的字段,如果基于时间的查询比较多,可以考虑在数据库中分日期和时 间两个字段存储,如果只是数据库内部表示,查询中涉及较少, 间两个字段存储,如果只是数据库内部表示,查询中涉及较少,存储为 timestamp类型 类型。 timestamp类型。 varchar和char的选择与长度定义 如果明确字段的使用长度, 的选择与长度定义: (3)varchar和char的选择与长度定义:如果明确字段的使用长度,使 char类型 如果字段的长度是可变的,而且变化的幅度比较大, 类型, 用char类型,如果字段的长度是可变的,而且变化的幅度比较大,使用 varchar类型可以更好的节省存储空间 合适的评估varchar类型的长度, 类型可以更好的节省存储空间, varchar类型的长度 varchar类型可以更好的节省存储空间,合适的评估varchar类型的长度, 避免以后的维护行长度变大导致行迁移。 避免以后的维护行长度变大导致行迁移。 是否为空与默认值的确定:明确指定数据库中各字段是否为空, (4)是否为空与默认值的确定:明确指定数据库中各字段是否为空,对 于不可空的字段,为方面插入新行而没有为其指定相应的值, 于不可空的字段,为方面插入新行而没有为其指定相应的值,建议指定 默认值。 默认值。
-4-
主要内容: 主要内容:
1、产品介绍 2、数据库数据类型 3、基本的sql与优化建议 基本的sql与优化建议 sql 4、高级sql介绍 高级sql介绍 sql 5、数据库的并发性
-5-
数据类型
数字: small int:-2 768 to +32 767 -2 int:-2 147 483 648 to +2 147 483 647 big int:9 223 372 036 854 775 808 to +9 223 372 036 854 775 807 Real:一个数字的32bit近似值,-3.402E+38 to -1.175E-37, or from 1.175E-37 to 3.402E+38 Double or float:一个数字的64bit近似值,-1.79769E+308 to -2.225E-307, or from 2.225E-307 to 1.79769E+308 Decimal:一个固定位数的压缩的十进制数字 10**31+1 to 10**31-1 字符串: CHAR:定长字符串 最大长度为 254 VARCHAR:变长字符 最大长度为 32 672 Long varchar:最大长度为32 700 ,目前不建议使用。 Clob:最大长度为2Gb。
hh:mm AM or PM 1:30 PM hh.mm.ss hh:mm:ss 13.30.05 13:30:05
IBM European standard EUR
Timestamp的格式: Timestamp的格式: 的格式
yyyy-mm-dd hh:mm:ss.nnnnnn yyyy-mm-8-
DB2数据库SQL基础 DB2数据库SQL基础 (I) 数据库SQL
中国移动通信集团河南有限公司业务支援中 心
-1-
主要内容: 主要内容:
1、产品介绍 2、数据库数据类型 3、基本的sql与优化建议 基本的sql与优化建议 sql 4、高级sql介绍 高级sql介绍 sql 5、数据库的并发性
-2-
-11-
主要内容: 主要内容:
1、产品介绍 2、数据库数据类型 3、基本的sql与优化建议 基本的sql与优化建议 sql 4、高级sql介绍 高级sql介绍 sql 5、数据库的并发性
-12-
SQL定义 SQL定义
SQL是一种面向数据库的通用数据处理语言规范, 能完成以下几类功能:提取查询数据,插入修改删 除数据,生成修改和删除数据库对象,数据库安全 控制,数据库完整性及数据保护控制。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP, DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE, INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT, ROLLBACK)
Format Name International Standards Organization IBM USA standard Japanese Industrial Standard Christian Era Abbreviati Date Format on ISO hh.mm.ss USA JIS Example 13.30.05
-13-
DDL介绍 DDL介绍
DDL—数据库定义语言: • CREATE:用于创建数据库对象。 • DECLARE:除了是创建只在过程中使用的临时表 外,DECLARE语句和CREATE语句非常相似。唯一 可以被声明的对象是表。并且必须放入用户临时表 空间。可以定义程序中的变量与游标等。 • DROP:可以删除任何用CREATE(数据库对象) 和DECLARE(表)创建的对象。 • ALTER:允许修改某些数据库对象的信息。不能 修改索引。
DB2数据类型 数据类型 smallint integer bigint Decimal(p,s) ( ,) Double Date Time Timestamp Char(X) ( ) Varchar(X) ( ) Graphic(X) ( ) Vargraphi | Char[7] Int | Char[12] Long | Char[21] 无 Double Char[11] Char[9] Char[27] Char[X+1] Char[X+1] Wchar_t[X+1] Wchar_t[X+1]
-15-
• 修改表: 修改表: 增加一个列: Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据 类型也不能改变,唯一能改变的是增加varchar 类型的长度。 添加主键: Alter table tabname add primary key(col) 删除主键: Alter table tabname drop primary key(col) • 删除表 删除表:drop table tabname
-3-
产品介绍产品介绍-客户端
运行时客户机(RunClient) 运行时客户机(Run-Time Client) 管理客户机(Administration Client) Client) 管理客户机( 应用程序开发客户机( 应用程序开发客户机(App. Development Client) Client)
产品介绍产品介绍-服务器端
易捷版 (Express Edition ) 工作组服务器版 (Workgroup Server Edition) Edition) 企业服务器版 (Enterprise Server Edition ) 企业服务器版加上数据分区功能 Feature) ( Enterprise Server Edition + Data Partition Feature)
-14-
1、数据库: 、数据库: • 创建数据库:CREATE DATABASE database-name [USING CODESET codeset TERRITORY territory] 注:代码页的问题。 • 删除数据库:drop database dbname 2 、表: • 创建新表: create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) • 根据已有的表创建新表: A:create table tab_new like tab_old B : create table tab_new as select col1,col2… from tab_old definition only
-10-
DB2数据类型与C DB2数据类型与C数据类型匹配 数据类型与
在使用宿主变量前,请注意以下几点: 在使用宿主变量前,请注意以下几点: 宿主变量的长度不能超过30字节。开始的字母不能是EXEC SQL。 30字节 EXEC和 宿主变量的长度不能超过30字节。开始的字母不能是EXEC和SQL。 宿主变量必须在被引用之前定义。 宿主变量必须在被引用之前定义。 一个源程序文件中可以有多个SQL说明段。 SQL说明段 一个源程序文件中可以有多个SQL说明段。 从数据库中Char出一个数字字段(smallint integer、bigint)后必须trim一下 否则char Char出一个数字字段(smallint、 后必须trim一下, char出的字符串有很多空格 从数据库中Char出一个数字字段(smallint、integer、bigint)后必须trim一下,否则char出的字符串有很多空格 宿主变量名在整个程序中必须是唯一的。(这一点与其他数据库的嵌入式sql不同,特别注意) 。(这一点与其他数据库的嵌入式sql不同 宿主变量名在整个程序中必须是唯一的。(这一点与其他数据库的嵌入式sql不同,特别注意) 的数据类型和DB2的数据类型的一些转换关系: DB2的数据类型的一些转换关系 C的数据类型和DB2的数据类型的一些转换关系: